-# Summary of pending email for Free recode 3.5.
-# Last updated on 1999-06-01.
+# Summary of pending email for Free recode 3.5a.
+# Last updated on 1999-12-20.
# This file summarises almost all pending email pertaining to this package.
# I think users deserve to know where maintenance stands for what they use.
# When diffs have been provided, an asterisk sometimes replaces the initial
# dot. All dates are written according to ISO 8601, as far as possible.
-../rmail/auto-detect
- 1. 1997-12-09 François Pinard: Re: recode
- 2. 1997-12-09 Milivoj Ivkovic: Re: recode
- 3. 1998-07-01 Sam: Re: au secour!
- 4. 1996-01-13 DiDakDok,IVC: Decodage MIME
-
-../rmail/backup
- 1. 1994-03-09 Nicolas Anquetil: recode
- 2. 1994-12-04 Michael Gschwind: Re: Prerelease: GNU recode 3.4.1
+../rmail/compilation
+ 1. 1999-08-25 François Pinard: Re: recode compile problem
+ 2. 1997-12-26 François Pinard: recode sur raptor
+ 3. 1999-06-23 Bruno Haible: recode installation on Solaris
+ 4. 1999-12-13 Tom Hageman: Re: recode-3.5 on NEXTSTEP, OPENSTEP and MacOS X Se
+ 5. 1998-05-17 Jim Meyering: Re: easing acconfig.h maintenance: utimbuf.m4
+ 6. 1999-12-17 Tom Hageman: Re: recode-3.5 on NEXTSTEP, OPENSTEP and MacOS X Se
+ 7. 1999-12-19 François Pinard: recode juste =?iso-8859-1?q?apr=E8s?= modifs do
+
+../rmail/configuration
+ 1. 1999-12-15 François Pinard: libtool.m4 and aclocal
+ 2. 1999-12-15 Jim Meyering: Re: libtool.m4 and aclocal
+ 3. 1999-12-15 Akim Demaille: Re: libtool.m4 and aclocal
+ 4. 1999-12-15 Tom Tromey: Re: libtool.m4 and aclocal
+
+../rmail/gettext
+ 1. 1999-07-05 Bruno Haible: recode-3.5 installation problem
+ 2. 1999-07-14 Eric Siegerman: Recode 3.5 w/NLS doesn't link on Solaris 2.5.1
+ 3. 1999-04-02 Laurent Bourbeau: Recode 3.4q - bug-1
+ 4. 1999-04-05 Laurent Bourbeau: Recode 3.4q - Bug 6
+ 5. 1999-04-05 Laurent Bourbeau: Recode 3.4q - Bug 7
+ 6. 1997-12-02 Fran\81çois Pinard: [Eric Backus <ericb@labejb.lsid.hp.com>] recod
+ 7. 1997-12-09 Fran\81çois Pinard: Re: recode 3.4e pretest
+ 8. 1998-11-09 Alain Magloire: recode on Solaris
+
+../rmail/lex
+ 1. 1998-04-06 Tom Tromey: Re: I want flex, not lex!
+ 2. 1998-04-07 Akim Demaille: Re: I want flex, not lex!
+ 3. 1998-04-07 Akim Demaille: Re: I want flex, not lex!
-../rmail/doc-hexa
- 1. 1998-10-14 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
- 2. 1998-10-14 Francois Yergeau: Re: Pour ceux qui ont le temps de lire... Cadr
- 3. 1998-10-23 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
- 4. 1998-10-23 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
+../rmail/libtool
+ 1. 1997-12-16 Erick Branderhorst: recode and ltmain.sh on solaris 2.6
+ 2. 1998-01-07 Erick Branderhorst: recode-3.4g is not compiling properly becaus
+ 3. 1998-02-23 Jim Meyering: Re: Installing fileutils 3.16m on icule
+ 4. 1998-03-24 Larry W. Virden, x2487: problems building recode 3.4f
+ 5. 1998-10-21 François Pinard: Re: Some paxutils issues
+ 6. 1999-04-02 François Pinard: recode 3.4q - testing difficulties
+ 7. 1999-04-03 Alexandre Oliva: Re: recode 3.4q - testing difficulties
+ 8. 1999-12-12 Tom Hageman: recode-3.5 on NEXTSTEP, OPENSTEP and MacOS X Server
+ 9. 1999-09-16 Daniel Ouimet: Re: probleme avec recode
+10. 1998-07-21 François Pinard: Re: recode: lat1html.c
+11. 1998-07-21 Wiel: recode: lat1html.c
+12. 1998-12-27 François Pinard: recode - dynlibs
-../rmail/emacs
+../admin/rmail/emacs
1. 1998-05-12 François Pinard: Emacs 20.2.93 - lisp/format.el and recode
-../rmail/legalese
+../admin/rmail/jitterbug
+ 1. 1997-12-28 Jim Meyering: rsync: a neat tool
+ 2. 1999-08-03 François Pinard: Bug tracking
+ 3. 1999-08-03 David Ascher: FYI: CareTracker from LinuxCare
+ 4. 1999-10-18 Barry A. Warsaw: Re: Adding info to Python Buglist
+ 5. 1999-10-16 Jason Trowbridge: Re: Adding info to Python Buglist
+ 6. 1999-10-17 Hrvoje Niksic: Re: Adding info to Python Buglist
+ 7. 1999-10-18 Jason Trowbridge: Re: Adding info to Python Buglist
+
+../admin/rmail/legalese
1. 1997-11-24 Richard Stallman: Re: License for recode
2. 1999-01-30 Richard Stallman: Why you shouldn't use the Library GPL for your
- 3. 1999-03-19 Bob Friesenhahn: Re: libltdl license?
-../rmail/library
- 1. 1995-12-06 Per Bothner: Re: Internationalization resources?
- 2. 1996-05-29 Ulrich Drepper: librecode, again
- 3. 1997-10-14 Ulrich Drepper: Re: librecode
+../admin/rmail/list-admin
+ 1. 1999-07-20 Mail Delivery Subsystem: Returned mail: Can't create output
+ 2. 1999-07-20 Mail Delivery Subsystem: Returned mail: Can't create output
+ 3. 1999-06-02 Mail Delivery Subsystem: Returned mail: User unknown
-../rmail/list-announce
+../admin/rmail/list-announce
1. 1994-10-31 pinard@IRO.UMontreal.CA: Prerelease: GNU recode 3.3.2
2. 1994-11-06 pinard@iro.umontreal.ca: Release: GNU recode 3.4
3. 1994-12-01 pinard@IRO.UMontreal.CA: Prerelease: GNU recode 3.4.1
24. 1999-04-29 François Pinard: Executable of `recode' for DOSWIN
25. 1999-01-16 François Pinard: Playing with implied surfaces
26. 1999-05-18 François Pinard: Prerelease: Free recode 3.4r
-
-../rmail/listing
- 1. 1993-12-21 Martin Maechler: Re: Prerelease: GNU recode version 3.2.10
- 2. 1993-12-21 Francois Pinard: Prerelease: GNU recode version 3.2.10
- 3. 1993-02-10 Patrik F{ltstr|m: Re: transcription iso-8859-1 to us-ascii?
- 4. 1998-10-29 Markus Kuhn: Free X11 Unicode terminal font available
- 5. 1998-11-22 François Pinard: Re: Free X11 Unicode terminal font available
- 6. 1999-03-30 Andreas Schwab: Fix for AtariST encoding
-
-../rmail/mixed
- 1. 1992-11-23 mcgill-vision!corto.inria.fr!shapiro: recode
- 2. 1994-12-19 Martin Wendel: ANNOUNCE: Emil-2.0 is available
- 3. 1995-02-28 Francois Pinard: UUPC
- 4. 1995-03-11 Scott Nelson: ISO-8859-X email test
- 5. 1995-03-16 Martin Wendel: ANNOUNCE: emil-2.0.5 released
- 6. 1995-07-05 François Pinard: Re: Retour !
- 7. 1995-07-25 David Collier-Brown: Early announcement: Mime-witing library
- 8. 1996-03-02 François Pinard: Re: Présentation de Ulrich Drepper!
- 9. 1996-06-09 François Pinard: Re: About recode
-10. 1997-10-30 =?iso-8859-1?Q?G=E9rald_St=2DArneault_=3Cstarneag=40grics.qc.ca=
-
-../rmail/moteur
- 1. 1999-04-18 François Pinard: -lf et ibmpc ?
- 2. 1999-04-14 François Pinard: recode - IBM-PC
- 3. 1999-04-03 Laurent Bourbeau: Recode 3.4q - Bug 5
- 4. 1999-04-02 François Pinard: =?iso-8859-1?q?Probl=E8me?= recode
-
-../rmail/multext
- 1. 1996-05-24 Jean Ve'ronis: Soft: MtScript (Multilingual editor)
- 2. 1996-06-17 Jean Ve'ronis: Free Soft: MtStr - Multilingual string library
- 3. 1996-06-20 Jean Ve'ronis: Free Soft: MtRecode - Character conversion progra
- 4. 1996-08-29 Malek BOUALEM -- UNIVERSITE: Brief Introduction of the LPL
- 5. 1996-09-05 Malek BOUALEM -- UNIVERSITE: Re: Introduction of LPL/MULTEXT/MTS
- 6. 1997-12-10 Jean Veronis: Re: Citation de MtRecode
-
-../rmail/notation
- 1. 1997-08-06 Ulrich Drepper: Re: charset names
-
-../rmail/relecture
+27. 1999-06-01 François Pinard: Release: Free recode 3.5
+28. 1999-06-06 François Pinard: Release: Free recode 3.5
+
+../admin/rmail/port-doswin
+ 1. 1998-02-18 Eli Zaretskii: Re: Integrating your diffs
+ 2. 1998-02-26 Eli Zaretskii: Re: Snapshot of `tar' sources
+ 3. 1998-02-26 François Pinard: Re: Snapshot of `tar' sources
+ 4. 1998-03-01 Eli Zaretskii: Re: tar 1.12a
+ 5. 1998-03-01 Eli Zaretskii: Re: Snapshot of `tar' sources
+ 6. 1998-03-09 Eli Zaretskii: Re: Snapshot of `tar' sources
+ 7. 1998-03-22 Eli Zaretskii: File name quoting in Tar
+ 8. 1998-04-05 Tom Tromey: Re: AM_CONFIG_HEADER ignores directories
+ 9. 1998-11-10 François Pinard: Re: Snapshot of `tar' sources
+10. 1998-11-21 Jim Meyering: Re: Textutils 1.22d ported to DJGPP
+11. 1998-11-22 Eli Zaretskii: Re: `tar' modifs in `lib/'
+12. 1998-11-22 Eli Zaretskii: Re: msdos version of tar
+13. 1998-11-22 Eli Zaretskii: Re: Textutils 1.22d ported to DJGPP
+14. 1998-12-06 Eli Zaretskii: Re: GNU Emacs port to Solaris 7 (sparc, 64-bit)
+15. 1999-02-15 Eli Zaretskii: Re: gettext.m4 and absolute file names
+16. 1999-03-30 Eli Zaretskii: Re: GNU configur.bat
+17. 1999-03-30 Eli Zaretskii: Re: GNU configur.bat
+18. 1999-04-13 François Pinard: Re: ... and paxutils
+19. 1999-04-13 Eli Zaretskii: Re: ... and paxutils
+20. 1999-04-15 François Pinard: DJGPP rm possible bug
+21. 1999-04-18 Eli Zaretskii: Re: DJGPP rm possible bug
+22. 1999-05-06 Eli Zaretskii: Re: GNU sed or equivalent on Windows NT4?
+23. 1999-05-09 Eli Zaretskii: Re: Automatic expansion of environment variables
+24. 1999-05-16 Alain Magloire: Re: Automatic expansion of environment variables
+25. 1999-05-18 Eli Zaretskii: Re: Automatic expansion of environment variables
+26. 1999-05-18 Alain Magloire: Re: Automatic expansion of environment variables
+27. 1999-05-19 Eli Zaretskii: Re: Automatic expansion of environment variables
+28. 1999-05-26 Alain Magloire: v2.04 (was Re: Automatic ...)
+29. 1999-07-01 François Pinard: Re: ["Uwe Brauer" <oub@eucmos.sim.ucm.es>] hebr
+30. 1999-08-08 Ian Lance Taylor: [eliz@is.elta.co.il: Re: Problems building Bin
+31. 1999-08-08 Mark E.: Re: [eliz@is.elta.co.il: Re: Problems building Binutils
+32. 1998-03-26 Fran\81çois Pinard: Re: find reco dos executable
+33. 1998-11-24 Eli Zaretskii: Re: recode for Amiga - 3.4k update
+34. 1998-11-24 Eli Zaretskii: Re: recode for Amiga - 3.4k update
+35. 1998-11-24 François Pinard: Re: recode for Amiga - 3.4k update
+36. 1998-11-25 Eli Zaretskii: configure+dist [was: Re: recode for Amiga - 3.4k
+37. 1998-11-25 Eli Zaretskii: libtool+shell [was: Re: recode for Amiga - 3.4k u
+38. 1998-11-25 Eli Zaretskii: Perl [was: Re: recode for Amiga - 3.4k update]
+39. 1998-11-25 Eli Zaretskii: EOLs [was: Re: recode for Amiga - 3.4k update]
+40. 1998-11-25 Eli Zaretskii: configure+dist [was: Re: recode for Amiga - 3.4k
+41. 1998-11-25 Eli Zaretskii: Intro [was: Re: recode for Amiga - 3.4k update]
+42. 1998-11-30 Eli Zaretskii: Re: New -Spo option to `recode'
+43. 1999-01-31 Matt Armstrong: Re: Cygwin, make install and .exe
+44. 1999-02-15 Eli Zaretskii: Re: gettext.m4 and absolute file names
+45. 1999-04-10 Robert S. Maier: automake problems DJGPP
+46. 1999-04-10 Alexandre Oliva: Re: automake problems DJGPP
+47. 1999-04-13 Eli Zaretskii: Re: ... and paxutils
+48. 1999-04-12 Eli Zaretskii: Re: Playing with DJGPP again
+49. 1999-04-12 Eli Zaretskii: Re: Playing with DJGPP again
+50. 1999-04-15 François Pinard: recode on DJGPP
+51. 1999-06-01 François Pinard: Re: POT file for recode 3.4r now being uploaded
+52. 1999-06-02 François Pinard: Re: POT file for recode 3.4r now being uploaded
+53. 1999-06-03 Eli Zaretskii: Re: POT file for recode 3.4r now being uploaded
+54. 1999-12-14 Eli Zaretskii: Re: `recode' and DJGPP
+55. 1999-12-14 François Pinard: Re: `recode' and DJGPP
+56. 1999-02-07 Jim Meyering: Re: gettext.m4 and absolute file names
+
+../admin/rmail/port-winNT
+ 1. 1998-02-09 Paul E. Jones: Tar-1.12 on Windows NT
+ 2. 1998-02-09 François Pinard: Re: Tar-1.12 on Windows NT
+ 3. 1998-02-09 Eli Zaretskii: Re: Tar-1.12 on Windows NT
+ 4. 1998-02-11 Eli Zaretskii: Re: Tar-1.12 on Windows NT
+ 5. 1998-02-11 Eli Zaretskii: Re: Tar-1.12 on Windows NT
+ 6. 1998-02-11 Paul E. Jones: Re: Tar-1.12 on Windows NT
+ 7. 1998-02-12 Eli Zaretskii: Re: Tar-1.12 on Windows NT
+ 8. 1998-02-12 Eli Zaretskii: Re: [comp.windows.x.apps] Re: Making PC like UNIX
+ 9. 1998-02-24 Paul E. Jones: Re: Tar-1.12 on Windows NT
+10. 1998-03-05 François Pinard: Re: Tar-1.12 on Windows NT
+11. 1998-03-05 Eli Zaretskii: Re: Tar-1.12 on Windows NT
+12. 1998-03-08 Eli Zaretskii: Re: Tar-1.12 on Windows NT
+13. 1998-03-09 Paul E. Jones: Re: Tar-1.12 on Windows NT
+14. 1998-03-22 Eli Zaretskii: Re: [pinard@icule.progiciels-bpi.ca: Re: Prerelea
+15. 1998-03-27 François Pinard: Keeping copies of your binaries
+16. 1998-03-29 Paul E. Jones: Re: Keeping copies of your binaries
+17. 1998-03-29 Eli Zaretskii: Re: Keeping copies of your binaries
+
+../admin/rmail/relecture
1. 1999-01-01 François Pinard: R\81éf\81érences de l'IANA sur les jeux de caract\81è
2. 1999-01-01 François Pinard: D'autre r\81éf\81érences
3. 1999-01-13 Ulrich Drepper: wanna read?
8. 1999-04-23 Olivier Tharan: Re: =?iso-8859-1?Q?Manuel_fran=E7ais_pour_recode
9. 1999-04-27 François Pinard: Re: Manuel =?iso-8859-1?q?fran=E7ais?= pour rec
-../rmail/speed
- 1. 1999-01-22 Andreas Schwab: Re: iconv changes
- 2. 1999-01-22 Ulrich Drepper: Re: iconv changes
-
-../rmail/charsets/1252
+../asian/rmail/2022
+ 1. 1994-08-26 David Williss: Unicode to ISO-2022
+ 2. 1994-08-27 Martin J. Duerst: Re: Unicode to ISO-2022
+ 3. 1994-12-15 Haruhiko Nishida: Re: HTML in Unicode?
+ 4. 1994-12-16 John B. Melby: Re: HTML in Unicode?
+ 5. 1995-07-31 morioka@jaist.ac.jp (=?ISO-2022-JP?B?GyRCPGkyLBsoQiAbJEJDTkknGyh
+ 6. 1994-09-02 Erik Naggum: Re: CDRA
+ 7. 1997-02-06 François Pinard: Re: flex-2.5.2.ko.po
+ 8. 1997-08-09 Kenichi Handa: Re: Learning more about MULE
+ 9. 1997-01-19 Alain LaBont/e'/: Re: switching ISO 2022 <-> Unicode
+10. 1997-08-06 Martin J. Duerst: Re: charset names
+11. 1997-09-02 Ulrich Drepper: Re: librecode, libc, gettext
+12. 1997-10-08 Martin J. Dürst: Re: librecode, libc, gettext
+13. 1997-10-07 Martin J. Dürst: Re: librecode, libc, gettext
+14. 1997-10-08 Keld J|rn Simonsen: Re: librecode, libc, gettext
+15. 1997-08-01 Martin J. Duerst: Re: librecode, libc, gettext
+16. 1995-03-14 John B. Melby: Re: Unicode/ISO-10646/TRON/MULE/MCS for multiling
+17. 1990-06-29 Robert Claeson: Re: Int'l Character set (Was: Re: filen
+18. 1997-11-13 Duane Ellis: (none)
+19. 1997-11-14 Werner Lemberg: Re: your mail
+20. 1995-04-07 Kari E. Hurtta: 8-bit charset in C1-C3 banks (Re: DO use ESC [ 1
+21. 1997-11-14 Jungshik Shin: Re: unicode <-> iso-2022
+22. 1997-07-29 Oum Sang-il: clipboard encoding
+23. 1994-10-05 Erik Naggum: Re: Shift-JIS (was Re: multilingual HTML, SGML docu
+24. 1994-10-07 G. Ken Holman: Re: more on Japanese SGML, Ken Lunde & ISO 2022
+25. 1995-04-26 Chiaki Ishikawa: Re: 7 bit mail in 1992 still?
+26. 1998-03-09 Alain LaBonté : Canadian contribution objecting against future u
+27. 1997-11-14 Jungshik Shin: Re: unicode <-> iso-2022
+28. 1999-01-16 Shinya Hanataka: ISO-2022-JP-2 latin character encode bug
+29. 1999-01-16 Ulrich Drepper: Re: ISO-2022-JP-2 latin character encode bug
+30. 1999-01-16 Shinya Hanataka: ISO-2022-JP-2 latin character encode bug
+31. 1999-01-16 Ulrich Drepper: Re: ISO-2022-JP-2 latin character encode bug
+32. 1992-06-09 Yutaka Sato =?ISO-2022-JP?B?GyRAOjRGI0stGyhK?=: Re: How to see J
+33. 1999-07-13 lal@cs.ucdavis.edu: Japanese character conversion tools
+34. 1999-05-05 Frank da Cruz: Re: Can someone provide an explanation ?
+35. 1999-06-09 Hrvoje Niksic: ISO 2022 support
+36. 1999-08-17 François Pinard: Re: ISO 2022 support
+37. 1999-08-17 François Pinard: Re: ISO 2022 support
+38. 1999-08-24 Hrvoje Niksic: Re: ISO 2022 support
+39. 1999-08-24 François Pinard: Re: ISO 2022 support
+40. 1999-08-24 Hrvoje Niksic: Re: ISO 2022 support
+41. 1992-06-09 Yutaka Sato =?ISO-2022-JP?B?GyRAOjRGI0stGyhK?=: Re: How to see J
+42. 1997-03-28 Ulrich Drepper: Re: Re: Character set conversion API for libc
+43. 1997-03-28 Jake Morrison: Re: Re: Character set conversion API for libc
+44. 1997-09-11 Kenichi Handa: Re: RMAIL and coding system (Re: file name coding
+45. 1997-09-18 Martin J. Dürst: Re: RMAIL and coding system (Re: file name codi
+
+../asian/rmail/aides
+ 1. 1997-12-02 Jake Morrison: Re: Character set conversion API for libc
+ 2. 1997-12-08 François Pinard: Re: unicode <-> hex converter (fwd)
+ 3. 1997-12-08 François Pinard: Re: help
+ 4. 1998-03-23 François Pinard: Re: tar bugs with -g and -G
+ 5. 1998-03-24 Greg HERMAN: Re: tar bugs with -g and -G
+ 6. 1997-04-10 François Pinard: Re: unicode <-> hex converter (fwd)
+
+../asian/rmail/auto-recognition
+ 1. 1998-07-04 MORIOKA Tomohiko: Re: EMH 1.8.1
+ 2. 1998-07-04 Olivier Lecarme: Re: EMH 1.8.1
+ 3. 1999-12-18 Bruno Haible: Re: suggestion ridicule pour recode
+
+../asian/rmail/chinese
+ 1. 1993-07-22 Pierre Mailhot: Annonce: nouveaux utilitaires "chinois" sur sagu
+ 2. 1993-07-23 Qiang Ming Tan: How to use Chinese tools
+ 3. 1993-08-04 Richard Turmel: Annonce sur lude-iro
+ 4. 1994-11-21 L.S.Ng: Internationalisation vs. Native Development & Chinese WW
+ 5. 1995-01-21 Bow-Yaw Wang: Introducing CEF (Chinese Encoding Framework)
+ 6. 1995-05-01 ywliu@beta.wsl.sinica.edu.tw: Re: glocale info
+ 7. 1996-03-29 Pierre Zweigenbaum: Q: Chinese: GB-2312 or BIG-5?
+ 8. 1996-04-17 Pierre Zweigenbaum: R: Chinese: GB-2312 or BIG-5?
+ 9. 1997-02-25 Ya-Gui Wei: [INFO] How to Read Chinese Text on Usenet: FAQ for a
+10. 1997-05-05 John Clews: East Asian librarians voted for the pinyin system (f
+11. 1997-12-01 Richard Stallman: Chinese translation of the GNU Manifesto
+12. 1998-03-24 Greg HERMAN: Re: tar bugs with -g and -G
+13. 1998-03-24 Greg HERMAN: Re: tar bugs with -g and -G
+14. 1999-05-11 Ulrich Drepper: Re: Question on GB encoding in glibc-2.1.X
+15. 1999-05-12 Tung-Han Hsieh: Re: Question on GB encoding in glibc-2.1.X
+16. 1997-08-01 Martin J. Duerst: Re: librecode, libc, gettext
+17. 1997-12-16 Pofeng Lee: Re: help
+
+../asian/rmail/chinese-big5
+ 1. 1995-08-07 Jyh-Shyang Wang: Re: Problem about compile tar on Ultrix...
+ 2. 1997-07-25 Pofeng Lee: Re: help
+ 3. 1997-12-08 Kenichi Handa: [rms@santafe.edu: Chinese translation of the GNU
+ 4. 1997-10-19 PILCH Hartmut: Hanja-Big5 conversion table
+ 5. 1997-10-20 Jason Molenda: Re: Hanja-Big5 conversion table
+ 6. 1997-10-20 Werner Lemberg: Re: Hanja-Big5 conversion table
+ 7. 1997-10-20 Martin J. Dürst: Re: Hanja-Big5 conversion table
+ 8. 1997-10-20 Werner Lemberg: Re: Hanja-Big5 conversion table
+ 9. 1997-10-21 Martin J. Dürst: Re: Hanja-Big5 conversion table
+10. 1997-10-21 Mark Leisher: Re: Hanja-Big5 conversion table
+11. 1997-10-20 Werner Lemberg: Re: Hanja-Big5 conversion table
+12. 1997-10-20 Martin J. Dürst: Re: Hanja-Big5 conversion table
+13. 1997-10-20 Werner Lemberg: Re: Hanja-Big5 conversion table
+14. 1997-10-20 Jason Molenda: Re: Hanja-Big5 conversion table
+15. 1999-04-05 Tung-Han Hsieh: The zh_TW.Big5 locale data
+16. 1999-11-29 Angelo Borsotti: iconv Big5 incorrect decoding
+
+../asian/rmail/han-unification
+ 1. 1995-12-05 Per Bothner: Re: Internationalization resources?
+ 2. 1995-12-26 Per Bothner: Issues in Internationalizing Guile, Scheme, and Ema
+ 3. 1995-12-27 Richard Stallman: Re: Issues in Internationalizing Guile, Scheme
+ 4. 1995-12-27 Per Bothner: Re: Issues in Internationalizing Guile, Scheme, and
+ 5. 1995-12-28 Richard Stallman: Re: Issues in Internationalizing Guile, Scheme
+ 6. 1995-12-31 Per Bothner: emacs implications of Guile internationalization
+ 7. 1997-07-27 Ulrich Drepper: Re: Trying Emacs 20
+ 8. 1996-01-04 Per Bothner: Re: New Mule
+ 9. 1997-07-28 Pofeng Lee: Re: help
+10. 1996-11-27 unicode@Unicode.ORG: Re: Information on new unihan characters?
+11. 1995-03-16 John B. Melby: Re: Unicode/ISO-10646/TRON/MULE/MCS for multiling
+12. 1995-03-27 Martin J. Duerst: Re: Unicode/ISO-10646/TRON/MULE/MCS for multil
+13. 1997-10-31 Martin J. Dürst: Re: librecode, libc, gettext
+14. 1997-10-31 François Pinard: Re: librecode, libc, gettext
+15. 1997-10-31 Martin J. Dürst: Re: librecode, libc, gettext
+16. 1995-03-16 Glenn A. Adams: Re: Unicode/ISO-10646/TRON/MULE/MCS for multilin
+17. 1998-09-08 Alain LaBonté : Re: Projet de rapport de liaison entre ISO/CEI J
+18. 1998-03-17 Alain LaBonté : Compréhension du problème japonais pour le jeu u
+19. 1996-01-05 Fran\81çois Pinard: Re: 8bit clean perl? (fwd)
+20. 1998-09-09 Alain LaBont\81é\81 : Re: Projet de rapport de liaison entre ISO/IEC
+
+../asian/rmail/help
+ 1. 1998-12-04 Martin J. Duerst: Re: Prerelease: GNU recode 3.4i
+ 2. 1998-12-07 François Pinard: Re: Prerelease: GNU recode 3.4i
+ 3. 1998-12-10 Martin J. Duerst: Re: Prerelease: GNU recode 3.4i
+ 4. 1998-12-10 François Pinard: Re: Prerelease: GNU recode 3.4i
+ 5. 1998-12-18 Martin J. Duerst: Re: Prerelease: GNU recode 3.4i
+
+../asian/rmail/iconv
+ 1. 1998-12-08 hanataka@abyss.rim.or.jp: gconv/iconv bugs about japanese charac
+ 2. 1998-12-08 Ulrich Drepper: Re: gconv/iconv bugs about japanese character co
+ 3. 1999-01-22 Andreas Schwab: Re: iconv changes
+ 4. 1999-05-06 Rick Jelliffe: Improvement to libc iconv for East Asian text: lo
+ 5. 1999-07-23 Changwoo Ryu: iconv() utf8 -> euc-kr bug.
+ 6. 1999-12-10 Bruno Haible: iconv program produces invalid output
+ 7. 1999-12-10 Ulrich Drepper: Re: iconv program produces invalid output
+ 8. 1999-12-11 Andrew Clausen: iconv() and UCS4 endianness
+ 9. 1999-12-11 Ulrich Drepper: Re: iconv() and UCS4 endianness
+10. 1999-12-11 Andrew Clausen: Re: iconv() and UCS4 endianness
+11. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+12. 1999-12-09 François Pinard: Re: cjk.tgz, iconv, transliterations
+13. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+14. 1999-12-09 François Pinard: Re: cjk.tgz, iconv, transliterations
+15. 1999-12-09 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+16. 1999-12-06 François Pinard: Re: disclaimers
+17. 1999-12-06 assignments: Re: disclaimers
+18. 1999-12-06 assignments: Re: disclaimers
+19. 1999-12-12 François Pinard: Re: cjk.tgz, iconv, transliterations
+20. 1999-12-06 Bruno Haible: Re: disclaimers
+21. 1999-09-07 Bruno Haible: Re: [loic@ceic.com] Unicode: Toward a standard lib
+22. 1999-09-07 François Pinard: Re: [loic@ceic.com] Unicode: Toward a standard
+23. 1999-09-08 Bruno Haible: Re: [loic@ceic.com] Unicode: Toward a standard lib
+24. 1999-09-13 Bruno Haible: cjk.tgz
+25. 1999-09-08 François Pinard: Re: none
+26. 1999-09-08 Bruno Haible: Re: cjk.tgz
+27. 1999-09-15 François Pinard: Re: cjk.tgz
+28. 1999-12-13 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+29. 1999-12-13 François Pinard: Re: cjk.tgz, iconv, transliterations
+30. 1999-12-13 Andrew Clausen: Memory leaks in iconv_open() / iconv_close()
+31. 1999-12-15 Bruno Haible: Re: cjk.tgz, iconv, transliterations
+
+../asian/rmail/japanese
+ 1. 1995-04-25 Ryutaro Susukita: Re: tar-1.11.2 SunOS-4.1.3 JLE-1.1.3 segmentai
+ 2. 1995-04-26 International List: Re: International mailings/recodings
+ 3. 1996-04-08 Chiaki Ishikawa: Re: Notes to translators of GNU packages
+ 4. 1997-08-04 Yoshihiko Mori: Re: [Q] height and witdh of Emacs initial window
+ 5. 1997-08-06 Alain LaBont\i - SCT: Classement... « alphabétique »
+ 6. 1997-12-02 Ulrich Drepper: Re: Character set conversion API for libc
+ 7. 1997-12-02 Jake Morrison: Re: Character set conversion API for libc
+ 8. 1997-12-03 Ulrich Drepper: Re: Character set conversion API for libc
+ 9. 1997-12-03 Jake Morrison: Re: Character set conversion API for libc
+10. 1998-02-09 =?iso-2022-jp?B?GyRCRiM4NhsoQg==?= =?iso-2022-jp?B?GyRCQD8bKEI=?
+11. 1998-04-02 Uma Umamaheswaran: 10646 and Japanese
+12. 1996-07-05 SAKAI Kiyotaka: Re: About sharutils-4.2.1.ja_JP.EUC.po
+13. 1996-07-05 Ulrich Drepper: Re: About sharutils-4.2.1.ja_JP.EUC.po
+14. 1996-07-08 SAKAI Kiyotaka: Re: About sharutils-4.2.1.ja_JP.EUC.po
+15. 1996-07-08 Ulrich Drepper: Re: About sharutils-4.2.1.ja_JP.EUC.po
+16. 1996-07-10 SAKAI Kiyotaka: Re: About sharutils-4.2.1.ja_JP.EUC.po
+17. 1996-07-10 Ulrich Drepper: Re: About sharutils-4.2.1.ja_JP.EUC.po
+18. 1996-07-15 SAKAI Kiyotaka: Re: About sharutils-4.2.1.ja_JP.EUC.po
+19. 1996-07-15 NIIBE Yutaka: Re: About sharutils-4.2.1.ja_JP.EUC.po
+20. 1996-07-15 Ulrich Drepper: Re: About sharutils-4.2.1.ja_JP.EUC.po
+21. 1996-04-05 François Pinard: Re: Notes to translators of GNU packages
+22. 1994-10-04 Rick Jelliffe: "was Re: multilingual HTML, SGML documents" <Shif
+23. 1994-10-05 Erik Naggum: Re: Shift-JIS (was Re: multilingual HTML, SGML docu
+24. 1996-07-24 =?ISO-2022-JP?B?GyRCQEQ7M0JnMnAbKEI=?= /Daisuke Aoyama: patch an
+25. 1996-07-24 \e$(B@D;3Bg2p\e(B /Daisuke Aoyama: patch and libraries
+26. 1994-09-27 Dan Connolly: Re: Multilingual HTML, SGML documents?
+27. 1994-10-09 Emmanuel Uren: 850 and more, 8859 and more, and more
+28. 1995-12-05 Jason Molenda: Re: Internationalization resources?
+29. 1995-12-05 Per Bothner: Re: Internationalization resources?
+30. 1996-04-09 Chiaki Ishikawa: Re: Notes to translators of GNU packages
+31. 1996-04-09 Chiaki Ishikawa: Re: Notes to translators of GNU packages
+32. 1997-04-11 Mark Leisher: Recode offer
+33. 1997-04-11 Brendan_Murray/DUB/Lotus@lotus.com: Re: unicode <-> hex converte
+34. 1997-04-11 Leong Kok Yong: Re: unicode <-> hex converter (fwd)
+35. 1997-12-08 François Pinard: Re: Japanese format conversions SJIS <--> JIS?
+36. 1997-12-12 NUMATA Toshinori: (i18n.419) (posix 3411) 3007 IDEOGRAPHIC NUMBE
+37. 1998-03-12 Jeffrey Friedl: Re: Japanese format conversions SJIS <--> JIS?
+38. 1998-03-12 Jeffrey Friedl: Re: Japanese format conversions SJIS <--> JIS?
+39. 1998-03-13 François Pinard: Re: Japanese format conversions SJIS <--> JIS?
+
+../asian/rmail/japanese-euc
+ 1. 1998-04-28 Koichi Nakatani: Re: MHonArc and multi-byte characters in HTML
+ 2. 1998-04-28 Earl Hood: Re: MHonArc and multi-byte characters in HTML
+ 3. 1998-05-06 Koichi Nakatani: Re: MHonArc and multi-byte characters in HTML
+ 4. 1994-12-14 Daniel R. Kegel: Re: HTML in Unicode?
+ 5. 1999-08-27 Coordinator of Japanese Team: SVP make EUC-JP charset valid (was
+
+../asian/rmail/jconv
+ 1. 1999-07-14 lal@cs.ucdavis.edu: Re: Japanese character conversion tools
+ 2. 1999-07-14 Peter Wyzlic: Re: Japanese character conversion tools
+ 3. 1999-07-14 Jungshik Shin: Re: Japanese character conversion tools
+
+../asian/rmail/korean
+ 1. 1997-10-07 Jungshik Shin: description of Korean/Chinese lang. environment
+ 2. 1997-10-08 Jungshik Shin: Re: korean
+ 3. 1997-10-08 Jungshik Shin: Re: description of Korean/Chinese lang. environme
+ 4. 1997-10-08 Ken Lunde: Re: description of Korean/Chinese lang. environment
+ 5. 1997-10-08 Ken Lunde: Re: description of Korean/Chinese lang. environment
+ 6. 1997-10-08 Martin J. Dürst: Re: description of Korean/Chinese lang. environ
+ 7. 1997-10-08 Kenichi Handa: Re: description of Korean/Chinese lang. environme
+ 8. 1997-10-08 Martin J. Dürst: Re: description of Korean/Chinese lang. environ
+ 9. 1997-10-09 Kenichi Handa: Re: description of Korean/Chinese lang. environme
+10. 1997-10-09 Martin J. Dürst: Re: description of Korean/Chinese lang. environ
+11. 1997-10-15 Deogtae Kim: Re: korean-hanterm input method and han.* encoding
+12. 1997-10-21 Werner Lemberg: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+13. 1997-10-21 Mark Leisher: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+14. 1997-10-21 Kenichi Handa: [Marcel.Kohl@vs.dasa.de: korean characters]
+15. 1997-10-21 Martin J. Dürst: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+16. 1997-10-22 Kenichi Handa: Re: korean-hanterm input method and han.* encodin
+17. 1997-10-22 Gary Roberts: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+18. 1997-10-22 Jungshik Shin: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+19. 1997-10-22 Jungshik Shin: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+20. 1997-10-22 Gary Roberts: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+21. 1997-10-22 Jungshik Shin: Re: Korean mail coding-system and bug in iso-2022
+22. 1997-10-22 Martin J. Dürst: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+23. 1997-10-22 Kenichi Handa: Re: korean-hanterm input method and han.* encodin
+24. 1997-10-22 Martin J. Dürst: Re: [Marcel.Kohl@vs.dasa.de: korean characters]
+25. 1997-10-24 Jungshik Shin: Re: korean-hanterm input method and han.* encodin
+26. 1997-10-25 Kenichi Handa: Re: korean-hanterm input method and han.* encodin
+27. 1997-10-25 Jungshik Shin: Re: korean-hanterm input method and han.* encodin
+28. 1997-10-25 Murata Shuuichirou: Re: korean-hanterm input method and han.* en
+29. 1997-10-25 Martin J. Dürst: Re: korean-hanterm input method and han.* encod
+30. 1997-10-25 Jungshik Shin: Re: korean-hanterm input method and han.* encodin
+31. 1997-10-27 Martin J. Dürst: Re: korean-hanterm input method and han.* encod
+32. 1997-10-27 Kenichi Handa: Re: korean-hanterm input method and han.* encodin
+33. 1997-10-29 Joerg Plassen: Re: description of Korean/Chinese lang. environme
+34. 1998-05-16 Yun YoungSun: [report] korean environment in gnus with semi.
+35. 1998-05-17 MORIOKA Tomohiko: Re: [report] korean environment in gnus with s
+36. 1998-11-26 Jungshik Shin: Adding Korean JOHAB support?
+37. 1998-11-27 Kenichi Handa: Re: Adding Korean JOHAB support?
+38. 1998-11-27 Jungshik Shin: Re: Adding Korean JOHAB support?
+39. 1994-12-13 Ross Paterson: Re: can ISO-IR-*** be used as MIME charset?
+40. 1999-03-11 Alain LaBont\81é\81 : JUC : Noms de caract\81ères cor\81éens
+41. 1997-12-15 Choi, Jun Ho: Re: flex-2.5.2.ko.po
+42. 1998-01-06 François Pinard: Re: Phonetic transcription of Korean [was: Re:
+
+../asian/rmail/korean-hangul
+ 1. 1996-05-14 Alain LaBont/e'/: UNICODE et le codage hangul
+ 2. 1996-05-15 Jian YANG: Re: UNICODE et le codage hangul
+ 3. 1996-05-15 Alain LaBont/e'/: Re: UNICODE et le codage hangul
+ 4. 1996-05-22 Alain LaBont/e'/: Re: Nom des caracteres coreens dans l'ISO/CEI
+ 5. 1998-12-16 Francois Yergeau: Tel que promis
+ 6. 1998-12-16 Francois Yergeau: Re: recode et table =?ISO-8859-1?Q?fran=E7aise
+
+../asian/rmail/mule
+ 1. 1998-03-28 Werner Lemberg: Re: MULE-UCS 0.01(YUME) Release.
+ 2. 1998-03-28 =?ISO-2022-JP?B?GyRCNVwyPBsoQiAbJEI+MBsoQjpISU1J?=: MULE-UCS 0.0
+ 3. 1998-03-28 Satoru Tomura: Re: MULE-UCS 0.01(YUME) Release.
+ 4. 1998-04-08 NIIBE Yutaka: it works again
+ 5. 1998-08-31 SL Baur: Re: MULE primer
+ 6. 1998-09-01 Stephen J. Turnbull: Re: MULE primer
+ 7. 1999-02-05 Stephen J. Turnbull: Re: More charset things
+ 8. 1999-02-05 Stephen J. Turnbull: Re: More charset things
+ 9. 1999-02-04 Stainless Steel Rat: Re: More charset things
+10. 1999-05-07 Takashi Nishimoto: Re: Need help to find doc
+11. 1997-11-05 French GNU/LI List: Re: Donation process
+
+../asian/rmail/printing
+ 1. 1998-02-11 Jungshik Shin: Re: Emacs 20.x desiderata
+ 2. 1998-02-25 Jens-Ulrik Holger Petersen: Re: Emacs 20.x desiderata
+ 3. 1998-03-02 SAKAI Kiyotaka: Re: Emacs 20.x desiderata
+ 4. 1999-07-05 Lars Magne Ingebrigtsen: Contributor section
+ 5. 1999-07-04 Russ Allbery: Re: Contributor section
+ 6. 1999-07-05 Mike Fabian: Re: Contributor section
+ 7. 1999-07-09 Werner LEMBERG: Re: MULE and TeX
+ 8. 1999-07-09 Werner LEMBERG: Re: MULE and TeX
+ 9. 1998-02-09 Joshua Redstone: Re: Emacs 20.x desiderata
+
+../asian/rmail/printing-latex
+ 1. 1999-01-08 Werner LEMBERG: ANNOUNCING CJK 4.2.0 [Chinese/Japanese/Korean fo
+
+../asian/rmail/references
+ 1. 1997-12-25 Junko Matsumoto: Free Software Distribution Approval
+
+../asian/rmail/tex
+ 1. 1997-10-06 Werner Lemberg: ANNOUNCING CJK 4.1.3 [Chin/Jap/Kor for LaTeX2e]
+ 2. 1997-09-05 Werner Lemberg: Re: a perhaps popular question
+
+../asian/rmail/ucip
+ 1. 1997-12-09 Ken Lunde: Re: Recode offer
+ 2. 1997-12-08 François Pinard: Re: Recode offer
+ 3. 1997-12-09 Mark Leisher: Re: Recode offer
+ 4. 1997-12-09 François Pinard: Re: Recode offer
+ 5. 1997-12-15 Ken Lunde: Re: Recode offer
+ 6. 1997-12-18 François Pinard: Re: Recode offer
+ 7. 1997-12-19 Gigi Estabrook: Review of Understanding CJKV Info. Processing
+ 8. 1997-12-19 François Pinard: Re: Review of Understanding CJKV Info. Processi
+ 9. 1997-12-19 François Pinard: Re: Review of Understanding CJKV Info. Processi
+10. 1998-12-30 Ora-News: CJKV Info Processing
+
+../asian/rmail/wnn
+ 1. 1997-08-07 David Fox: Re: Frustration: Universally available input methods
+
+../charsets/rmail/1252
1. 1997-04-24 Markus Kuhn: Re: ’ valid HTML or no?
2. 1997-10-29 Alain LaBonté - 3: Re: Comment fonctionnent les codepages sous W
-
-../rmail/charsets/5426
+ 3. 1999-11-01 Karl Eichwalder: charset="Windows-1252"
+ 4. 1999-11-02 Steinar Bang: Re: charset="Windows-1252"
+ 5. 1999-11-02 Hrvoje Niksic: Re: charset="Windows-1252"
+ 6. 1999-11-02 Steinar Bang: Re: charset="Windows-1252"
+ 7. 1999-11-02 Hrvoje Niksic: Re: charset="Windows-1252"
+ 8. 1999-11-02 Steinar Bang: Re: charset="Windows-1252"
+ 9. 1999-11-02 Florian Weimer: Re: charset="Windows-1252"
+10. 1999-11-02 Toby Speight: Re: charset="Windows-1252"
+11. 1999-11-04 Robert Bihlmeyer: Re: charset="Windows-1252"
+12. 1999-11-04 Karl Eichwalder: Re: charset="Windows-1252"
+
+../charsets/rmail/5426
1. 1997-12-23 François Pinard: Re: ISO 5426 -> iso8859-1 converter
2. 1997-12-24 Ulrich Drepper: Re: ISO 5426 -> iso8859-1 converter
3. 1998-01-08 Wolfram Schneider: Re: ISO 5426 -> iso8859-1 converter
6. 1997-12-24 Keld J|rn Simonsen: Re: ISO 5426 -> iso8859-1 converter
7. 1998-01-08 Keld J|rn Simonsen: Re: ISO 5426 -> iso8859-1 converter
-../rmail/charsets/737
+../charsets/rmail/737
1. 1999-01-20 Alejandros Diamandidis: recode: CP737 (DOS Greek) request
-../rmail/charsets/850
+../charsets/rmail/850
1. 1997-08-25 Duncan Sargeant: recode l1:cp850 improvement.
2. 1996-10-09 Juliusz Chroboczek: Re: RMAIL and charset=iso-8859-1
-../rmail/charsets/8859-15
+../charsets/rmail/8859-15
1. 1998-04-13 Alain LaBonté : Re: ISO 8859-15 to Unicode - Conversion table
2. 1998-03-23 Alain LaBonté : registration of a new charset: iso-8859-15
3. 1998-06-22 Alain LaBonté : Re: Outlook & the Euro
16. 1998-09-08 Alain LaBonté : Nouvelle page de code EBCDIC respectant le franç
17. 1999-03-09 Alain LaBonté : Re: Latin 1, latin 9 tout neuf : Windows et Mac
18. 1999-03-31 Alain LaBonté : Publication of Latin 9
+19. 1998-03-24 Alain LaBont\81é\81 : Re: registration of a new charset: iso-8859-15
+20. 1998-04-17 Alain LaBont\81é\81 : ISO/CEI FDIS 8859-15 (final text)
+
+../charsets/rmail/8859-7
+ 1. 1999-10-29 Tom Tromey: forwarded message from Markus Kuhn
+
+../charsets/rmail/african
+ 1. 1998-08-18 Laurent Bourbeau: Texinfo - EC-FC
+ 2. 1998-08-25 Laurent Bourbeau: Recode 3.4h - Bilan BUG de Laurent
+ 3. 1998-09-02 Laurent Bourbeau: Recode - Tests 2
-../rmail/charsets/ansel
+../charsets/rmail/ansel
1. 1998-04-06 Michael Taeschner: recode support for ANSI Z39.47 (1985) ?
2. 1998-04-07 François Pinard: Re: recode support for ANSI Z39.47 (1985) ?
3. 1998-04-07 François Pinard: ANSEL
4. 1998-04-07 François Pinard: ANSEL (bis)
5. 1998-04-08 Michael Taeschner: Re: recode support for ANSI Z39.47 (1985) ?
6. 1998-04-08 François Pinard: Re: recode support for ANSI Z39.47 (1985) ?
+ 7. 1999-12-17 Bruno Haible: suggestion ridicule pour recode
-../rmail/charsets/apl
+../charsets/rmail/apl
1. 1991-11-15 mitloehn@uxq.wu-wien.ac.at: [comp.lang.apl] APL Transliteration
2. 1994-11-13 Raul Deluth Miller: recode-3.4 and APL
3. 1994-11-14 Francois Pinard: Re: recode-3.4 and APL
9. 1997-01-31 Leigh Clayton: Re: apl character set
10. 1997-02-01 rdm@tad.micro.umn.edu: Re: apl character set
-../rmail/charsets/apple
+../charsets/rmail/apple
1. 1998-12-08 Larry W. Virden: Re: Novice user of recode with question
2. 1998-12-16 Larry W. Virden: Re: Novice user of recode with question
-../rmail/charsets/ascii-bs
+../charsets/rmail/ascii-bs
1. 1997-04-23 V.S. Umamaheswaran: Contribution to SC2 on 8-bit codes and combi
-../rmail/charsets/ebcdic
+../charsets/rmail/ebcdic
1. 1990-08-31 Keld J|rn Simonsen: [comp.unix.questions] Re: EBCDIC to ASCII co
2. 1990-10-02 Jeff Beard: Re: EBCDIC <--> ASCII conversion
3. 1990-10-03 Luciano Mannucci: Re: EBCDIC <--> ASCII conversion
22. 1996-03-28 Jim Meyering: Re: dd conv=(ascii|ebcdic)
23. 1996-11-24 Joe Wright: Re: The char type crossing the 8 bit barrier? (Was R
-../rmail/charsets/euro
+../charsets/rmail/euro
1. 1998-04-01 K I Larsson: (TC304.1649) More on Euro-codetables
-../rmail/charsets/extended-ascii
+../charsets/rmail/extended-ascii
1. 1997-04-14 Uri Guttman: recode and extended ascii
2. 1997-06-18 François Pinard: Re: recode and extended ascii
-../rmail/charsets/georgian
+../charsets/rmail/georgian
1. 1998-02-22 John Clews: (TC304.1511) Georgian standard (forwarded)
-../rmail/charsets/html
+../charsets/rmail/html
1. 1994-03-19 David Lebel: HTML...
2. 1994-11-12 Francois Pinard: iso8859-1.html
3. 1994-11-12 Francois Pinard: isolat1.html
41. 1998-10-25 Martin J. Duerst: Re: Converting control characters to HTML?
42. 1998-12-07 Thorgeir Sigurdsson: (CEN/TC304-Contribtns) Mark-Up and Braille
43. 1994-03-19 David Lebel: HTML...
+44. 1998-07-21 Wiel: recode: lat1html.c
-../rmail/charsets/kermit
+../charsets/rmail/kermit
1. 1991-09-18 Christine M Gianone: Character Set Files and Utilities
2. 1995-02-03 Chris Smith: kermit, recode latin1:cp850, and a little program
-../rmail/charsets/latex
+../charsets/rmail/latex
1. 1992-10-30 Pierre Darmon: Re: How to make the "degree" symbol?
2. 1992-11-02 Daniel H. Luecking: degree symbol
3. 1992-11-18 Ivan A Derzhanski: Re: \b \d and ISO 6937 Latin Diacriticals
23. 1998-07-14 Santiago Vila: Bug #24436: recode: missing some things for latex
24. 1998-07-14 François Pinard: Re: Bug #24436: recode: missing some things for
-../rmail/charsets/latin1
+../charsets/rmail/latin1
1. 1989-07-10 der Mouse: (none)
2. 1996-03-08 Alain LaBont:e':: (SC2.15) (Copy) iso / dis 8879 Hypertext Marku
3. 1996-05-22 Alain LaBont/e'/: Re:Roman Char set
4. 1997-06-09 mike@vlsivie.tuwien.ac.at: ISO 8859-1 National Character Set FAQ
5. 1997-01-17 mike@vlsivie.tuwien.ac.at: ISO 8859-1 National Character Set FAQ
+ 6. 1999-04-30 Julien CASSAIGNE: Re: Subjonctif imparfait
+ 7. 1999-05-06 Antoine Leca: Re: Subjonctif imparfait
+ 8. 1998-05-20 Alain LaBonté : La petite histoire de la ligature OE dans les no
+ 9. 1998-02-16 Alain LaBonté : Les ligatures dans les normes et standards
-../rmail/charsets/t61
- 1. 1997-11-21 Ulrich Drepper: Re: Character set conversion API for libc
- 2. 1997-11-26 Jake Morrison: Re: Character set conversion API for libc
-
-../rmail/charsets/tabular
- 1. 1995-06-21 Hilmar Schlegel: Re: recode problem
- 2. 1995-06-21 François Pinard: Re: recode problem
- 3. 1997-06-27 François Pinard: Re: recode 3.4 and Windows charset.
- 4. 1997-12-03 Hilmar Schlegel: Re: recode problem
- 5. 1997-04-09 Leong Kok Yong: Re: unicode <-> hex converter (fwd)
- 6. 1995-02-15 Francois Pinard: Re: recode 3.4 documentation
-
-../rmail/install/ansi2knr
- 1. 1998-04-07 Jim Meyering: Re: LIBOBJS and ANSI2KNR
- 2. 1998-04-07 Gary V Vaughan: Re: LIBOBJS and ANSI2KNR
- 3. 1999-02-02 L. Peter Deutsch: ansi2knr.c updates
- 4. 1999-02-02 L. Peter Deutsch: new version of ansi2knr
- 5. 1999-02-02 L. Peter Deutsch: new version of ansi2knr
- 6. 1999-02-02 L. Peter Deutsch: new version of ansi2knr
- 7. 1999-02-02 L. Peter Deutsch: new version of ansi2knr
-
-../rmail/install/bigcheck
- 1. 1998-12-18 Larry W. Virden: Re: Prerelease: Free recode 3.4n
-
-../rmail/install/docum
- 1. 1997-12-06 Santiago Vila Doncel: What is a `resurface'?
- 2. 1997-12-06 Santiago Vila Doncel: Re: What is a `resurface'?
- 3. 1997-12-11 François Pinard: Re: What is a `resurface'?
- 4. 1998-10-20 Brendan O'Dea: ANNOUNCE: help2man-1.5c available
-
-../rmail/install/gettext
- 1. 1997-12-02 François Pinard: [Eric Backus <ericb@labejb.lsid.hp.com>] recode
- 2. 1997-12-09 François Pinard: Re: recode 3.4e pretest
- 3. 1998-11-09 Alain Magloire: recode on Solaris
-
-../rmail/install/html
- 1. 1998-07-21 Wiel: recode: lat1html.c
- 2. 1998-07-21 François Pinard: Re: recode: lat1html.c
-
-../rmail/install/lex
- 1. 1998-04-06 Tom Tromey: Re: I want flex, not lex!
- 2. 1998-04-07 Akim Demaille: Re: I want flex, not lex!
- 3. 1998-04-07 Akim Demaille: Re: I want flex, not lex!
-
-../rmail/install/libtool
- 1. 1997-12-16 Erick Branderhorst: recode and ltmain.sh on solaris 2.6
- 2. 1998-01-07 Erick Branderhorst: recode-3.4g is not compiling properly becaus
- 3. 1998-02-23 Jim Meyering: Re: Installing fileutils 3.16m on icule
- 4. 1998-03-24 Larry W. Virden, x2487: problems building recode 3.4f
- 5. 1998-10-21 François Pinard: Re: Some paxutils issues
- 6. 1999-04-02 François Pinard: recode 3.4q - testing difficulties
- 7. 1999-04-03 Alexandre Oliva: Re: recode 3.4q - testing difficulties
-
-../rmail/install/overflows
- 1. 1999-04-26 François Pinard: Buffer overflows
-
-../rmail/install/raptor
- 1. 1998-12-10 François Pinard: recode 3.4l sur raptor - problèmes
-
-../rmail/install/types
- 1. 1997-12-26 François Pinard: recode sur raptor
-
-../rmail/iso/14652
- 1. 1997-12-21 Alain LaBonté - 3: (SC22WG20.2149) 14652 FDC available
- 2. 1998-01-07 Keld J|rn Simonsen: Re: ISO/IEC FCD 14651 and 14652
- 3. 1998-01-06 x.zhang@utoronto.ca: Re: ISO/IEC FCD 14651 and 14652
- 4. 1998-03-12 Keld J|rn Simonsen: Re: 9995-3 table 1 + registering Canadian lo
- 5. 1998-03-12 Keld J|rn Simonsen: Re: 9995-3 table 1 + registering Canadian lo
- 6. 1998-12-31 Keld J|rn Simonsen: (i18n.439) new sorting and locale drafts
-
-../rmail/iso/14766
- 1. 1998-05-19 Keld J|rn Simonsen: (iso14766.15) 14766 WD 3
-
-../rmail/iso/9term
- 1. 1996-07-09 Marc Feeley: 9term
- 2. 1996-07-25 Marc Feeley: 9term
- 3. 1996-06-07 Arnold D. Robbins: Re: terminal emulator recommendation?
- 4. 1996-07-25 Marc Feeley: 9term
- 5. 1995-11-22 Gary Capell: Unicode/UTF text editor: wily 0.9.8 (beta)
-
-../rmail/iso/cac-jtc1-i18n
- 1. 1998-04-02 Zbigniew, Ignatowicz: CAC-JTC1-I18N - mailing list.
- 2. 1998-05-29 Uma Umamaheswaran: (none)
- 3. 1998-04-03 SCC-JTC1_Forum@scc.ca: Notification of new entries in "CAC/JTC1/
- 4. 1995-03-24 Keld J|rn Simonsen: Re: Unicode/10646 equivalences for RFC 1345
- 5. 1996-02-27 Keld J|rn Simonsen: (i18n.292) new sc2/wg2 pages
-
-../rmail/iso/cdra
- 1. 1994-10-20 Erik Naggum: Re: Abandon ASCII for EBCDIC now!
-
-../rmail/iso/collate
- 1. 1997-10-29 Alain LaBonté - 3: Re: une question naïve
- 2. 1998-08-05 Alain LaBonté : RE: on Draft DoC on 14651 - sorting of numbers i
- 3. 1998-08-17 Alain LaBonté : RE: on Draft DoC on 14651 - sorting of numbers i
- 4. 1998-05-22 Alain LaBonté : ISO/IEC 14652 and ISO/IEC 14651
- 5. 1998-07-30 Alain LaBonté : Tri respectant la norme canadienne dans Excel
- 6. 1998-07-30 Alain LaBonté : Tri ne respectant pas la norme canadienne dans E
- 7. 1998-12-27 Alain LaBonté : Re: (SC22WG20.2470) Macron in ISO/IEC FCD 14651
- 8. 1998-12-24 Alain LaBonté : Re: Note from John Clews [on international order
- 9. 1998-12-30 Alain LaBonté : Re: (SC22WG20.2484) (SC22WG20.2483) (SC22WG20.24
-10. 1999-01-06 Alain LaBonté : Re: Caractères UCS cherchés :-)
-11. 1999-01-07 Thorgeir Sigurdsson: (CEN/TC304-N877) Greek Ordering
-12. 1998-11-19 Alain LaBonté: ISO/IEC 14651
-13. 1998-11-16 Alain LaBonté: Final final F[inal]CD 14651 ready for ballot (:
-14. 1998-11-17 Alain LaBonté: Re: Final final F[inal]CD 14651 ready for ballot
-15. 1998-11-17 Alain LaBonté: 14651
-16. 1998-11-10 Alain LaBonté: Ordering standard: to be sent for ballot unless t
-17. 1998-11-10 Alain LaBonté: Ordering standard: to be sent for ballot unless t
-18. 1999-04-29 Alain LaBonté : Re: Thai String Collation
-
-../rmail/iso/dutch
- 1. 1999-03-22 Thorgeir Sigurdsson: (CEN/TC304-N889) Dutch Char Set Policy
-
-../rmail/iso/elot
- 1. 1996-08-20 John Clews: Re: Transliteration and ISO
- 2. 1996-08-20 John Clews: EUROASCII and ASIASCII project proposals
- 3. 1996-08-23 François Pinard: [Mail Delivery Subsystem <MAILER-DAEMON@IRO.UMo
- 4. 1996-08-24 Mail Delivery Subsystem: Returned mail: Cannot send message for
- 5. 1996-08-22 François Pinard: subscribe
- 6. 1996-08-27 Mail Delivery Subsystem: Returned mail: Cannot send message for
-
-../rmail/iso/engine
- 1. 1998-10-30 Thorgeir Sigurdsson: (TC304.2057) N854 Draft of MODEL PT deliver
-
-../rmail/iso/euro
- 1. 1998-11-03 E.I. Kolehmainen: (TC304.2059) Euro Currency Support in Certain
-
-../rmail/iso/français
- 1. 1996-07-17 Alain LaBont/e'/: Correction required in the French title of ISO
- 2. 1996-08-08 Alain LaBont/e'/: Réunions de l'ISO à Québec
- 3. 1997-03-13 Alain LaBont/e'/: Character names and identifiers (was: Re: (SC2
- 4. 1998-03-18 Alain LaBonté : Re: Noms de caractères Unicode et ISO
- 5. 1998-03-23 Alain LaBonté : Re: Liste de noms de caractères du JUC
- 6. 1998-09-12 Alain LaBonté : Version française des normes
- 7. 1997-01-30 Alain LaBont/e'/: Re: HTLM et signes diacritiques
- 8. 1998-12-09 Alain LaBonté : Re: FW: Localising Unicode character names
- 9. 1998-12-17 François Pinard: Blancs suffixes
-10. 1998-12-17 François Pinard: Autres détails (je suis un peu maniaque :-)
-11. 1998-12-17 François Pinard: Re: recode et table française
-12. 1999-04-12 Alain LaBonté : Double name in the new version of the UCS
-
-../rmail/iso/guide
- 1. 1999-03-08 Thorgeir Sigurdsson: (CEN/TC304-N885) Guide on Character sets
- 2. 1999-03-10 malinder@algonet.se: (TC304.2138) Guide to Use of Character Sets
- 3. 1999-03-10 Subscription Confirmation: Subscribe guide CJIPROHXWU
- 4. 1999-03-10 François Pinard: Re: Subscribe guide CJIPROHXWU
- 5. 1999-03-10 STRI requests: Re: Subscribe guide CJIPROHXWU
- 6. 1999-03-10 François Pinard: (none)
-
-../rmail/iso/iso
- 1. 1997-10-29 Alain LaBonté - 3: Re: une question naïve
- 2. 1997-10-29 Alain LaBont\i - 2: L'ISO : francisation plus avancée qu'à l'UIT
- 3. 1997-11-04 Alain LaBont\i - 3: Nouveaux comités de l'ISO/CEI/JTC1 et leurs
- 4. 1997-11-04 Alain LaBonté - 1: RE: <<L'ISO et la CEI ne font pas partie des
- 5. 1998-04-22 Alain LaBonté : Plénière du JTC1 et Adaptabilité culturelle
- 6. 1998-03-10 Alain LaBonté : Nom et adresse du Conseil canadien des normes da
- 7. 1998-03-12 Alain LaBonté : Re: Adresse du site Web du CCN
-
-../rmail/iso/mailing-lists
- 1. 1997-10-31 Keld J|rn Simonsen: (TC304.1321) iso14766 list created
- 2. 1997-11-19 Michael Everson: (TC304.1354) iso15924 list created
- 3. 1997-11-19 Michael Everson: (i18n.399) iso15924 list created
- 4. 1997-11-03 Keld J|rn Simonsen: (TC304.1323) list of i18n lists
- 5. 1997-11-13 borka@e5.ijs.si: (TC304.1345) list of i18n lists
- 6. 1997-11-13 Alain LaBonté - 2: (TC304.1346) list of i18n lists
- 7. 1997-11-19 Tom Garland SMI European Software Centre: (TC304.1351) list of i
- 8. 1998-01-30 Þorvarður Kári Ólafsson: (TC304.1472) Discussion lists for funde
- 9. 1998-02-21 Þorvarður Kári Ólafsson: (TC304.1506) Please split up the discus
-10. 1998-04-06 Þorvarður Kári Ólafsson: (TC304.1684) Project discussion lists
-11. 1998-05-01 Keld J|rn Simonsen: (TC304.1742) guide on POSIX locales
-12. 1998-05-06 Þorvarður Kári Ólafsson: (TC304.1750) Keyboards list
-
-../rmail/iso/mes
- 1. 1998-08-26 Uma Umamaheswaran: Software to assist you in scrutinizing MES dr
-
-../rmail/iso/registry
- 1. 1998-05-20 Martin J. Duerst: International registry of coded character sets
- 2. 1998-05-20 Martin J. Duerst: International registry of coded character sets
- 3. 1997-10-07 Keld J|rn Simonsen: (TC304.1258) characters in MES - ENV 1973
- 4. 1997-10-07 Þorvarður Kári Ólafsson: (TC304.1264) characters in MES - ENV 19
- 5. 1998-08-03 Johan van Wingen: (TC304.1918) comparison of repertoires
- 6. 1998-08-04 Johan van Wingen: (TC304.1921) Annex C to NEN 1888 (revision in
- 7. 1998-05-13 Uma Umamaheswaran: (SC2.432) International registries of Coded C
- 8. 1998-05-20 Martin J. Duerst: International registry of coded character sets
- 9. 1998-09-16 Keld J|rn Simonsen: Cultural registry as international standard
-10. 1998-10-15 Uma Umamaheswaran: (SC2.463) New Registrations
-11. 1998-10-27 Thorgeir Sigurdsson: (TC304.2049) N852 Guide on the use of Char
-12. 1997-10-07 Keld J|rn Simonsen: Re: librecode, libc, gettext
-13. 1993-02-10 Jon Postel: Re: transcription iso-8859-1 to us-ascii?
-14. 1994-11-12 Ned Freed: Re: Non-observance of ; charset=xxxxxx etc
-15. 1997-01-12 Alain LaBont/e'/: Re: GUTenberg/oe y trema
-16. 1997-02-18 John F. Chandler: (i18n.347) Update to ISO International Registr
-17. 1995-03-14 Roman Czyborra: KOI8-R charset
-18. 1998-04-12 Keld J|rn Simonsen: (i18n.437) new list of character names
-19. 1998-04-13 Uma Umamaheswaran: (i18n.437) new list of character names
-20. 1993-02-10 Jon Postel: Re: transcription iso-8859-1 to us-ascii?
-21. 1994-10-12 Johannes Wilhelm: Re: ISO Latin-1 for DOS ?
-22. 1994-10-12 Markus Kuhn: Re: ISO Latin-1 for DOS ?
-23. 1994-10-17 Kosta Kostis: Re: ISO8859-1 to US-ASCII
-24. 1994-10-18 Kosta Kostis: Re: ISO8859-1 to US-ASCII
-25. 1994-11-16 J.P. Kuypers: Re: MacEudora and MIME charset
-26. 1994-11-29 Barry Bouwsma: Re: Looking for ISO-8859 character set definition
-27. 1995-02-10 Johan van Wingen: list of character code standards
-28. 1995-03-01 Johan van Wingen: (SC2WG3.47) document by ftp
-29. 1995-03-21 Kari E. Hurtta: Kehpager (Re: Latin-1 <-> NRC character set mapp
-30. 1995-04-10 Primoz Peterlin: Re: Recode and CP 1250
-31. 1996-06-18 John F. Chandler: (i18n.332) Updated summary of ISO IR
-32. 1997-06-20 Lukas Petrlik: Re: cs encodings (was: Re: recode 3.4)
-33. 1997-07-22 Keld J|rn Simonsen: (i18n.363) CEN cultural register
-34. 1996-01-13 Keld J|rn Simonsen: (i18n.285) CEN/TC304 PT01 report
+../charsets/rmail/marc
+ 1. 1999-12-17 Bruno Haible: suggestion ridicule pour recode
-../rmail/iso/rfc1345
+../charsets/rmail/rfc1345
1. 1991-11-04 Jonas Lagerblad: International character sets.
2. 1994-12-16 Ross Paterson: MIME charsets (was Re: can ISO-IR-*** be used as
3. 1996-04-29 Lukas Petrlik: cs encodings (was: Re: recode 3.4)
53. 1999-03-31 Keld J|rn Simonsen: Re: Fix for AtariST encoding
54. 1999-01-02 François Pinard: recode dans doc
-../rmail/iso/tcs
- 1. 1993-02-09 andrew@research.att.com: (none)
- 2. 1993-02-14 Francois Pinard: tcs, recode
- 3. 1993-02-20 Francois Pinard: Legaleese
- 4. 1993-12-11 Francois Pinard: GNU recode 3.2.9
- 5. 1993-12-12 Per Abrahamsen: Re: GNU recode 3.2.9
- 6. 1999-03-30 Andreas Schwab: Fix for AtariST encoding
+../charsets/rmail/t61
+ 1. 1997-11-21 Ulrich Drepper: Re: Character set conversion API for libc
+ 2. 1997-11-26 Jake Morrison: Re: Character set conversion API for libc
-../rmail/iso/théorie
- 1. 1998-04-03 Alain LaBonté : Re: Étude sur le codage des caractères
+../charsets/rmail/tables
+ 1. 1999-07-05 Bruno Haible: recode-3.5 conversion bug
+ 2. 1994-12-20 Hennus Bergman: Re: Small GNU recode bugs
-../rmail/iso/ucs
- 1. 1993-08-26 Hermann Hueni: Re: WANTED: recode extension to ROMAN8 (HP) char
+../charsets/rmail/tabular
+ 1. 1995-06-21 Hilmar Schlegel: Re: recode problem
+ 2. 1995-06-21 François Pinard: Re: recode problem
+ 3. 1997-06-27 François Pinard: Re: recode 3.4 and Windows charset.
+ 4. 1997-12-03 Hilmar Schlegel: Re: recode problem
+ 5. 1997-04-09 Leong Kok Yong: Re: unicode <-> hex converter (fwd)
+ 6. 1995-02-15 Francois Pinard: Re: recode 3.4 documentation
-../rmail/iso/unicode
- 1. 1990-07-23 Dan Oscarsson: Re: Time for 8 bit news, isn't it?????.
- 2. 1994-08-26 Lloyd: Re: Microsoft Codepages to Unicode
- 3. 1994-08-27 H. Peter Anvin: Re: Unix, Unicode, and internationalization
- 4. 1994-09-06 Alan Cox: Re: Unicode & Linux's future (was Re: Acid)
- 5. 1994-09-06 Andries Brouwer: Re: Unicode & Linux's future (was Re: Acid)
- 6. 1994-10-02 Andries.Brouwer%cwi.nl@Lightning.McRCIM.McGill.EDU: Re: recode
- 7. 1994-10-04 ITO Takayuki: Re: UTF-8
- 8. 1994-10-04 Jim.Rees@umich.edu: Re: UTF-8
- 9. 1994-12-21 David Goldsmith: Unicode Web Page Now Available!
-10. 1995-09-20 François Pinard: Re: Emacs C-q NNN
-11. 1996-01-05 François Pinard: Re: 8bit clean perl? (fwd)
-12. 1996-01-05 François Pinard: Re: 8bit clean perl? (fwd)
-13. 1996-03-11 Hart, Edwin F.: Unicode* Version 2.0 and new members of
-14. 1996-03-15 Alain LaBont:e':: Impact of ISO/IEC 10646 on POSIX - Draft perso
-15. 1996-03-21 Alain LaBont/e'/: Version àjour de la liste des noms de
-16. 1996-03-28 Keld J|rn Simonsen: (i18n.298) 10646 amendments available
-17. 1996-04-26 Keld J|rn Simonsen: (i18n.325) ISO 10646 character namesand posi
-18. 1996-05-04 Michael Everson: (i18n.327) European Subsets of ISO/IEC 10646-1
-19. 1996-05-11 Alain LaBont/e'/: Équivalences UTF-8 - Impact d'UTF-8, repli d'U
-20. 1996-05-11 Alain LaBont/e'/: Re: French names for 10646
-21. 1996-05-28 Alain LaBont/e'/: Universal Character Set... the most valuable u
-22. 1996-05-29 dorai@vnet.ibm.com: NO SUBJECT
-23. 1996-06-10 Michael Everson: Re: Translation & comments
-24. 1996-06-10 by way of everson@indigo.ie (Michael Everson): (i18n.331) "News"
-25. 1996-08-19 François Pinard: (none)
-26. 1996-09-13 Markus G. Kuhn: Unicode Introduction and References
-27. 1996-09-30 Markus G. Kuhn: Unicode 2.0 available now!!!
-28. 1996-10-06 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
-29. 1996-10-06 Alain LaBont/e'/: Différences entre UNICODE et le JUC et implant
-30. 1996-10-07 unicode@Unicode.ORG: UNICODE, SGML and HEBREW
-31. 1996-10-15 unicode@Unicode.ORG: How to order Version 2.0
-32. 1996-10-28 unicode@Unicode.ORG: Repertoires of European Letters: Draft Four
-33. 1996-11-20 Alain LaBont/e'/: Re: French Names for Hebrew Characters
-34. 1996-11-21 Jonathan Rosenne: Re: French Names for Hebrew Characters
-35. 1996-11-22 news@Unicode.ORG: Web Update
-36. 1996-11-24 Erik Naggum: Re: The char type crossing the 8 bit barrier? (Was
-37. 1996-11-28 unicode@Unicode.ORG: Re: HTML - i18n / NCR & charsets
-38. 1997-01-06 Alain LaBont/e'/: Re: ABU: FREQUENCES
-39. 1997-01-09 Michael Everson: (none)
-40. 1997-01-16 unicode@Unicode.ORG: Re: unicode <-> hex converter
-41. 1997-02-05 Alain LaBont/e'/: Up-to-date version of the UCS
-42. 1997-03-16 Alain LaBont/e'/: Courrier électronique pour UNICODE sur ordinat
-43. 1997-05-07 Michael Everson: Re: NO SUBJECT
-44. 1997-05-20 Alain LaBont/e'/: UNICODE et ISO/CEI 10646
-45. 1997-08-12 Alain LaBont\i SCT: Défense altruiste... par un Américain par su
-46. 1997-10-28 François Pinard: Re: librecode, libc, gettext
-47. 1994-12-20 Hennus Bergman: Re: Small GNU recode bugs
-48. 1995-04-20 Markus Kuhn (CIP 90): ISO 10646 & recode concept
-49. 1997-11-26 Andreas Dietrich: Re: Cyrillic cp1251 in recode
-50. 1994-10-09 Emmanuel Uren: 850 and more, 8859 and more, and more
-51. 1997-11-22 François Pinard: Re: unicode and gnu?
-52. 1998-02-14 Erik Naggum: Re: Is there any alternative to MULE?
-53. 1996-10-24 Alain LaBont/e'/: Quelques adresses pour les références à mes tr
-54. 1998-01-02 Alain LaBonté - 3: Re: aide!
-55. 1998-02-16 Alain LaBonté : Les ligatures dans les normes et standards
-56. 1998-03-10 Alain LaBonté : Importance des noms des caractères
-57. 1998-03-10 Alain LaBonté : Noms de caractères -- subtilités
-58. 1998-03-11 Alain LaBonté : Site descriptions containing HTML entity names a
-59. 1998-03-17 Alain LaBonté : Devinette : qu'a de particulier le caractère UFB
-60. 1998-03-24 Alain LaBonté : Re: Erreurs de nomenclature dans Windows NT4
-61. 1998-03-24 Alain LaBonté : RE: Erreurs de nomenclature dans Windows NT4 (bi
-62. 1998-03-25 Alain LaBonté : Versions françaises des produits de Microsoft
-63. 1998-04-09 Alain LaBonté : Java Script (ECMA Script) et ISO/CEI 10646 - sou
-64. 1996-10-29 Francois Yergeau: Re: GNU utils and proportional fonts
-65. 1998-05-09 Martin J. Duerst: Last Call for Papers, Unicode Conference, Sept
-66. 1998-02-16 John Clews: (TC304.1487) Script summary: status of ISO/IEC 10646
-67. 1998-06-30 Thorgeir Sigurdsson: (TC304.1826) Enquiry among members of CEN/T
-68. 1998-07-13 Chris Makemson: (TC304.1862) Review draft of the MES
-69. 1998-07-20 Keld J|rn Simonsen: (TC304.1873) (TC304 P10) Review draft of the
-70. 1998-07-21 Klaas Ruppel: (TC304.1875) (TC304 P10) Review draft of the MES
-71. 1998-07-21 K I Larsson: (TC304.1877) Review MES draft
-72. 1997-10-31 Alain LaBonté - 3: Philosophie de l'internationalisation de bon
-73. 1997-12-12 Alain LaBonté - 2: 10646 online
-74. 1997-12-15 Alain LaBonté : Re: Proposition pour le Notial à l'intention de
-75. 1997-12-12 NUMATA Toshinori: (i18n.419) (posix 3411) 3007 IDEOGRAPHIC NUMBE
-76. 1997-12-12 Lu Chin (or Lu Qin): (i18n.420) (posix 3411) 3007 IDEOGRAPHIC NU
-77. 1998-05-05 Alain LaBonté : Codage de la langue dans le jeu universel de car
-78. 1998-04-29 Alain LaBonté : Use of the Glyphs associated to the Unicode char
-79. 1998-08-05 Alain LaBonté : Re: Unicode Converter
-80. 1998-08-05 Alain LaBonté : Re: Unicode Converter
-81. 1998-05-26 Michel Suignard: RE: Symboles de fonctions de clavier - Déplacem
-82. 1998-06-23 Alain LaBonté : Re: fonte ou police ?
-83. 1998-09-09 Alain LaBonté : Re: Projet de rapport de liaison entre ISO/IEC J
-84. 1998-09-10 Gisle Aas: Re: "Coding system"? Eh?
-85. 1998-09-11 François Pinard: Re: "Coding system"? Eh?
-86. 1998-09-11 François Pinard: Re: "Coding system"? Eh?
-87. 1997-01-16 unicode@Unicode.ORG: Re: unicode <-> hex converter
-88. 1997-08-01 Martin J. Duerst: Re: librecode, libc, gettext
-89. 1997-11-25 Markus Kuhn: Re: ISO 10646 & recode concept
-90. 1998-01-15 Alain LaBonté : ISO/CEI 10646 et UNICODE : un peu de vulgarisati
-91. 1998-02-25 Alain LaBonté : Underanding/Status of agreement with UNICODE on
-92. 1998-05-20 Alain LaBonté : La petite histoire de la ligature OE dans les no
-93. 1998-09-07 François Pinard: 1) biz IRC 2) Perl et Unicode (http)
-94. 1998-09-17 Alain LaBonté : Character identifiers, names and mnemonicity --
-95. 1998-10-02 Uma Umamaheswaran: Fourteenth International Unicode Conference
-96. 1998-10-05 Mark Crispin: Re: proposal for a GNU Unicode font
-97. 1998-10-06 Mark Crispin: Re: proposal for a GNU Unicode font
-98. 1998-11-09 malinder@algonet.se: (TC304.2065) PT Guide on Character Sets - O
-99. 1998-11-09 Kenneth Whistler: (TC304.2066) FW: (TC304.2065) PT Guide on Char
-100. 1999-02-15 umavs@ca.ibm.com: FYI: Draft Irish comments on JTC1 N5698
-101. 1999-04-16 umavs@ca.ibm.com: 2nd Call for Papers -- 15th Unicode Conferenc
-102. 1999-05-11 Alain LaBonté : Une question intéressante et une réponse/RE: Un
-
-../rmail/iso/utf-32
- 1. 1999-04-07 Alain LaBonté : Info -- RE: UTF-32
-
-../rmail/iso/utf-mnemonics
- 1. 1998-07-18 Markus Kuhn: (TC304.1872) German reaction to Enquiry among membe
+../charsets/rmail/usoft
+ 1. 1994-08-26 Lloyd: Re: Microsoft Codepages to Unicode
+ 2. 1997-01-06 Alain LaBont/e'/: Re: ABU: FREQUENCES
-../rmail/iso/utf16
- 1. 1998-02-25 François Pinard: Re: Necessity of a better liaison with ISO TC 2
- 2. ---- -- -- C.Douglas O'Brien [SMTP:dobrien@idon.com]: RE: Necessity of a be
- 3. 1998-09-30 Roman Czyborra: Re: UTF16 <=> Reuters format?
+../engines/rmail/auto-detect
+ 1. 1996-01-13 DiDakDok,IVC: Decodage MIME
+ 2. 1997-12-09 François Pinard: Re: recode
+ 3. 1997-12-09 Milivoj Ivkovic: Re: recode
+ 4. 1998-07-01 Sam: Re: au secour!
+ 5. 1999-06-25 Earl Hood: Re: language detection
+ 6. 1999-08-23 Larry W. Virden: How to translated from unknown to known?
+ 7. 1999-12-13 François Pinard: Re: How to translated from unknown to known?
-../rmail/iso/utf7
- 1. 1998-03-02 François Pinard: Re: origine de ces nouveaux [...]?
- 2. 1998-03-03 François Pinard: Re: origine de ces nouveaux [...]?
+../engines/rmail/backup
+ 1. 1994-03-09 Nicolas Anquetil: recode
+ 2. 1994-12-04 Michael Gschwind: Re: Prerelease: GNU recode 3.4.1
+ 3. 1999-07-19 François Pinard: Re: better user interface
+ 4. 1999-07-20 Jean-loup Gailly: Re: better user interface
+ 5. 1999-07-20 Scott Schwartz: Re: better user interface
+ 6. 1999-07-20 Scott Schwartz: Re: better user interface
+ 7. 1999-07-20 François Pinard: Re: [Scott Schwartz <schwartz@bio.cse.psu.edu>]
+ 8. 1999-07-20 Fred L. Drake: Re: [Scott Schwartz <schwartz@bio.cse.psu.edu>] R
+ 9. 1999-07-20 Larry W. Virden: Re: [Scott Schwartz <schwartz@bio.cse.psu.edu>]
+
+../engines/rmail/bigcheck
+ 1. 1998-12-18 Larry W. Virden: Re: Prerelease: Free recode 3.4n
-../rmail/iso/utf8
- 1. 1994-05-05 Martin J. Duerst: Re: What is status of internationalization of
- 2. 1996-03-27 Francois Yergeau: UTF-8 I-D submitted
- 3. 1997-01-14 Alistair Crooks: ssam-1.4 and ure-2.5
- 4. 1997-11-22 François Pinard: Re: Movement for having Internet addresses usin
- 5. 1995-01-21 Markus Kuhn (CIP 90): ISO 10646/UTF-8 support for recode 3.4
- 6. 1997-12-10 Francois Yergeau: Re: Movement for having Internet addresses usi
- 7. 1998-03-02 Alain LaBonté : Re: origine de ces nouveaux «é», è, à ...?
- 8. 1997-12-10 Francois Yergeau: Re: Movement for having Internet addresses usi
- 9. 1995-09-19 François Pinard: Re: Emacs C-q NNN
-10. 1997-10-28 Martin J. Dürst: Re: A couple of bugs in Gnus-mule : summary buf
-11. 1998-10-29 Markus Kuhn: Free X11 Unicode terminal font available
-12. 1998-12-02 Richard Coleman: Re: Info on Internationalization
-13. 1998-12-03 Shenghuo ZHU: Re: Info on Internationalization
-14. 1998-12-06 François Pinard: Re: Info on Internationalization
-15. 1998-11-27 Alain LaBonté : Qu'est-ce que l'ASCII (bis) et courriel de l'ave
-16. 1999-02-09 François Pinard: Re: More charset things
-17. 1999-02-09 Steinar Bang: Re: More charset things
-18. 1999-02-08 François Pinard: Re: More charset things
-19. 1999-02-08 François Pinard: Re: More charset things
-20. 1999-02-14 Steinar Bang: UTF-8 (Was: More charset things)
-21. 1999-02-09 Lars Magne Ingebrigtsen: Re: More charset things
-22. 1998-11-02 Paul Eggert: Re: UTF-8 in gas
-23. 1998-11-02 Paul Eggert: Re: UTF-8 in gas
-24. 1998-11-04 Paul Eggert: Re: UTF-8 in gas
+../engines/rmail/documentation
+ 1. 1997-12-06 Santiago Vila Doncel: What is a `resurface'?
+ 2. 1997-12-06 Santiago Vila Doncel: Re: What is a `resurface'?
+ 3. 1997-12-11 François Pinard: Re: What is a `resurface'?
+ 4. 1999-12-13 CERT Advisory: CERT Advisory CA-99.15 - Buffer Overflows in SSH
+ 5. 1999-12-15 Eli Zaretskii: Re: Release: Free recode 3.5
+ 6. 1999-12-15 François Pinard: Re: Release: Free recode 3.5
+ 7. 1999-12-19 Eli Zaretskii: Re: Release: Free recode 3.5
+ 8. 1999-12-19 Eli Zaretskii: Re: Release: Free recode 3.5
-../rmail/iso/web-sites
- 1. 1997-11-03 Thorgeir Sigurdsson: (TC304.1326) Web of CEN and our Call
- 2. 1997-11-19 Michael Everson: (i18n.399) iso15924 list created
- 3. 1998-03-13 Thorgeir Sigurdsson: (TC304.1529) Inability to Distribute via ST
- 4. 1998-03-20 Keld J|rn Simonsen: (TC304.1535) Cultural convention standards f
- 5. 1998-04-17 Alain LaBonté : Versions pdf (fr+en) des alphabets latin n° 8 (c
- 6. 1998-05-12 Marc Wilhelm Kster: (TC304.1757) First draft of the European Ord
- 7. 1998-06-02 Michael Everson: (TC304.1790) (TC304 P11) WS/Alpha base document
- 8. 1998-06-03 Keld J|rn Simonsen: (TC304.1791) taxonomy draft
- 9. 1998-06-15 Thorgeir Sigurdsson: (TC304.1812) ISSS URL
-10. 1998-07-01 borka@e5.ijs.si: (TC304.1830) LE journal on the WEB
-11. 1998-07-02 Thorgeir Sigurdsson: (TC304.1837) Documents, in the mail
-12. 1998-07-07 Thorgeir Sigurdsson: (TC304.1854) Database of Latin letters
-13. 1998-08-05 Alain LaBonté : Re: Obtaining ISO standards in Canada
+../engines/rmail/erreurs-doc
+ 1. 1999-12-13 François Pinard: Re: Recode
+
+../engines/rmail/flat-optimizer
+ 1. 1999-07-23 Frantisek Hanzlik: recode x strip diacritics ?
+ 2. 1999-07-23 François Pinard: Re: recode x strip diacritics ?
+ 3. 1999-08-17 Frantisek Hanzlik: Re: recode x strip diacritics ?
+
+../engines/rmail/iso-paper
+ 1. 1998-10-30 Thorgeir Sigurdsson: (TC304.2057) N854 Draft of MODEL PT deliver
+
+../engines/rmail/library
+ 1. 1995-12-06 Per Bothner: Re: Internationalization resources?
+ 2. 1996-05-29 Ulrich Drepper: librecode, again
+ 3. 1997-10-14 Ulrich Drepper: Re: librecode
+ 4. 1999-09-23 Pawel Krawczyk: Re: recode memory management
+
+../engines/rmail/listing
+ 1. 1993-12-21 Martin Maechler: Re: Prerelease: GNU recode version 3.2.10
+ 2. 1993-12-21 Francois Pinard: Prerelease: GNU recode version 3.2.10
+ 3. 1993-02-10 Patrik F{ltstr|m: Re: transcription iso-8859-1 to us-ascii?
+ 4. 1998-10-29 Markus Kuhn: Free X11 Unicode terminal font available
+ 5. 1998-11-22 François Pinard: Re: Free X11 Unicode terminal font available
+ 6. 1999-03-30 Andreas Schwab: Fix for AtariST encoding
+
+../engines/rmail/mixed
+ 1. 1992-11-23 mcgill-vision!corto.inria.fr!shapiro: recode
+ 2. 1994-12-19 Martin Wendel: ANNOUNCE: Emil-2.0 is available
+ 3. 1995-02-28 Francois Pinard: UUPC
+ 4. 1995-03-11 Scott Nelson: ISO-8859-X email test
+ 5. 1995-03-16 Martin Wendel: ANNOUNCE: emil-2.0.5 released
+ 6. 1995-07-05 François Pinard: Re: Retour !
+ 7. 1995-07-25 David Collier-Brown: Early announcement: Mime-witing library
+ 8. 1996-03-02 François Pinard: Re: Présentation de Ulrich Drepper!
+ 9. 1996-06-09 François Pinard: Re: About recode
+10. 1997-10-30 =?iso-8859-1?Q?G=E9rald_St=2DArneault_=3Cstarneag=40grics.qc.ca=
+
+../engines/rmail/moteur
+ 1. 1999-04-18 François Pinard: -lf et ibmpc ?
+ 2. 1999-04-14 François Pinard: recode - IBM-PC
+ 3. 1999-04-03 Laurent Bourbeau: Recode 3.4q - Bug 5
+ 4. 1999-04-02 François Pinard: =?iso-8859-1?q?Probl=E8me?= recode
+ 5. 1999-06-03 Markus Kuhn: UTF-8 table output
+ 6. 1999-06-03 François Pinard: Re: UTF-8 table output
+ 7. 1999-06-03 François Pinard: Re: UTF-8 table output
+ 8. 1999-07-19 François Pinard: Re: better user interface
+ 9. 1999-08-17 Scott Schwartz: Re: better user interface
+
+../engines/rmail/moteur-ucs
+ 1. 1999-09-02 Bernard Derval: recode 3.5
+ 2. 1999-08-27 Laurent Bonnaud: Re: Bug#42208: recoding latin1<->html is not re
+ 3. 1999-12-13 François Pinard: Re: recode 3.5
+ 4. 1999-08-02 Santiago Vila: Bug#42208: recoding latin1<->html is not reversib
+ 5. 1999-08-17 François Pinard: Re: Bug#42208: recoding latin1<->html is not re
+ 6. 1999-08-13 Jukka Korpela: Recode - something simple I'm missing?
+ 7. 1999-08-13 François Pinard: Re: Recode - something simple I'm missing?
+ 8. 1999-08-16 Jukka.Korpela@hut.fi: Re: Recode - something simple I'm missing?
+ 9. 1999-08-16 François Pinard: Re: Recode - something simple I'm missing?
+
+../engines/rmail/multext
+ 1. 1996-05-24 Jean Ve'ronis: Soft: MtScript (Multilingual editor)
+ 2. 1996-06-17 Jean Ve'ronis: Free Soft: MtStr - Multilingual string library
+ 3. 1996-06-20 Jean Ve'ronis: Free Soft: MtRecode - Character conversion progra
+ 4. 1996-08-29 Malek BOUALEM -- UNIVERSITE: Brief Introduction of the LPL
+ 5. 1996-09-05 Malek BOUALEM -- UNIVERSITE: Re: Introduction of LPL/MULTEXT/MTS
+ 6. 1997-12-10 Jean Veronis: Re: Citation de MtRecode
+
+../engines/rmail/notation
+ 1. 1997-08-06 Ulrich Drepper: Re: charset names
-../rmail/options/Arabic
+../engines/rmail/overflows
+ 1. 1999-04-26 François Pinard: Buffer overflows
+
+../engines/rmail/speed
+ 1. 1999-01-22 Andreas Schwab: Re: iconv changes
+ 2. 1999-01-22 Ulrich Drepper: Re: iconv changes
+
+../engines/rmail/testing
+ 1. 1999-12-15 Eli Zaretskii: Re: Release: Free recode 3.5
+ 2. 1999-12-15 Eli Zaretskii: Re: Release: Free recode 3.5
+ 3. 1999-12-15 François Pinard: Re: Release: Free recode 3.5
+ 4. 1999-12-15 François Pinard: Re: Release: Free recode 3.5
+ 5. 1999-12-16 François Pinard: Re: Release: Free recode 3.5
+ 6. 1999-12-19 Eli Zaretskii: Re: Release: Free recode 3.5
+ 7. 1999-12-19 François Pinard: Re: Release: Free recode 3.5
+
+../fallbacks/rmail/Arabic
1. 1998-06-18 Roman Czyborra: Arabic renderer in four lines of Perl
2. 1996-12-04 unicode@Unicode.ORG: Arabic code pages (fwd)
3. 1999-03-08 Bill Kerruish: Re: recode-3.4g for use with Arabjoin
4. 1998-07-03 TAKAHASHI Naoto: new arabic package for Mule-2.3
5. 1998-03-23 Kenichi Handa: Re: Arabic in xemacs (or equivalent if necessary)
+ 6. 1999-07-09 François Pinard: Re: MULE and TeX
+ 7. 1999-07-21 Eli Zaretskii: Re: `paxutils', `tar' and Paul, the saga only beg
+ 8. 1996-10-29 Francois Yergeau: Re: GNU utils and proportional fonts
-../rmail/options/Cyrillic-Emacs
- 1. 1997-08-21 Kenichi Handa: Re: input cyrillic
- 2. 1997-08-23 Kenichi Handa: Re: Thank you, Re: input cyrillic
- 3. 1997-08-25 Martin J. Dürst: Re: input cyrillic
-
-../rmail/options/Cyrillic-LaTeX
- 1. 1998-05-20 Barbara Beeton: Re: Cyrillic by AMS
- 2. 1998-05-21 Boguslaw Jackowski: re: Cyrillic fonts by AMS
- 3. 1998-05-21 Barbara Beeton: re: Cyrillic fonts by AMS
- 4. 1998-05-21 Boguslaw Jackowski: Re: Cyrillic fonts by AMS (hopefully my fina
- 5. 1998-06-07 Barbara Beeton: Re: Cyrillic fonts with T1 encoding
- 6. 1998-06-08 taupin: Cyrillic fonts with T1 encoding
- 7. 1998-06-08 Robin Fairbairns: Re: Cyrillic fonts with T1 encoding
- 8. 1998-06-08 taupin: About cyrillic fonts.
- 9. 1998-06-09 taupin: Re: Ligature question
+../fallbacks/rmail/CLASSER
+ 1. 1996-03-28 Keld J|rn Simonsen: (POSIX.2 96) proposal for culturally depende
+ 2. 1996-04-07 Hallvard B Furuseth: recode suggestion: as-readable-as-possible
+ 3. 1996-04-17 Don Cragun: (SC22WG15RIN.324) (POSIX.2 96) proposal for cultural
+ 4. 1996-06-21 Keld J|rn Simonsen: recode [was: Re: Spelling "sango" in ISO 639
+ 5. 1998-07-02 Thorgeir Sigurdsson: (TC304.1838) Fallback info request- N839
+ 6. 1998-07-03 Keld J|rn Simonsen: (TC304.1839) Fallback info request- N839
+ 7. 1998-07-07 borka@e5.ijs.si: (TC304.1853) Fallback info request- N839
+ 8. 1998-07-07 Keld J|rn Simonsen: (TC304.1857) fallback
+ 9. 1998-07-17 Johan van Wingen: (TC304.1867) fall back
+10. 1998-07-21 borka@e5.ijs.si: (TC304.1874) German reaction to Enquiry among m
+11. 1998-07-22 borka@e5.ijs.si: (TC304.1887) German reaction to Enquiry among m
+12. 1998-07-22 Marc Wilhelm Kster: (TC304.1890) German reaction to Enquiry amon
+13. 1998-07-22 Markus Kuhn: (TC304.1894) fallback characters
+14. 1998-07-23 John Clews: (TC304.1902) Actions on UTF-Mnemonic/Fallbacks/trans
+15. 1998-09-15 Alain LaBont\82é\82 : Re: Two questions
+16. 1998-10-24 François Pinard: HTML, fallbacks and varia
+17. 1998-11-22 François Pinard: Re: Free X11 Unicode terminal font available
+18. 1998-12-27 Martin Mares: Assorted recode ideas
+19. 1998-07-22 John Clews: (TC304.1897) Fallbacks/transformation
+20. 1997-12-04 Ulrich Drepper: Re: recode problem
+21. 1997-12-03 François Pinard: Re: recode problem
+22. 1998-12-27 François Pinard: Re: Assorted recode ideas
+23. 1998-11-18 Thorgeir Sigurdsson: (TC304.2092) N858 Fallback 1st draft
+24. 1998-11-19 Michael Everson: (TC304.2094) N858 Fallback 1st draft
+25. 1998-11-20 Chris Makemson: (TC304.2100) (TC304.2094) N858 Fallback 1st draf
+26. 1998-11-20 Michael Everson: (TC304.2101) N858 Fallback 1st draft
+27. 1999-02-15 Thorgeir Sigurdsson: (CEN/TC304-N881) Euro report
+28. 1998-12-28 Keld J|rn Simonsen: Re: Recode 3.4n: combining byte to byte brok
+29. 1998-12-27 Martin Mares: Assorted recode ideas
+30. 1998-12-27 François Pinard: Re: Assorted recode ideas
-../rmail/options/Danish
+../fallbacks/rmail/Danish
1. 1998-05-01 Bo Vagner Hoejer: Re: hello-1.3.10.da.po
-../rmail/options/Esperanto
+../fallbacks/rmail/Dutch
+ 1. 1999-03-22 Thorgeir Sigurdsson: (CEN/TC304-N889) Dutch Char Set Policy
+
+../fallbacks/rmail/Esperanto
1. 1998-10-04 Moshe Zadka: recode: Esperanto addition?
2. 1992-07-10 Will Overington: Usenet University. Learning Material. Esperanto
3. 1992-07-22 Will Overington: TOOLS Roman (including Esperanto) and Cyrillic
7. 1993-12-23 Jim Kingdon: Changes to recode for Esperanto
8. 1994-01-13 Thorbjoern Hansen: Re: Suggestions for `recode'
-../rmail/options/French
+../fallbacks/rmail/Français
+ 1. 1996-07-17 Alain LaBont/e'/: Correction required in the French title of ISO
+ 2. 1996-08-08 Alain LaBont/e'/: Réunions de l'ISO à Québec
+ 3. 1997-03-13 Alain LaBont/e'/: Character names and identifiers (was: Re: (SC2
+ 4. 1998-03-18 Alain LaBonté : Re: Noms de caractères Unicode et ISO
+ 5. 1998-03-23 Alain LaBonté : Re: Liste de noms de caractères du JUC
+ 6. 1998-09-12 Alain LaBonté : Version française des normes
+ 7. 1997-01-30 Alain LaBont/e'/: Re: HTLM et signes diacritiques
+ 8. 1998-12-09 Alain LaBonté : Re: FW: Localising Unicode character names
+ 9. 1998-12-17 François Pinard: Blancs suffixes
+10. 1998-12-17 François Pinard: Autres détails (je suis un peu maniaque :-)
+11. 1998-12-17 François Pinard: Re: recode et table française
+12. 1999-04-12 Alain LaBonté : Double name in the new version of the UCS
+13. 1998-03-25 Alain LaBonté : Versions françaises des produits de Microsoft
+
+../fallbacks/rmail/French
1. 1994-03-11 Francois Pinard: recode
2. 1994-11-16 Francois Pinard: Re: recode 3.4+ and HTML
3. 1996-09-24 François Pinard: Re: recode-3.4
12. 1998-02-24 François Pinard: Re: Subspace-based fault Subspace-based fault d
13. 1993-02-14 Harald Tveit Alvestrand: Re: ISO-8859-1 and French
-../rmail/options/German
+../fallbacks/rmail/German
1. 1997-09-05 Michael Mauch: Recode 3.4: latin small letter sharp s (german) i
2. 1998-04-28 Jochen.Hayek@acm.org: what about `ASCII with easy German convent
3. 1998-04-28 François Pinard: Re: what about `ASCII with easy German conventi
5. 1994-04-13 Ulrich Windl: recode 3.3
6. 1997-11-25 Markus Kuhn: Re: ISO 10646/UTF-8 support for recode 3.4
-../rmail/options/Greek
+../fallbacks/rmail/Greek
1. 1994-10-13 Liam R. E. Quin: Re: Multilingual HTML, SGML documents?
-../rmail/options/Hebrew
+../fallbacks/rmail/Hebrew
1. 1997-10-03 Noam Shomron: Re: Hebrew Transcription
2. 1997-10-01 Noam Shomron: Hebrew Transcription
3. 1997-10-03 Martin J. Dürst: Re: Hebrew Transcription
5. 1997-10-01 Noam Shomron: Re: Hebrew
6. 1992-02-06 Nathaniel Borenstein: test of =?iso-8859-8?q?=FA=E9=F8=E1=F2?= i
-../rmail/options/Hungarian
+../fallbacks/rmail/Hungarian
1. 1995-11-02 Andras Kornai: Re: Hungarian
-../rmail/options/Irish
+../fallbacks/rmail/Irish
1. 1995-02-15 Daniel Quinlan: Re: recode 3.4 documentation
2. 1995-01-11 Daniel Quinlan: GNU recode addition - Gaelic
3. 1995-02-15 Daniel Quinlan: Re: recode 3.4 documentation
-../rmail/options/compose
+../fallbacks/rmail/compose
1. 1998-07-21 Markus Kuhn: (TC304.1878) UTF-mnemonic (was: German reaction)
2. 1998-07-24 K I Larsson: (TC304.1903) Keyboard compose sequences
3. 1998-12-08 Ulrich Drepper: Re: Character composition
6. 1998-12-08 Ulrich Drepper: Re: Character composition
7. 1998-12-10 Martin J. Duerst: Re: Character composition
-../rmail/options/fallback
- 1. 1996-03-28 Keld J|rn Simonsen: (POSIX.2 96) proposal for culturally depende
- 2. 1996-04-07 Hallvard B Furuseth: recode suggestion: as-readable-as-possible
- 3. 1996-04-17 Don Cragun: (SC22WG15RIN.324) (POSIX.2 96) proposal for cultural
- 4. 1996-06-21 Keld J|rn Simonsen: recode [was: Re: Spelling "sango" in ISO 639
- 5. 1998-07-02 Thorgeir Sigurdsson: (TC304.1838) Fallback info request- N839
- 6. 1998-07-03 Keld J|rn Simonsen: (TC304.1839) Fallback info request- N839
- 7. 1998-07-07 borka@e5.ijs.si: (TC304.1853) Fallback info request- N839
- 8. 1998-07-07 Keld J|rn Simonsen: (TC304.1857) fallback
- 9. 1998-07-17 Johan van Wingen: (TC304.1867) fall back
-10. 1998-07-21 borka@e5.ijs.si: (TC304.1874) German reaction to Enquiry among m
-11. 1998-07-22 borka@e5.ijs.si: (TC304.1887) German reaction to Enquiry among m
-12. 1998-07-22 Marc Wilhelm Kster: (TC304.1890) German reaction to Enquiry amon
-13. 1998-07-22 Markus Kuhn: (TC304.1894) fallback characters
-14. 1998-07-23 John Clews: (TC304.1902) Actions on UTF-Mnemonic/Fallbacks/trans
-15. 1998-09-15 Alain LaBont\82é\82 : Re: Two questions
-16. 1998-10-24 François Pinard: HTML, fallbacks and varia
-17. 1998-11-22 François Pinard: Re: Free X11 Unicode terminal font available
-18. 1998-12-27 Martin Mares: Assorted recode ideas
-19. 1998-07-22 John Clews: (TC304.1897) Fallbacks/transformation
-20. 1997-12-04 Ulrich Drepper: Re: recode problem
-21. 1997-12-03 François Pinard: Re: recode problem
-22. 1998-12-27 François Pinard: Re: Assorted recode ideas
-23. 1998-11-18 Thorgeir Sigurdsson: (TC304.2092) N858 Fallback 1st draft
-24. 1998-11-19 Michael Everson: (TC304.2094) N858 Fallback 1st draft
-25. 1998-11-20 Chris Makemson: (TC304.2100) (TC304.2094) N858 Fallback 1st draf
-26. 1998-11-20 Michael Everson: (TC304.2101) N858 Fallback 1st draft
-27. 1999-02-15 Thorgeir Sigurdsson: (CEN/TC304-N881) Euro report
-28. 1998-12-28 Keld J|rn Simonsen: Re: Recode 3.4n: combining byte to byte brok
-29. 1998-12-27 Martin Mares: Assorted recode ideas
-30. 1998-12-27 François Pinard: Re: Assorted recode ideas
-
-../rmail/options/flat
+../fallbacks/rmail/flat
1. 1996-04-30 Yann Dirson: Re: recode: suggestion
-../rmail/options/generic
+../fallbacks/rmail/generic
1. 1993-02-10 Markus Kuhn: Re: transcription iso-8859-1 to us-ascii?
-../rmail/options/mnemo
+../fallbacks/rmail/mnemo
1. 1995-02-28 Francois Pinard: UUPC
-../rmail/options/translit
+../fallbacks/rmail/translit
1. 1996-04-07 Hallvard B Furuseth: recode suggestion: as-readable-as-possible
2. 1996-10-14 Lars Magne Ingebrigtsen: Re: 8 bits in citations (Was: Re: sgnus
3. 1997-11-25 Fran\82çois Pinard: Re: ISO 10646/UTF-8 support for recode 3.4
13. 1998-07-08 Johan van Wingen: (TC304.1858) transliterating Greek
14. 1996-10-03 feeley@JSP.UMontreal.CA: (none)
-../rmail/options/translit-iso
+../fallbacks/rmail/translit-iso
1. 1996-05-31 Alain LaBont/e'/: Réflecteur de courrier sur la translittération
2. 1996-06-12 Alain LaBont/e'/: Translittération
3. 1996-06-24 dorai@vnet.ibm.com: Transliteration standards; Liaisons; and Ema
42. 1997-11-25 Keld J|rn Simonsen: (i18n.416) Transliteration [and transcriptio
43. 1997-11-25 Keld J|rn Simonsen: (i18n.417) Transliteration [and transcriptio
-../rmail/surfaces/base64
- 1. 1998-09-11 Lars Magne Ingebrigtsen: Re: [Various] base64-decode
- 2. 1998-09-10 Santiago Vila: Re: [Various] base64-decode
- 3. 1998-09-10 François Pinard: Re: [Various] base64-decode
- 4. 1998-09-29 Christopher Davis: Re: line endings
+../iso/rmail/14652
+ 1. 1997-12-21 Alain LaBonté - 3: (SC22WG20.2149) 14652 FDC available
+ 2. 1998-01-07 Keld J|rn Simonsen: Re: ISO/IEC FCD 14651 and 14652
+ 3. 1998-01-06 x.zhang@utoronto.ca: Re: ISO/IEC FCD 14651 and 14652
+ 4. 1998-03-12 Keld J|rn Simonsen: Re: 9995-3 table 1 + registering Canadian lo
+ 5. 1998-03-12 Keld J|rn Simonsen: Re: 9995-3 table 1 + registering Canadian lo
+ 6. 1998-12-31 Keld J|rn Simonsen: (i18n.439) new sorting and locale drafts
-../rmail/surfaces/binhex
- 1. 1996-08-28 Claude Charest: Re: Binhex
- 2. 1995-04-05 John Gardiner Myers: Re: I Need MIME/BASE64 Decoder for Nintendo
- 3. 1995-05-18 Chris Newman: Re: Info on MACMIME needed (bis)
- 4. 1998-11-30 Lars Magne Ingebrigtsen: MIME display: broken multipart; binhex
- 5. 1998-08-07 Remi St-Onge: pasv
+../iso/rmail/14766
+ 1. 1998-05-19 Keld J|rn Simonsen: (iso14766.15) 14766 WD 3
-../rmail/surfaces/braille
- 1. 1994-05-18 Francois Pinard: Braille codes
+../iso/rmail/cac-jtc1-i18n
+ 1. 1998-04-02 Zbigniew, Ignatowicz: CAC-JTC1-I18N - mailing list.
+ 2. 1998-05-29 Uma Umamaheswaran: (none)
+ 3. 1998-04-03 SCC-JTC1_Forum@scc.ca: Notification of new entries in "CAC/JTC1/
+ 4. 1995-03-24 Keld J|rn Simonsen: Re: Unicode/10646 equivalences for RFC 1345
+ 5. 1996-02-27 Keld J|rn Simonsen: (i18n.292) new sc2/wg2 pages
-../rmail/surfaces/crypt
- 1. 1995-07-24 John Gardiner Myers: Re: New base64 option to uuencode in POSIX
- 2. 1995-08-03 David Eaves: Re: MIME Content-MD5 header
+../iso/rmail/cdra
+ 1. 1994-10-20 Erik Naggum: Re: Abandon ASCII for EBCDIC now!
-../rmail/surfaces/graphic
- 1. 1994-11-16 Francois Pinard: Re: recode 3.4+ and HTML
- 2. 1994-10-11 mike@vlsivie.tuwien.ac.at: Re: recode
- 3. 1994-12-02 Lukas Petrlik: recode 3.4
+../iso/rmail/collate
+ 1. 1997-10-29 Alain LaBonté - 3: Re: une question naïve
+ 2. 1998-08-05 Alain LaBonté : RE: on Draft DoC on 14651 - sorting of numbers i
+ 3. 1998-08-17 Alain LaBonté : RE: on Draft DoC on 14651 - sorting of numbers i
+ 4. 1998-05-22 Alain LaBonté : ISO/IEC 14652 and ISO/IEC 14651
+ 5. 1998-07-30 Alain LaBonté : Tri respectant la norme canadienne dans Excel
+ 6. 1998-07-30 Alain LaBonté : Tri ne respectant pas la norme canadienne dans E
+ 7. 1998-12-27 Alain LaBonté : Re: (SC22WG20.2470) Macron in ISO/IEC FCD 14651
+ 8. 1998-12-24 Alain LaBonté : Re: Note from John Clews [on international order
+ 9. 1998-12-30 Alain LaBonté : Re: (SC22WG20.2484) (SC22WG20.2483) (SC22WG20.24
+10. 1999-01-06 Alain LaBonté : Re: Caractères UCS cherchés :-)
+11. 1999-01-07 Thorgeir Sigurdsson: (CEN/TC304-N877) Greek Ordering
+12. 1998-11-19 Alain LaBonté: ISO/IEC 14651
+13. 1998-11-16 Alain LaBonté: Final final F[inal]CD 14651 ready for ballot (:
+14. 1998-11-17 Alain LaBonté: Re: Final final F[inal]CD 14651 ready for ballot
+15. 1998-11-17 Alain LaBonté: 14651
+16. 1998-11-10 Alain LaBonté: Ordering standard: to be sent for ballot unless t
+17. 1998-11-10 Alain LaBonté: Ordering standard: to be sent for ballot unless t
+18. 1999-04-29 Alain LaBonté : Re: Thai String Collation
-../rmail/surfaces/hlp
- 1. 1998-10-29 Marc Verreault: Re: [Q]: *.hlp format to HTML
+../iso/rmail/elot
+ 1. 1996-08-20 John Clews: Re: Transliteration and ISO
+ 2. 1996-08-20 John Clews: EUROASCII and ASIASCII project proposals
+ 3. 1996-08-23 François Pinard: [Mail Delivery Subsystem <MAILER-DAEMON@IRO.UMo
+ 4. 1996-08-24 Mail Delivery Subsystem: Returned mail: Cannot send message for
+ 5. 1996-08-22 François Pinard: subscribe
+ 6. 1996-08-27 Mail Delivery Subsystem: Returned mail: Cannot send message for
-../rmail/surfaces/implied
- 1. 1998-12-07 François Pinard: Re: Novice user of recode with question
- 2. 1997-12-09 Milivoj Ivkovic: Re: recode
+../iso/rmail/euro
+ 1. 1998-11-03 E.I. Kolehmainen: (TC304.2059) Euro Currency Support in Certain
-../rmail/surfaces/keyboards
- 1. 1994-09-07 Darin Johnson: Re: Unicode & Linux's future (was Re: Acid)
- 2. 1994-09-07 Andries Brouwer: Re: Unicode & Linux's future (was Re: Acid)
- 3. 1994-09-07 Richard L. Goerwitz: Re: Unicode & Linux's future (was Re: Acid)
- 4. 1994-09-08 Andries Brouwer: Re: Unicode & Linux's future (was Re: Acid)
- 5. ---- -- -- Alain LaBont(e'): Re: list of character code standards
- 6. ---- -- -- Alain LaBont(e'): Input methods to enter characters of ISO/IEC 1
- 7. ---- -- -- Alain LaBont(e'): Input methods -- 8859-1-coded version
- 8. 1994-08-29 ALB@immedia.ca: Universal Input methods
- 9. 1995-04-19 Gilles Pinard: Divers
-10. 1989-07-21 Francois Pinard: Support du franc,ais sur icule
+../iso/rmail/guide
+ 1. 1999-03-08 Thorgeir Sigurdsson: (CEN/TC304-N885) Guide on Character sets
+ 2. 1999-03-10 malinder@algonet.se: (TC304.2138) Guide to Use of Character Sets
+ 3. 1999-03-10 Subscription Confirmation: Subscribe guide CJIPROHXWU
+ 4. 1999-03-10 François Pinard: Re: Subscribe guide CJIPROHXWU
+ 5. 1999-03-10 STRI requests: Re: Subscribe guide CJIPROHXWU
+ 6. 1999-03-10 François Pinard: (none)
-../rmail/surfaces/rfc934
- 1. 1994-10-31 David J. MacKenzie: [pinard@iro.umontreal.ca: Re: bug in ansi2kn
- 2. 1994-10-31 Francois Pinard: Re: [pinard@iro.umontreal.ca: Re: bug in ansi2k
+../iso/rmail/iso
+ 1. 1997-10-29 Alain LaBonté - 3: Re: une question naïve
+ 2. 1997-10-29 Alain LaBont\i - 2: L'ISO : francisation plus avancée qu'à l'UIT
+ 3. 1997-11-04 Alain LaBont\i - 3: Nouveaux comités de l'ISO/CEI/JTC1 et leurs
+ 4. 1997-11-04 Alain LaBonté - 1: RE: <<L'ISO et la CEI ne font pas partie des
+ 5. 1998-04-22 Alain LaBonté : Plénière du JTC1 et Adaptabilité culturelle
+ 6. 1998-03-10 Alain LaBonté : Nom et adresse du Conseil canadien des normes da
+ 7. 1998-03-12 Alain LaBonté : Re: Adresse du site Web du CCN
-../rmail/surfaces/sgml
- 1. 1995-04-19 François Pinard: Re: ISO 10646 & recode concept
+../iso/rmail/mailing-lists
+ 1. 1997-10-31 Keld J|rn Simonsen: (TC304.1321) iso14766 list created
+ 2. 1997-11-19 Michael Everson: (TC304.1354) iso15924 list created
+ 3. 1997-11-19 Michael Everson: (i18n.399) iso15924 list created
+ 4. 1997-11-03 Keld J|rn Simonsen: (TC304.1323) list of i18n lists
+ 5. 1997-11-13 borka@e5.ijs.si: (TC304.1345) list of i18n lists
+ 6. 1997-11-13 Alain LaBonté - 2: (TC304.1346) list of i18n lists
+ 7. 1997-11-19 Tom Garland SMI European Software Centre: (TC304.1351) list of i
+ 8. 1998-01-30 Þorvarður Kári Ólafsson: (TC304.1472) Discussion lists for funde
+ 9. 1998-02-21 Þorvarður Kári Ólafsson: (TC304.1506) Please split up the discus
+10. 1998-04-06 Þorvarður Kári Ólafsson: (TC304.1684) Project discussion lists
+11. 1998-05-01 Keld J|rn Simonsen: (TC304.1742) guide on POSIX locales
+12. 1998-05-06 Þorvarður Kári Ólafsson: (TC304.1750) Keyboards list
-../rmail/surfaces/shar-docum
- 1. ....-..-.. lvirden@cas.org: Re: Solution for [Re: shar 4.0 make shar.dvi pr
- 2. 1994-09-09 gaumondp@ere.umontreal.ca: Comments about shar-4.0
- 3. 1994-09-11 davidsen@tmr.com: Re: shar 4.0 [was: Re: disk buffering in Linux
- 4. 1994-09-12 Francois Pinard: Say a word about GNU touch
- 5. 1994-09-16 djm@va.pubnix.com: comments on shar 4.0 doc
- 6. 1994-09-10 Mailer-Daemon@ileaf.com: Returned mail: Host unknown
- 7. 1994-09-03 Francois Pinard: GNU shar 4.0
- 8. 1994-11-11 Francois Pinard: Re: Release: GNU sharutils 4.1
- 9. 1994-11-11 Martin Maechler: Re: Release: GNU sharutils 4.1
-10. 1994-11-30 Francois Pinard: Re: Suggestion for Sharutils (feature)
-11. 1994-11-30 Francois Pinard: Re: Suggestion for Sharutils (feature)
-12. 1995-02-11 Francois Pinard: sh, shar, unshar - explications
-13. 1994-11-16 Francois Pinard: Re: sharutils
-14. 1994-11-17 Winston Edmond: Suggested change to shar
-15. 1994-11-17 Francois Pinard: Re: Suggested change to shar
-16. 1995-03-31 François Pinard: Re: v47i048: htmlchek - htmlchek - HTML Error C
-17. 1995-12-11 François Pinard: Re: shar & standard input
-18. 1995-12-12 François Pinard: Re: GNU shar 4.1: ambiguous date format in head
+../iso/rmail/mes
+ 1. 1996-05-04 Michael Everson: (i18n.327) European Subsets of ISO/IEC 10646-1
+ 2. 1998-07-13 Chris Makemson: (TC304.1862) Review draft of the MES
+ 3. 1998-07-21 Klaas Ruppel: (TC304.1875) (TC304 P10) Review draft of the MES
+ 4. 1998-07-21 K I Larsson: (TC304.1877) Review MES draft
+ 5. 1998-08-26 Uma Umamaheswaran: Software to assist you in scrutinizing MES dr
-../rmail/surfaces/tranisci
- 1. 1996-02-16 Alain LaBont:e':: Re: Frappe de caracte`res accentue's
+../iso/rmail/registry
+ 1. 1998-05-20 Martin J. Duerst: International registry of coded character sets
+ 2. 1998-05-20 Martin J. Duerst: International registry of coded character sets
+ 3. 1997-10-07 Keld J|rn Simonsen: (TC304.1258) characters in MES - ENV 1973
+ 4. 1997-10-07 Þorvarður Kári Ólafsson: (TC304.1264) characters in MES - ENV 19
+ 5. 1998-08-03 Johan van Wingen: (TC304.1918) comparison of repertoires
+ 6. 1998-08-04 Johan van Wingen: (TC304.1921) Annex C to NEN 1888 (revision in
+ 7. 1998-05-13 Uma Umamaheswaran: (SC2.432) International registries of Coded C
+ 8. 1998-05-20 Martin J. Duerst: International registry of coded character sets
+ 9. 1998-09-16 Keld J|rn Simonsen: Cultural registry as international standard
+10. 1998-10-15 Uma Umamaheswaran: (SC2.463) New Registrations
+11. 1998-10-27 Thorgeir Sigurdsson: (TC304.2049) N852 Guide on the use of Char
+12. 1997-10-07 Keld J|rn Simonsen: Re: librecode, libc, gettext
+13. 1993-02-10 Jon Postel: Re: transcription iso-8859-1 to us-ascii?
+14. 1994-11-12 Ned Freed: Re: Non-observance of ; charset=xxxxxx etc
+15. 1997-01-12 Alain LaBont/e'/: Re: GUTenberg/oe y trema
+16. 1997-02-18 John F. Chandler: (i18n.347) Update to ISO International Registr
+17. 1995-03-14 Roman Czyborra: KOI8-R charset
+18. 1998-04-12 Keld J|rn Simonsen: (i18n.437) new list of character names
+19. 1998-04-13 Uma Umamaheswaran: (i18n.437) new list of character names
+20. 1993-02-10 Jon Postel: Re: transcription iso-8859-1 to us-ascii?
+21. 1994-10-12 Johannes Wilhelm: Re: ISO Latin-1 for DOS ?
+22. 1994-10-12 Markus Kuhn: Re: ISO Latin-1 for DOS ?
+23. 1994-10-17 Kosta Kostis: Re: ISO8859-1 to US-ASCII
+24. 1994-10-18 Kosta Kostis: Re: ISO8859-1 to US-ASCII
+25. 1994-11-16 J.P. Kuypers: Re: MacEudora and MIME charset
+26. 1994-11-29 Barry Bouwsma: Re: Looking for ISO-8859 character set definition
+27. 1995-02-10 Johan van Wingen: list of character code standards
+28. 1995-03-01 Johan van Wingen: (SC2WG3.47) document by ftp
+29. 1995-03-21 Kari E. Hurtta: Kehpager (Re: Latin-1 <-> NRC character set mapp
+30. 1995-04-10 Primoz Peterlin: Re: Recode and CP 1250
+31. 1996-06-18 John F. Chandler: (i18n.332) Updated summary of ISO IR
+32. 1997-06-20 Lukas Petrlik: Re: cs encodings (was: Re: recode 3.4)
+33. 1997-07-22 Keld J|rn Simonsen: (i18n.363) CEN cultural register
+34. 1996-01-13 Keld J|rn Simonsen: (i18n.285) CEN/TC304 PT01 report
+35. 1999-07-07 LaBonté, Alain: Enregistrement des jeux de caractères ISO - comi
+
+../iso/rmail/références
+ 1. 1998-04-03 Alain LaBonté : Re: Étude sur le codage des caractères
+ 2. 1998-11-30 Roman Czyborra: finished thesis on Unicode in Unix
+
+../iso/rmail/using-word
+ 1. 1996-10-06 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
+
+../iso/rmail/web-sites
+ 1. 1997-11-03 Thorgeir Sigurdsson: (TC304.1326) Web of CEN and our Call
+ 2. 1997-11-19 Michael Everson: (i18n.399) iso15924 list created
+ 3. 1998-03-13 Thorgeir Sigurdsson: (TC304.1529) Inability to Distribute via ST
+ 4. 1998-03-20 Keld J|rn Simonsen: (TC304.1535) Cultural convention standards f
+ 5. 1998-04-17 Alain LaBonté : Versions pdf (fr+en) des alphabets latin n° 8 (c
+ 6. 1998-05-12 Marc Wilhelm Kster: (TC304.1757) First draft of the European Ord
+ 7. 1998-06-02 Michael Everson: (TC304.1790) (TC304 P11) WS/Alpha base document
+ 8. 1998-06-03 Keld J|rn Simonsen: (TC304.1791) taxonomy draft
+ 9. 1998-06-15 Thorgeir Sigurdsson: (TC304.1812) ISSS URL
+10. 1998-07-01 borka@e5.ijs.si: (TC304.1830) LE journal on the WEB
+11. 1998-07-02 Thorgeir Sigurdsson: (TC304.1837) Documents, in the mail
+12. 1998-07-07 Thorgeir Sigurdsson: (TC304.1854) Database of Latin letters
+13. 1998-08-05 Alain LaBonté : Re: Obtaining ISO standards in Canada
+
+../surfaces/rmail/base64
+ 1. 1998-09-11 Lars Magne Ingebrigtsen: Re: [Various] base64-decode
+ 2. 1998-09-10 Santiago Vila: Re: [Various] base64-decode
+ 3. 1998-09-10 François Pinard: Re: [Various] base64-decode
+ 4. 1998-09-29 Christopher Davis: Re: line endings
+ 5. 1999-12-13 François Pinard: Re: Whitespace in base64 input
+ 6. 1999-12-13 François Pinard: Re: Base64 decoding
+
+../surfaces/rmail/binhex
+ 1. 1996-08-28 Claude Charest: Re: Binhex
+ 2. 1995-04-05 John Gardiner Myers: Re: I Need MIME/BASE64 Decoder for Nintendo
+ 3. 1995-05-18 Chris Newman: Re: Info on MACMIME needed (bis)
+ 4. 1998-11-30 Lars Magne Ingebrigtsen: MIME display: broken multipart; binhex
+ 5. 1998-08-07 Remi St-Onge: pasv
+
+../surfaces/rmail/braille
+ 1. 1994-05-18 Francois Pinard: Braille codes
+
+../surfaces/rmail/control-z
+ 1. 1999-07-29 Per Starback: Re: Ctrl-Z in files
+
+../surfaces/rmail/crypt
+ 1. 1995-07-24 John Gardiner Myers: Re: New base64 option to uuencode in POSIX
+ 2. 1995-08-03 David Eaves: Re: MIME Content-MD5 header
+
+../surfaces/rmail/doc-hexa
+ 1. 1998-10-14 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
+ 2. 1998-10-14 Francois Yergeau: Re: Pour ceux qui ont le temps de lire... Cadr
+ 3. 1998-10-23 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
+ 4. 1998-10-23 François Pinard: Re: Pour ceux qui ont le temps de lire... Cadre
+
+../surfaces/rmail/endlines
+ 1. 1999-10-31 Matt Gushee: Re: A Small dos->UNIX convertor
+
+../surfaces/rmail/graphic
+ 1. 1994-11-16 Francois Pinard: Re: recode 3.4+ and HTML
+ 2. 1994-10-11 mike@vlsivie.tuwien.ac.at: Re: recode
+ 3. 1994-12-02 Lukas Petrlik: recode 3.4
+
+../surfaces/rmail/hlp
+ 1. 1998-10-29 Marc Verreault: Re: [Q]: *.hlp format to HTML
+
+../surfaces/rmail/implied
+ 1. 1998-12-07 François Pinard: Re: Novice user of recode with question
+ 2. 1997-12-09 Milivoj Ivkovic: Re: recode
+
+../surfaces/rmail/keyboards
+ 1. 1994-09-07 Darin Johnson: Re: Unicode & Linux's future (was Re: Acid)
+ 2. 1994-09-07 Andries Brouwer: Re: Unicode & Linux's future (was Re: Acid)
+ 3. 1994-09-07 Richard L. Goerwitz: Re: Unicode & Linux's future (was Re: Acid)
+ 4. 1994-09-08 Andries Brouwer: Re: Unicode & Linux's future (was Re: Acid)
+ 5. ---- -- -- Alain LaBont(e'): Re: list of character code standards
+ 6. ---- -- -- Alain LaBont(e'): Input methods to enter characters of ISO/IEC 1
+ 7. ---- -- -- Alain LaBont(e'): Input methods -- 8859-1-coded version
+ 8. 1994-08-29 ALB@immedia.ca: Universal Input methods
+ 9. 1995-04-19 Gilles Pinard: Divers
+10. 1989-07-21 Francois Pinard: Support du franc,ais sur icule
+
+../surfaces/rmail/rfc934
+ 1. 1994-10-31 David J. MacKenzie: [pinard@iro.umontreal.ca: Re: bug in ansi2kn
+ 2. 1994-10-31 Francois Pinard: Re: [pinard@iro.umontreal.ca: Re: bug in ansi2k
+
+../surfaces/rmail/sgml
+ 1. 1995-04-19 François Pinard: Re: ISO 10646 & recode concept
+
+../surfaces/rmail/shar-docum
+ 1. ....-..-.. lvirden@cas.org: Re: Solution for [Re: shar 4.0 make shar.dvi pr
+ 2. 1994-09-09 gaumondp@ere.umontreal.ca: Comments about shar-4.0
+ 3. 1994-09-11 davidsen@tmr.com: Re: shar 4.0 [was: Re: disk buffering in Linux
+ 4. 1994-09-12 Francois Pinard: Say a word about GNU touch
+ 5. 1994-09-16 djm@va.pubnix.com: comments on shar 4.0 doc
+ 6. 1994-09-10 Mailer-Daemon@ileaf.com: Returned mail: Host unknown
+ 7. 1994-09-03 Francois Pinard: GNU shar 4.0
+ 8. 1994-11-11 Francois Pinard: Re: Release: GNU sharutils 4.1
+ 9. 1994-11-11 Martin Maechler: Re: Release: GNU sharutils 4.1
+10. 1994-11-30 Francois Pinard: Re: Suggestion for Sharutils (feature)
+11. 1994-11-30 Francois Pinard: Re: Suggestion for Sharutils (feature)
+12. 1995-02-11 Francois Pinard: sh, shar, unshar - explications
+13. 1994-11-16 Francois Pinard: Re: sharutils
+14. 1994-11-17 Winston Edmond: Suggested change to shar
+15. 1994-11-17 Francois Pinard: Re: Suggested change to shar
+16. 1995-03-31 François Pinard: Re: v47i048: htmlchek - htmlchek - HTML Error C
+17. 1995-12-11 François Pinard: Re: shar & standard input
+18. 1995-12-12 François Pinard: Re: GNU shar 4.1: ambiguous date format in head
+
+../surfaces/rmail/tranisci
+ 1. 1996-02-16 Alain LaBont:e':: Re: Frappe de caracte`res accentue's
2. 1996-03-22 asiascii@sesame.demon.co.uk (John Clews) (by way of Alain LaBont
3. 1996-08-23 Alain LaBont/e'/: Transliteration, ISO and bullet-proof Internet
4. 1997-12-16 Alain LaBonté - 1: Re: RFC1345 charset
-../rmail/surfaces/uu-bigger-specs
+../surfaces/rmail/uu-bigger-specs
1. 1993-09-05 mathew: Re: uuencode/uudecode
2. 1993-09-07 mathew: Re: GNU uudecode: why no GNU btoa?
3. 1994-03-03 Ian Jackson: uuencode 1.0: Ultrix, use of spaces, no table, not
12. 1993-09-02 David Herron: Re: uuencode/uudecode
13. 1995-02-16 Martin Schulze: Hint: uudecode/uuencode
-../rmail/surfaces/uu-doc
+../surfaces/rmail/uu-doc
1. 1993-09-02 Ian Lance Taylor: DOS uuencode and uudecode
2. 1993-10-13 -----: Re: uuencode
3. 1989-07-17 Allott P: uudecode - permission denied
9. 1994-11-30 Ulrich Drepper: Re: Prerelease: GNU sharutils 4.1.1
10. 1995-07-14 Elizabeth B. Naime: Uuencode/uudecode for PC
-../rmail/surfaces/uu-new-w-option
+../surfaces/rmail/uu-new-w-option
1. 1994-10-29 Michael Shields: New `uudecode -w' option for easy multipart dec
2. 1994-10-29 Francois Pinard: Re: New `uudecode -w' option for easy multipart
3. 1994-10-29 Michael Shields: Re: New `uudecode -w' option for easy multipart
4. 1994-10-29 Michael Shields: New `uudecode -w' option for easy multipart dec
-../rmail/urgent/african
- 1. 1998-08-18 Laurent Bourbeau: Texinfo - EC-FC
- 2. 1998-08-25 Laurent Bourbeau: Recode 3.4h - Bilan BUG de Laurent
- 3. 1998-09-02 Laurent Bourbeau: Recode - Tests 2
-
-../rmail/urgent/cyrillic-866
- 1. 1998-01-06 Roman Czyborra: Re: cyrillic support in recode - patch
- 2. 1997-12-28 François Pinard: Re: cyrillic support in recode - patch
- 3. 1997-12-28 Alexander L. Belikoff: Re: cyrillic support in recode - patch
- 4. 1997-12-28 Alexander L. Belikoff: Re: cyrillic support in recode - patch
-
-../rmail/urgent/cyrillic-878
- 1. 1997-12-28 Alexander L. Belikoff: Re: cyrillic support in recode - patch
-
-../rmail/urgent/cyrillic-gnus
- 1. 1999-02-19 Lars Magne Ingebrigtsen: Re: How to specify charset in message h
- 2. 1999-02-19 Dmitry Yaitskov: Re: How to specify charset in message headers?
- 3. 1999-02-19 Lars Magne Ingebrigtsen: Re: with 0.76, messages in koi8-r are s
- 4. 1999-02-05 Vladimir Volovich: Re: More charset things
- 5. 1999-02-08 Bill White: Re: More charset things
-
-../rmail/urgent/cyrillic-gost
- 1. 1997-12-05 Roman Czyborra: GOST 19768
- 2. 1997-12-05 Roman Czyborra: ECMA-113
- 3. 1997-12-05 Keld J|rn Simonsen: Re: GOST 19768
- 4. 1999-01-04 Keld J|rn Simonsen: Re: Details in your latest charset tables
-
-../rmail/urgent/cyrillic-latin5
- 1. 1997-12-28 François Pinard: Re: cyrillic support in recode - patch
-
-../rmail/urgent/cyrillic-unified
- 1. 1997-12-05 Roman Czyborra: new Ukrainian KOI8 charsets
- 2. 1997-12-05 Keld J|rn Simonsen: Re: ISO-IR-111 Cyrillic wrong in RFC 1345 an
- 3. 1998-06-12 Roman Czyborra: KOI8-U
- 4. 1999-01-11 François Pinard: Re: cyrillic support in recode - patch
-
-../rmail/urgent/cyrillic-windows
- 1. 1997-12-28 François Pinard: Re: cyrillic support in recode - patch
- 2. 1997-12-28 Alexander L. Belikoff: Re: cyrillic support in recode - patch
- 3. 1998-01-31 Alexander L. Belikoff: cyrillic support in recode
-
-../rmail/urgent/cyrillic-zzz
- 1. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
- 2. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
- 3. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
- 4. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
- 5. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
- 6. 1998-06-12 Roman Czyborra: proofreading RFC 1345++
- 7. 1998-06-15 Roman Czyborra: ANNOUNCE: new charset soups (ISO 8859, Cyrillic,
- 8. 1998-09-12 Vladimir Volovich: Re: \201 problem reproduced
- 9. 1998-09-12 Vladimir Volovich: Re: \201 problem reproduced
-10. 1998-03-10 Thorgeir Sigurdsson: (TC304.1525) EN1923 is an adopted 8 bit MES
-11. 1997-12-28 Andries.Brouwer@cwi.nl: Re: cyrillic support in recode - patch
-12. 1998-11-18 Uma Umamaheswaran: Site with info on different character sets et
-13. 1999-03-26 Earl Hood: RFC: Character sets in MHonArc (was private Re: MHonA
-14. 1999-03-27 Andrew S. Howell: Re: RFC: Character sets in MHonArc (was privat
-15. 1999-03-29 Koichi Nakatani: Re: RFC: Character sets in MHonArc (was private
-16. 1999-03-24 Takashi P.KATOH: iso-2022 filter
-17. 1999-03-24 Earl Hood: Re: iso-2022 filter
-18. 1999-03-02 Lukas Petrlik: Re: Prerelease: GNU recode 3.4i
-19. 1999-01-06 Martin Mares: Re: Prerelease: GNU recode 3.4i
-20. 1999-02-18 Alexander L. Belikoff: Cyrillic encodings - a more or less autho
-21. 1999-01-25 Alexander L. Belikoff: Re: cyrillic support in recode - patch
-22. 1999-01-09 Alexander L. Belikoff: Re: cyrillic support in recode - patch
-23. 1999-01-11 François Pinard: Re: cyrillic support in recode - patch
-24. 1999-01-25 Alexander L. Belikoff: Re: cyrillic support in recode - patch
-25. 1998-11-30 Roman Czyborra: finished thesis on Unicode in Unix
-26. 1999-03-02 Lukas Petrlik: Re: Prerelease: GNU recode 3.4i
-27. 1999-01-06 Martin Mares: Re: Prerelease: GNU recode 3.4i
-28. 1999-01-06 Keld J|rn Simonsen: Re: Prerelease: GNU recode 3.4i
-29. 1999-01-05 Martin Mares: Re: Prerelease: GNU recode 3.4i
-30. 1999-01-06 François Pinard: Re: Prerelease: GNU recode 3.4i
-31. 1999-04-13 borka@e5.ijs.si: (TC304.2152) (SC22WG20.2656) Differences betwee
-32. 1999-04-13 Karlsson Kent - keka: (TC304.2153) RE: (SC22WG20.2685) (SC22WG20
-33. 1999-04-15 Konstantin Chuguev: (TC304.2154) (SC22WG20.2686) RE: (SC22WG20.2
-
-../rmail/urgent/doswin
- 1. 1998-03-26 François Pinard: Re: find reco dos executable
- 2. 1998-11-24 Eli Zaretskii: Re: recode for Amiga - 3.4k update
- 3. 1998-11-24 Eli Zaretskii: Re: recode for Amiga - 3.4k update
- 4. 1998-11-24 François Pinard: Re: recode for Amiga - 3.4k update
- 5. 1998-11-25 Eli Zaretskii: configure+dist [was: Re: recode for Amiga - 3.4k
- 6. 1998-11-25 Eli Zaretskii: libtool+shell [was: Re: recode for Amiga - 3.4k u
- 7. 1998-11-25 Eli Zaretskii: Perl [was: Re: recode for Amiga - 3.4k update]
- 8. 1998-11-25 Eli Zaretskii: EOLs [was: Re: recode for Amiga - 3.4k update]
- 9. 1998-11-25 Eli Zaretskii: configure+dist [was: Re: recode for Amiga - 3.4k
-10. 1998-11-25 Eli Zaretskii: Intro [was: Re: recode for Amiga - 3.4k update]
-11. 1998-11-30 Eli Zaretskii: Re: New -Spo option to `recode'
-12. 1999-01-31 Matt Armstrong: Re: Cygwin, make install and .exe
-13. 1999-02-15 Eli Zaretskii: Re: gettext.m4 and absolute file names
-14. 1999-04-10 Robert S. Maier: automake problems DJGPP
-15. 1999-04-10 Alexandre Oliva: Re: automake problems DJGPP
-16. 1999-04-13 Eli Zaretskii: Re: ... and paxutils
-17. 1999-04-12 Eli Zaretskii: Re: Playing with DJGPP again
-18. 1999-04-12 Eli Zaretskii: Re: Playing with DJGPP again
-19. 1999-04-15 François Pinard: recode on DJGPP
-20. 1999-06-01 François Pinard: Re: POT file for recode 3.4r now being uploaded
-
-../rmail/urgent/gettext
- 1. 1999-04-02 Laurent Bourbeau: Recode 3.4q - bug-1
- 2. 1999-04-05 Laurent Bourbeau: Recode 3.4q - Bug 6
- 3. 1999-04-05 Laurent Bourbeau: Recode 3.4q - Bug 7
-
-../rmail/urgent/korean
- 1. 1999-03-11 Alain LaBonté : JUC : Noms de caractères coréens
-
-../admin/abe/RMAIL
- 1. 1991-01-17 Francois Pinard: abe and directories; dabe and Turbo-C
- 2. 1991-01-27 Brad Templeton: Re: abe part numbering
- 3. 1991-02-11 Francois Pinard: Possible bug with b= option
- 4. 1991-02-11 Brad Templeton: Re: Possible bug with b= option
- 5. 1992-07-15 Francois Pinard: Minor problem in dabe.c
- 6. 1994-09-23 Francois Pinard: Re: Possible bug with b= option
- 7. 1994-09-24 brad@alto.clarinet.com: Re: Possible bug with b= option
- 8. 1994-09-24 brad@alto.clarinet.com: Re: Possible bug with b= option
- 9. 1994-09-24 brad@alto.clarinet.com: Re: Possible bug with b= option
-10. 1994-09-24 Francois Pinard: Re: Possible bug with b= option
-11. 1994-09-24 Francois Pinard: Re: Possible bug with b= option
-12. 1994-09-26 brad@alto.clarinet.com: Re: Possible bug with b= option
-
-../admin/abrahamsen/RMAIL
- 1. 1993-03-11 Per Abrahamsen: min-key.el: Keyboard Remapping and Character Set
- 2. 1993-06-02 Per Abrahamsen: Danish, Swedish, German, Russian, and DVORAK Key
-
-../admin/apple/RMAIL
- 1. 1987-06-30 Kevin O'Gorman: Comb
- 2. 1995-05-04 Leonardo Topa: Re: mcvert version 2.16 installed
- 3. 1995-03-10 John Gianni: Re: Application/MAC-BINHEX40
- 4. 1995-03-31 Chris Newman: Re: Looking For BinHex Specifications
- 5. 1995-04-02 Kari E. Hurtta: Re: Looking For BinHex Specifications
- 6. 1995-04-07 Andrew M. Langmead: Re: Looking For BinHex Specifications
- 7. 1995-03-31 bill@slipnet.com: Re: Binhex4.0
- 8. 1995-03-05 Mathieu Dubreuil: Re: Rencontre Jeunes - Nations Unies
- 9. 1995-12-08 DOCUMENSA: DTD Loi
-10. 1997-03-12 François Pinard: Macintosh
-
-../admin/btoa/RMAIL
- 1. 1994-09-20 kb@cs.umb.edu: shar, uuencode, atob
- 2. 1994-09-20 Francois Pinard: Re: shar, uuencode, atob
- 3. 1994-07-29 ericb@lsid.hp.com: Re: GNU shar, -M and you
- 4. 1994-07-28 Francois Pinard: Re: GNU shar, -M and you
- 5. 1992-10-09 Jef Poskanzer: version of atob with factor of 2 speedup
- 6. 1993-09-26 Francois Pinard: GNU encode 1.0 - still
- 7. 1989-12-30 Stefan Parmark: Re: BTOA 5.2
- 8. 1989-12-30 Francois Pinard: BTOA 5.2
- 9. 1989-12-31 Francois Pinard: diffs for btoa 5.2 under MSDOS
-10. 1990-07-18 Francois Pinard: shar blues
-11. 1994-09-20 Francois Pinard: Re: shar, uuencode, atob
-12. 1994-09-24 kb@cs.umb.edu: Re: shar, uuencode, atob
-
-../admin/cdc-tape/RMAIL
- 1. 1995-02-03 Francois Pinard: Re: Cyber tape formats
-
-../admin/charconv/RMAIL
- 1. 1993-07-19 Burkhard Kirste: charconv - convert extended character sets (1/2
-
-../admin/german/RMAIL
- 1. 1994-01-09 Thorbjoern Hansen: Suggestions for `recode'
- 2. 1994-01-11 Francois Pinard: Suggestions for `recode'
- 3. 1994-01-12 Thorbjoern Hansen: Re: Suggestions for `recode'
- 4. 1994-01-12 Francois Pinard: shar: diac.tar.gz
- 5. 1994-01-12 Francois Pinard: Re: Suggestions for `recode'
- 6. 1994-01-09 Thorbjoern Hansen: Suggestions for `recode'
- 7. 1994-01-11 Francois Pinard: Suggestions for `recode'
- 8. 1994-01-12 Thorbjoern Hansen: Re: Suggestions for `recode'
- 9. 1994-01-12 Francois Pinard: Re: Suggestions for `recode'
-10. 1994-09-28 gator@cs.tu-berlin.de: new charset for recode
-11. 1994-09-30 Francois Pinard: Re: new charset for recode
-12. 1994-10-01 gator@cs.tu-berlin.de: Re: new charset for recode
-13. 1994-07-19 haible@ma2s2.mathematik.uni-karlsruhe.de: latex conversions in r
-14. 1994-07-19 Francois Pinard: Re: latex conversions in recode-3.3
-15. 1994-07-19 haible@ma2s2.mathematik.uni-karlsruhe.de: Re: latex conversions
-16. 1993-02-11 Markus Kuhn: Re: transcription iso-8859-1 to us-ascii?
-17. 1994-12-04 Francois Pinard: Re: Prerelease: GNU recode 3.4.1
-18. 1994-12-04 Michael Gschwind: Re: Prerelease: GNU recode 3.4.1
-19. 1994-12-04 Francois Pinard: Re: Prerelease: GNU recode 3.4.1
-20. 1994-12-04 Michael Gschwind: Re: Prerelease: GNU recode 3.4.1
-21. 1995-01-21 Markus Kuhn: Re: Unicode Matters
-22. 1995-05-09 Ulrich Drepper: Re: Volunteering for translations
-23. 1995-05-10 Ulrich Drepper: Re: Volunteering for translations
-24. 1995-05-10 François Pinard: Re: Volunteering for translations
-25. 1995-06-07 Ulrich Drepper: something you might be interested in
-26. 1995-06-06 François Pinard: Re: something you might be interested in
-27. 1995-06-07 Ulrich Drepper: Re: something you might be interested in
-28. 1995-06-07 François Pinard: Re: something you might be interested in
-29. 1995-07-17 Juergen Weigert (Inf4 - hiwi): recode-3.4 extended 'flat' charac
-30. 1995-07-25 François Pinard: Re: Patch for recode-3.4
-31. 1995-08-22 Ulrich Windl: Re: problem with recode 3
-32. 1995-08-22 François Pinard: Re: problem with recode 3
-33. 1995-05-07 François Pinard: Re: Volunteering for translations
-34. 1995-05-08 Ulrich Drepper: Re: Volunteering for translations
-35. 1995-05-08 Martin Husemann: Re: Volunteering for translations
-36. 1995-05-08 François Pinard: Re: Volunteering for translations
-
-../admin/mule/RMAIL
+../admin/reweb/RMAIL
+ 1. 1999-06-24 François Pinard: Re: Please tell me the URL of your home Web pag
+ 2. 1999-06-26 François Pinard: Re: Please tell me the URL of your home Web pag
+
+../asian/martin/RMAIL
+ 1. 1998-12-18 Martin J. Duerst: Re: Prerelease: GNU recode 3.4i
+
+../asian/vietnam/RMAIL
+ 1. 1999-09-22 NGUYEN-DAI Quy: renseignement concernant "recode"
+ 2. 1999-12-13 Nguyen-Dai Quy: Re: renseignement concernant "recode"
+ 3. 1999-12-17 Nguyen-Dai Quy: Re: renseignement concernant "recode"
+ 4. 1999-12-17 Nguyen-Dai Quy: Re: renseignement concernant "recode"
+ 5. 1999-12-17 Nguyen-Dai Quy: Re: renseignement concernant "recode"
+ 6. 1999-12-18 Bruno Haible: Re: suggestion ridicule pour recode
+ 7. 1999-12-18 François Pinard: Re: renseignement concernant "recode"
+ 8. 1999-12-18 François Pinard: Contre-cotices (:-) dans `test.viqr'
+ 9. 1999-12-18 François Pinard: Autres =?iso-8859-1?q?probl=E8mes?= VISCII
+10. 1999-12-18 François Pinard: TCVN
+11. 1999-12-18 François Pinard: VPS
+12. 1999-12-19 Nguyen-Dai Quy: recode & vietnamese
+13. 1999-12-19 François Pinard: Re: recode & vietnamese
+
+../charsets/mule/RMAIL
1. 1993-08-12 Kenichi Handa: The official release of Mule Ver.1.0 (Patch Level
2. 1995-03-30 Gianni Mariani: Re: Unicode/ISO-10646/TRON/MULE/MCS for multilin
3. 1995-03-30 Martin J. Duerst: Re: Unicode/ISO-10646/TRON/MULE/MCS for multil
89. 1998-05-13 Kenichi Handa: Re: dialog boxes
90. 1997-12-06 François Pinard: Re: Small difficulties in Emacs 20
91. 1999-05-05 Alfred J Correira: Re: NT / pgnus draft problem
+92. 1999-06-14 Kenichi Handa: Re: dead key for quail
+93. 1999-07-11 Dave Love: Re: Mule Emacs 20.3 w/enable-multibyte-characters set
+94. 1999-07-12 Michael Welsh Duggan: Re: Mule Emacs 20.3 w/enable-multibyte-cha
+95. 1999-07-14 Dave Love: Re: Mule Emacs 20.3 w/enable-multibyte-characters set
+96. 1999-07-29 Kenichi Handa: shift to a new mailing list server.
+97. 1999-07-29 Mito: Re: FAQ: UNICODE conversion support planned?
+98. 1999-07-31 FUJITA Kazutoshi: Re: shift to a new mailing list server.
+
+../engines/abrahamsen/RMAIL
+ 1. 1993-03-11 Per Abrahamsen: min-key.el: Keyboard Remapping and Character Set
+ 2. 1993-06-02 Per Abrahamsen: Danish, Swedish, German, Russian, and DVORAK Key
+
+../engines/charconv/RMAIL
+ 1. 1993-07-19 Burkhard Kirste: charconv - convert extended character sets (1/2
-../admin/translit/RMAIL
+../engines/iso2asc/RMAIL
+ 1. 1993-02-11 Markus Kuhn: Re: ISO-8859-1 and French
+ 2. 1993-05-20 Markus Kuhn: Portable ISO Latin 1 -> ASCII Converter
+ 3. 1993-02-10 Markus Kuhn: Re: transcription iso-8859-1 to us-ascii?
+ 4. 1993-12-07 Markus Kuhn (CIP 90): Re: transcription iso-8859-1 to us-ascii?
+
+../engines/translit/RMAIL
1. 1993-03-18 Jan Labanowski: Translit --- transliterate foreign alphabets
+ 2. 1999-06-03 Han-Wen Nienhuys: Unidentified subject!
+ 3. 1999-06-03 Sigfrid Lundberg, Lub NetLab: Re: Unidentified subject!
-../admin/wilson/RMAIL
+../engines/wilson/RMAIL
1. 1994-10-27 David E A Wilson: recode-3.3
2. 1994-10-28 David E A Wilson: Re: recode-3.3
3. 1994-10-28 David E A Wilson: charset program
+
+../fallbacks/German/RMAIL
+ 1. 1994-01-09 Thorbjoern Hansen: Suggestions for `recode'
+ 2. 1994-01-11 Francois Pinard: Suggestions for `recode'
+ 3. 1994-01-12 Thorbjoern Hansen: Re: Suggestions for `recode'
+ 4. 1994-01-12 Francois Pinard: shar: diac.tar.gz
+ 5. 1994-01-12 Francois Pinard: Re: Suggestions for `recode'
+ 6. 1994-01-09 Thorbjoern Hansen: Suggestions for `recode'
+ 7. 1994-01-11 Francois Pinard: Suggestions for `recode'
+ 8. 1994-01-12 Thorbjoern Hansen: Re: Suggestions for `recode'
+ 9. 1994-01-12 Francois Pinard: Re: Suggestions for `recode'
+10. 1994-09-28 gator@cs.tu-berlin.de: new charset for recode
+11. 1994-09-30 Francois Pinard: Re: new charset for recode
+12. 1994-10-01 gator@cs.tu-berlin.de: Re: new charset for recode
+13. 1994-07-19 haible@ma2s2.mathematik.uni-karlsruhe.de: latex conversions in r
+14. 1994-07-19 Francois Pinard: Re: latex conversions in recode-3.3
+15. 1994-07-19 haible@ma2s2.mathematik.uni-karlsruhe.de: Re: latex conversions
+16. 1993-02-11 Markus Kuhn: Re: transcription iso-8859-1 to us-ascii?
+17. 1994-12-04 Francois Pinard: Re: Prerelease: GNU recode 3.4.1
+18. 1994-12-04 Michael Gschwind: Re: Prerelease: GNU recode 3.4.1
+19. 1994-12-04 Francois Pinard: Re: Prerelease: GNU recode 3.4.1
+20. 1994-12-04 Michael Gschwind: Re: Prerelease: GNU recode 3.4.1
+21. 1995-01-21 Markus Kuhn: Re: Unicode Matters
+22. 1995-05-09 Ulrich Drepper: Re: Volunteering for translations
+23. 1995-05-10 Ulrich Drepper: Re: Volunteering for translations
+24. 1995-05-10 François Pinard: Re: Volunteering for translations
+25. 1995-06-07 Ulrich Drepper: something you might be interested in
+26. 1995-06-06 François Pinard: Re: something you might be interested in
+27. 1995-06-07 Ulrich Drepper: Re: something you might be interested in
+28. 1995-06-07 François Pinard: Re: something you might be interested in
+29. 1995-07-17 Juergen Weigert (Inf4 - hiwi): recode-3.4 extended 'flat' charac
+30. 1995-07-25 François Pinard: Re: Patch for recode-3.4
+31. 1995-08-22 Ulrich Windl: Re: problem with recode 3
+32. 1995-08-22 François Pinard: Re: problem with recode 3
+33. 1995-05-07 François Pinard: Re: Volunteering for translations
+34. 1995-05-08 Ulrich Drepper: Re: Volunteering for translations
+35. 1995-05-08 Martin Husemann: Re: Volunteering for translations
+36. 1995-05-08 François Pinard: Re: Volunteering for translations
+
+../surfaces/abe/RMAIL
+ 1. 1991-01-17 Francois Pinard: abe and directories; dabe and Turbo-C
+ 2. 1991-01-27 Brad Templeton: Re: abe part numbering
+ 3. 1991-02-11 Francois Pinard: Possible bug with b= option
+ 4. 1991-02-11 Brad Templeton: Re: Possible bug with b= option
+ 5. 1992-07-15 Francois Pinard: Minor problem in dabe.c
+ 6. 1994-09-23 Francois Pinard: Re: Possible bug with b= option
+ 7. 1994-09-24 brad@alto.clarinet.com: Re: Possible bug with b= option
+ 8. 1994-09-24 brad@alto.clarinet.com: Re: Possible bug with b= option
+ 9. 1994-09-24 brad@alto.clarinet.com: Re: Possible bug with b= option
+10. 1994-09-24 Francois Pinard: Re: Possible bug with b= option
+11. 1994-09-24 Francois Pinard: Re: Possible bug with b= option
+12. 1994-09-26 brad@alto.clarinet.com: Re: Possible bug with b= option
+
+../surfaces/apple/RMAIL
+ 1. 1987-06-30 Kevin O'Gorman: Comb
+ 2. 1995-05-04 Leonardo Topa: Re: mcvert version 2.16 installed
+ 3. 1995-03-10 John Gianni: Re: Application/MAC-BINHEX40
+ 4. 1995-03-31 Chris Newman: Re: Looking For BinHex Specifications
+ 5. 1995-04-02 Kari E. Hurtta: Re: Looking For BinHex Specifications
+ 6. 1995-04-07 Andrew M. Langmead: Re: Looking For BinHex Specifications
+ 7. 1995-03-31 bill@slipnet.com: Re: Binhex4.0
+ 8. 1995-03-05 Mathieu Dubreuil: Re: Rencontre Jeunes - Nations Unies
+ 9. 1995-12-08 DOCUMENSA: DTD Loi
+10. 1997-03-12 François Pinard: Macintosh
+11. 1999-08-02 Benjamin Kowarsch: Re: Mac Install
+
+../surfaces/btoa/RMAIL
+ 1. 1994-09-20 kb@cs.umb.edu: shar, uuencode, atob
+ 2. 1994-09-20 Francois Pinard: Re: shar, uuencode, atob
+ 3. 1994-07-29 ericb@lsid.hp.com: Re: GNU shar, -M and you
+ 4. 1994-07-28 Francois Pinard: Re: GNU shar, -M and you
+ 5. 1992-10-09 Jef Poskanzer: version of atob with factor of 2 speedup
+ 6. 1993-09-26 Francois Pinard: GNU encode 1.0 - still
+ 7. 1989-12-30 Stefan Parmark: Re: BTOA 5.2
+ 8. 1989-12-30 Francois Pinard: BTOA 5.2
+ 9. 1989-12-31 Francois Pinard: diffs for btoa 5.2 under MSDOS
+10. 1990-07-18 Francois Pinard: shar blues
+11. 1994-09-20 Francois Pinard: Re: shar, uuencode, atob
+12. 1994-09-24 kb@cs.umb.edu: Re: shar, uuencode, atob
+
+../surfaces/cdc-tape/RMAIL
+ 1. 1995-02-03 Francois Pinard: Re: Cyber tape formats
+
+../charsets/cyrillic/rmail/866
+ 1. 1998-01-06 Roman Czyborra: Re: cyrillic support in recode - patch
+ 2. 1997-12-28 François Pinard: Re: cyrillic support in recode - patch
+ 3. 1997-12-28 Alexander L. Belikoff: Re: cyrillic support in recode - patch
+ 4. 1997-12-28 Alexander L. Belikoff: Re: cyrillic support in recode - patch
+
+../charsets/cyrillic/rmail/878
+ 1. 1997-12-28 Alexander L. Belikoff: Re: cyrillic support in recode - patch
+
+../charsets/cyrillic/rmail/documentation
+ 1. 1999-06-08 Lukas Petrlik: recode 3.5 docs
+
+../charsets/cyrillic/rmail/emacs
+ 1. 1997-08-21 Kenichi Handa: Re: input cyrillic
+ 2. 1997-08-23 Kenichi Handa: Re: Thank you, Re: input cyrillic
+ 3. 1997-08-25 Martin J. Dürst: Re: input cyrillic
+
+../charsets/cyrillic/rmail/gnus
+ 1. 1999-02-19 Lars Magne Ingebrigtsen: Re: How to specify charset in message h
+ 2. 1999-02-19 Dmitry Yaitskov: Re: How to specify charset in message headers?
+ 3. 1999-02-19 Lars Magne Ingebrigtsen: Re: with 0.76, messages in koi8-r are s
+ 4. 1999-02-05 Vladimir Volovich: Re: More charset things
+ 5. 1999-02-08 Bill White: Re: More charset things
+
+../charsets/cyrillic/rmail/gost
+ 1. 1997-12-05 Roman Czyborra: GOST 19768
+ 2. 1997-12-05 Roman Czyborra: ECMA-113
+ 3. 1997-12-05 Keld J|rn Simonsen: Re: GOST 19768
+ 4. 1999-01-04 Keld J|rn Simonsen: Re: Details in your latest charset tables
+
+../charsets/cyrillic/rmail/latex
+ 1. 1998-05-20 Barbara Beeton: Re: Cyrillic by AMS
+ 2. 1998-05-21 Boguslaw Jackowski: re: Cyrillic fonts by AMS
+ 3. 1998-05-21 Barbara Beeton: re: Cyrillic fonts by AMS
+ 4. 1998-05-21 Boguslaw Jackowski: Re: Cyrillic fonts by AMS (hopefully my fina
+ 5. 1998-06-07 Barbara Beeton: Re: Cyrillic fonts with T1 encoding
+ 6. 1998-06-08 taupin: Cyrillic fonts with T1 encoding
+ 7. 1998-06-08 Robin Fairbairns: Re: Cyrillic fonts with T1 encoding
+ 8. 1998-06-08 taupin: About cyrillic fonts.
+ 9. 1998-06-09 taupin: Re: Ligature question
+
+../charsets/cyrillic/rmail/latin5
+ 1. 1997-12-28 François Pinard: Re: cyrillic support in recode - patch
+
+../charsets/cyrillic/rmail/unified
+ 1. 1997-12-05 Roman Czyborra: new Ukrainian KOI8 charsets
+ 2. 1997-12-05 Keld J|rn Simonsen: Re: ISO-IR-111 Cyrillic wrong in RFC 1345 an
+ 3. 1998-06-12 Roman Czyborra: KOI8-U
+ 4. 1999-01-11 François Pinard: Re: cyrillic support in recode - patch
+
+../charsets/cyrillic/rmail/windows
+ 1. 1997-12-28 François Pinard: Re: cyrillic support in recode - patch
+ 2. 1997-12-28 Alexander L. Belikoff: Re: cyrillic support in recode - patch
+ 3. 1998-01-31 Alexander L. Belikoff: cyrillic support in recode
+
+../charsets/cyrillic/rmail/zzz
+ 1. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
+ 2. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
+ 3. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
+ 4. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
+ 5. 1994-11-01 Roman Czyborra: Re: Prerelease: GNU recode 3.3.2
+ 6. 1998-06-12 Roman Czyborra: proofreading RFC 1345++
+ 7. 1998-06-15 Roman Czyborra: ANNOUNCE: new charset soups (ISO 8859, Cyrillic,
+ 8. 1998-09-12 Vladimir Volovich: Re: \201 problem reproduced
+ 9. 1998-09-12 Vladimir Volovich: Re: \201 problem reproduced
+10. 1998-03-10 Thorgeir Sigurdsson: (TC304.1525) EN1923 is an adopted 8 bit MES
+11. 1997-12-28 Andries.Brouwer@cwi.nl: Re: cyrillic support in recode - patch
+12. 1998-11-18 Uma Umamaheswaran: Site with info on different character sets et
+13. 1999-03-26 Earl Hood: RFC: Character sets in MHonArc (was private Re: MHonA
+14. 1999-03-27 Andrew S. Howell: Re: RFC: Character sets in MHonArc (was privat
+15. 1999-03-29 Koichi Nakatani: Re: RFC: Character sets in MHonArc (was private
+16. 1999-03-24 Takashi P.KATOH: iso-2022 filter
+17. 1999-03-24 Earl Hood: Re: iso-2022 filter
+18. 1999-03-02 Lukas Petrlik: Re: Prerelease: GNU recode 3.4i
+19. 1999-01-06 Martin Mares: Re: Prerelease: GNU recode 3.4i
+20. 1999-02-18 Alexander L. Belikoff: Cyrillic encodings - a more or less autho
+21. 1999-01-25 Alexander L. Belikoff: Re: cyrillic support in recode - patch
+22. 1999-01-09 Alexander L. Belikoff: Re: cyrillic support in recode - patch
+23. 1999-01-11 François Pinard: Re: cyrillic support in recode - patch
+24. 1999-01-25 Alexander L. Belikoff: Re: cyrillic support in recode - patch
+25. 1998-11-30 Roman Czyborra: finished thesis on Unicode in Unix
+26. 1999-03-02 Lukas Petrlik: Re: Prerelease: GNU recode 3.4i
+27. 1999-01-06 Martin Mares: Re: Prerelease: GNU recode 3.4i
+28. 1999-01-06 Keld J|rn Simonsen: Re: Prerelease: GNU recode 3.4i
+29. 1999-01-05 Martin Mares: Re: Prerelease: GNU recode 3.4i
+30. 1999-01-06 François Pinard: Re: Prerelease: GNU recode 3.4i
+31. 1999-04-13 borka@e5.ijs.si: (TC304.2152) (SC22WG20.2656) Differences betwee
+32. 1999-04-13 Karlsson Kent - keka: (TC304.2153) RE: (SC22WG20.2685) (SC22WG20
+33. 1999-04-15 Konstantin Chuguev: (TC304.2154) (SC22WG20.2686) RE: (SC22WG20.2
+34. 1996-10-13 Alexander L. Belikoff: Linux Cyrillic HOWTO (part 1/1)
+
+../charsets/ucs/rmail/10646
+ 1. 1996-03-15 Alain LaBont:e':: Impact of ISO/IEC 10646 on POSIX - Draft perso
+ 2. 1996-03-28 Keld J|rn Simonsen: (i18n.298) 10646 amendments available
+ 3. 1996-04-26 Keld J|rn Simonsen: (i18n.325) ISO 10646 character namesand posi
+ 4. 1997-02-04 unicode@Unicode.ORG: Re: Korean m*, what is it?
+ 5. 1999-08-25 Alain LaBonté : ISO 10646 (v.f.) - Annexe K -- Conseils pour le
+
+../charsets/ucs/rmail/byte-order-mark
+ 1. 1999-08-01 Marc Feeley: Unicode BOM
+
+../charsets/ucs/rmail/dns
+ 1. 1999-07-07 Stuart Kwan: RE: skwan-utf8-dns (RE: (Almost final) Agenda for d
+
+../charsets/ucs/rmail/documentation
+ 1. 1994-10-09 Emmanuel Uren: 850 and more, 8859 and more, and more
+ 2. 1996-09-13 Markus G. Kuhn: Unicode Introduction and References
+ 3. 1996-11-24 Erik Naggum: Re: The char type crossing the 8 bit barrier? (Was
+ 4. 1997-05-20 Alain LaBont/e'/: UNICODE et ISO/CEI 10646
+ 5. 1997-10-28 Fran\81çois Pinard: Re: librecode, libc, gettext
+ 6. 1997-10-31 Alain LaBonté - 3: Philosophie de l'internationalisation de bon
+ 7. 1998-01-02 Alain LaBonté - 3: Re: aide!
+ 8. 1998-02-14 Erik Naggum: Re: Is there any alternative to MULE?
+ 9. 1998-02-16 John Clews: (TC304.1487) Script summary: status of ISO/IEC 10646
+10. 1998-03-10 Alain LaBonté : Importance des noms des caractères
+11. 1998-03-10 Alain LaBonté : Noms de caractères -- subtilités
+12. 1998-03-24 Alain LaBonté : Re: Erreurs de nomenclature dans Windows NT4
+13. 1998-05-05 Alain LaBonté : Codage de la langue dans le jeu universel de car
+
+../charsets/ucs/rmail/fontes
+ 1. 1997-10-28 Martin J. Dürst: Re: Mule -> NT
+ 2. 1995-06-05 Michael Everson: (i18n.265) Announcing Everson Mono 10646
+ 3. 1995-12-14 Ulrich Drepper: Unicode mappings
+ 4. 1996-04-30 Yann Dirson: Re: recode: suggestion
+ 5. 1995-12-11 Ulrich Drepper: Re: check successful message
+ 6. 1998-09-29 Roman Czyborra: proposal for a GNU Unicode font
+ 7. 1998-09-30 Jungshik Shin: Re: proposal for a GNU Unicode font
+ 8. 1998-10-04 Primoz Peterlin: Re: proposal for a GNU Unicode font
+ 9. 1998-10-04 Markus Kuhn: Re: proposal for a GNU Unicode font
+10. 1998-10-05 Primoz Peterlin: Re: proposal for a GNU Unicode font
+11. 1998-10-02 Markus Kuhn: Re: proposal for a GNU Unicode font
+12. 1998-10-03 Markus Kuhn: Re: proposal for a GNU Unicode font
+13. 1998-10-06 Jungshik Shin: Re: proposal for a GNU Unicode font
+14. 1998-10-07 Mark Leisher: Re: proposal for a GNU Unicode font
+15. 1998-10-07 Jungshik Shin: Re: proposal for a GNU Unicode font
+16. 1998-10-02 Mark Leisher: Clearly U BDF font update
+17. 1998-10-05 James Matthew Farrow: Font editors...
+18. 1997-11-24 Mark Leisher: Unicode BDF fonts available
+19. 1998-11-24 François Pinard: Re: Free X11 Unicode terminal font available
+20. 1997-06-14 mike@vlsivie.tuwien.ac.at: Finding Fonts for Internationalizatio
+21. 1999-06-04 Martin J. Duerst: Re: UTF-8 table output
+22. 1999-06-03 François Pinard: Re: UTF-8 table output
+23. 1999-07-17 Markus Kuhn: Unicode fonts for X11
+
+../charsets/ucs/rmail/français
+ 1. 1996-05-11 Alain LaBont/e'/: Re: French names for 10646
+ 2. 1996-10-24 Alain LaBont/e'/: Quelques adresses pour les références à mes tr
+ 3. 1998-04-29 Alain LaBonté : Use of the Glyphs associated to the Unicode char
+ 4. 1998-09-17 Alain LaBonté : Character identifiers, names and mnemonicity --
+ 5. 1998-12-17 François Pinard: Tables française pour les noms JUC
+
+../charsets/ucs/rmail/html
+ 1. 1995-12-21 Francois Yergeau: RFC sur l'i18n de HTML
+ 2. 1996-05-30 Alain LaBont/e'/: Internationalisation de HTML
+ 3. 1995-03-29 alb@riq.qc.ca: http://www.echo.lu/other/norm
+ 4. 1994-10-08 Gary Houston: Re: multilingual HTML, SGML documents
+ 5. 1997-04-25 Henry Churchyard: Re: ’ valid HTML or no?
+ 6. 1997-04-30 Henry Churchyard: Re: ’ valid HTML or no?
+ 7. 1997-04-30 Paul Eggert: Re: ’ valid HTML or no?
+ 8. 1997-04-27 Tall Ethnic Person: Re: ’ valid HTML or no?
+ 9. 1997-04-27 Markus Kuhn: Re: ’ valid HTML or no?
+10. 1999-04-09 Pierre Laplante: Re: =?iso-8859-1?Q?param=E8tres?= avec script c
+
+../charsets/ucs/rmail/libutf8
+ 1. 1999-07-30 Jim Meyering: Re: [François Pinard <pinard@iro.umontreal.ca>] Re
+ 2. 1999-07-30 François Pinard: Re: UTF-8
+ 3. 1999-07-30 Bruno Haible: Re: [Fran\81çois Pinard <pinard@iro.umontreal.ca>] R
+ 4. 1999-07-30 Bruno Haible: Re: [=?iso-8859-1?q?Fran=E7ois?= Pinard <pinard@ir
+ 5. 1999-07-30 François Pinard: Re: UTF-8
+ 6. 1999-07-30 Bruno Haible: Re: UTF-8
+ 7. 1999-07-30 François Pinard: Re: UTF-8
+ 8. 1999-08-01 Marc Feeley: Unicode BOM
+ 9. 1999-08-02 François Pinard: Re: UTF-8
+10. 1999-08-02 Bruno Haible: Clarification, UTF-8
+11. 1999-08-02 Bruno Haible: Re: UTF-8, concrete action
+12. 1999-08-02 Bruno Haible: Re: UTF-8, meta discussion
+13. 1999-08-02 Bruno Haible: Re: UTF-8, meta discussion
+14. 1999-08-02 François Pinard: Re: UTF-8, concrete action
+15. 1999-08-02 Bruno Haible: Re: UTF-8, concrete action
+16. 1999-08-02 François Pinard: Re: UTF-8, meta discussion
+17. 1999-08-02 Bruno Haible: Re: UTF-8, meta discussion
+18. 1999-08-02 Bruno Haible: Re: UTF-8, meta discussion
+19. 1999-08-04 François Pinard: Bruno's project
+20. 1999-08-04 Jim Meyering: Re: Bruno's project
+21. 1999-08-04 Jim Meyering: Re: Bruno's project
+22. 1999-08-04 François Pinard: Re: TP-Robot hello-1.3.23.lv.po
+23. 1999-08-04 François Pinard: Re: Bruno's project
+24. 1999-09-07 Bruno Haible: Re: [loic@ceic.com] Unicode: Toward a standard lib
+25. 1999-12-06 ADEMIRNET@aol.com: =?ISO-8859-1?Q?Bulletin=20N=B014=20Ademirnet=
+
+../charsets/ucs/rmail/roman
+ 1. 1998-11-30 Roman Czyborra: finished thesis on Unicode in Unix
+
+../charsets/ucs/rmail/sgml
+ 1. 1997-04-30 Paul Eggert: Re: ’ valid HTML or no?
+ 2. 1994-11-14 Oliver Bonten: Re: Character entity names for ISO-Latin 1
+ 3. 1997-02-05 Bruce Hunter: Re: Mapping Character Entities to Windows Characte
+ 4. 1997-02-05 Markus Kuhn: Unicode Web Test Pages
+ 5. 1997-02-23 Peter Flynn: Re: mapping iso SGML entities to TeX chars?
+ 6. 1997-05-14 Clayton Weaver: catalog entry for ECMA-94
+ 7. 1997-05-14 Markus Kuhn: Re: catalog entry for ECMA-94
+ 8. 1997-05-15 Peter Flynn: Re: catalog entry for ECMA-94
+ 9. 1997-05-15 Peter Flynn: Re: catalog entry for ECMA-94
+10. 1997-06-23 Walther Schubert: Help with FrameMaker+SGML Conversion Table
+11. 1996-03-16 Peter Flynn: Re: TeX to Latin 1 table
+
+../charsets/ucs/rmail/spreading
+ 1. 1996-01-05 François Pinard: Re: 8bit clean perl? (fwd)
+
+../charsets/ucs/rmail/tools-gscript
+ 1. 1999-07-13 Tom Tromey: good news for internationalization
+
+../charsets/ucs/rmail/tools-java-netscape
+ 1. 1998-08-05 Alain LaBont\81é\81 : Re: Unicode Converter
+
+../charsets/ucs/rmail/tools-mule
+ 1. 1999-07-28 =?ISO-2022-JP?B?GyRCNVwyPBsoQiAbJEI+MBsoQjpISU1J?=: Re: FAQ: UNI
+
+../charsets/ucs/rmail/tools-recode
+ 1. 1995-04-20 Markus Kuhn (CIP 90): ISO 10646 & recode concept
+ 2. 1997-08-01 Martin J. Duerst: Re: librecode, libc, gettext
+ 3. 1997-11-25 Markus Kuhn: Re: ISO 10646 & recode concept
+
+../charsets/ucs/rmail/tools-ssam-ure
+ 1. 1997-11-22 François Pinard: Re: unicode and gnu?
+
+../charsets/ucs/rmail/tools-tcs
+ 1. 1993-02-09 andrew@research.att.com: (none)
+ 2. 1993-02-14 Francois Pinard: tcs, recode
+ 3. 1993-02-20 Francois Pinard: Legaleese
+ 4. 1993-12-11 Francois Pinard: GNU recode 3.2.9
+ 5. 1993-12-12 Per Abrahamsen: Re: GNU recode 3.2.9
+ 6. 1999-03-30 Andreas Schwab: Fix for AtariST encoding
+
+../charsets/ucs/rmail/tools-ucs
+ 1. 1993-08-26 Hermann Hueni: Re: WANTED: recode extension to ROMAN8 (HP) char
+
+../charsets/ucs/rmail/unicode
+ 1. 1994-10-02 Andries.Brouwer%cwi.nl@Lightning.McRCIM.McGill.EDU: Re: recode
+ 2. 1994-12-21 David Goldsmith: Unicode Web Page Now Available!
+ 3. 1996-03-11 Hart, Edwin F.: Unicode* Version 2.0 and new members of
+ 4. 1996-06-10 by way of everson@indigo.ie (Michael Everson): (i18n.331) "News"
+ 5. 1996-08-19 François Pinard: (none)
+ 6. 1996-09-30 Markus G. Kuhn: Unicode 2.0 available now!!!
+ 7. 1996-10-06 Alain LaBont/e'/: Différences entre UNICODE et le JUC et implant
+ 8. 1996-10-07 unicode@Unicode.ORG: UNICODE, SGML and HEBREW
+ 9. 1996-10-15 unicode@Unicode.ORG: How to order Version 2.0
+10. 1996-11-22 news@Unicode.ORG: Web Update
+11. 1996-11-28 unicode@Unicode.ORG: Re: HTML - i18n / NCR & charsets
+12. 1997-01-16 unicode@Unicode.ORG: Re: unicode <-> hex converter
+13. 1997-11-26 Andreas Dietrich: Re: Cyrillic cp1251 in recode
+14. 1998-09-10 Gisle Aas: Re: "Coding system"? Eh?
+15. 1998-09-11 François Pinard: Re: "Coding system"? Eh?
+16. 1998-11-09 Kenneth Whistler: (TC304.2066) FW: (TC304.2065) PT Guide on Char
+17. 1999-10-13 François Pinard: Re: Making message/rfc822 boundaries visible
+18. 1999-09-15 François Pinard: Projet de Loic
+19. 1999-09-15 François Pinard: Message de Loic
+20. 1999-09-15 François Pinard: =?iso-8859-1?q?R=E9ponse_=E0?= Loic
+21. 1999-09-15 François Pinard: Autre =?iso-8859-1?q?r=E9ponse?=
+22. 1999-09-15 François Pinard: =?iso-8859-1?q?Re-r=E9ponse?= de =?iso-8859-1?q
+23. 1999-09-08 loic@ceic.com: [hshih@us.ibm.com: [sw-i18n-l10n] Re: Unicode: To
+24. 1999-09-07 Bruno Haible: Re: [loic@ceic.com] Unicode: Toward a standard lib
+25. 1999-09-07 loic@ceic.com: Unicode: Toward a standard library
+26. 1999-09-07 loic@ceic.com: Latest regex implementation
+27. 1999-09-10 Henry Spencer: Re: Latest regex implementation
+28. 1999-09-06 loic@ceic.com: recode-3.5 & libunicode
+29. 1999-09-06 François Pinard: Re: recode-3.5 & libunicode
+30. 1999-09-07 loic@ceic.com: Re: recode-3.5 & libunicode
+31. 1999-08-18 Markus Kuhn: Normalization Form KC for Linux
+32. 1999-08-18 Mark H. David: Re: Normalization Form KC for Linux
+33. 1999-08-18 Mark Davis: Re: Normalization Form KC for Linux
+
+../charsets/ucs/rmail/utf-16
+ 1. 1998-01-15 Alain LaBonté : ISO/CEI 10646 et UNICODE : un peu de vulgarisati
+ 2. 1998-09-30 Roman Czyborra: Re: UTF16 <=> Reuters format?
+ 3. ---- -- -- C.Douglas O'Brien [SMTP:dobrien@idon.com]: RE: Necessity of a be
+
+../charsets/ucs/rmail/utf-32
+ 1. 1999-04-07 Hart, Edwin F.: RE: UTF-32
+
+../charsets/ucs/rmail/utf-7
+ 1. 1998-09-11 François Pinard: Re: "Coding system"? Eh?
+
+../charsets/ucs/rmail/utf-8
+ 1. 1994-05-05 Martin J. Duerst: Re: What is status of internationalization of
+ 2. 1995-09-19 François Pinard: Re: Emacs C-q NNN
+ 3. 1996-03-27 Francois Yergeau: UTF-8 I-D submitted
+ 4. 1996-05-11 Alain LaBont/e'/: Équivalences UTF-8 - Impact d'UTF-8, repli d'U
+ 5. 1997-01-14 Alistair Crooks: ssam-1.4 and ure-2.5
+ 6. 1997-10-28 Martin J. Dürst: Re: A couple of bugs in Gnus-mule : summary buf
+ 7. 1997-11-22 François Pinard: Re: Movement for having Internet addresses usin
+ 8. 1997-12-10 Francois Yergeau: Re: Movement for having Internet addresses usi
+ 9. 1998-03-02 Alain LaBonté : Re: origine de ces nouveaux «é», è, à ...?
+10. 1998-10-29 Markus Kuhn: Free X11 Unicode terminal font available
+11. 1998-11-02 Paul Eggert: Re: UTF-8 in gas
+12. 1998-11-02 Paul Eggert: Re: UTF-8 in gas
+13. 1998-11-04 Paul Eggert: Re: UTF-8 in gas
+14. 1998-11-27 Alain LaBonté : Qu'est-ce que l'ASCII (bis) et courriel de l'ave
+15. 1998-12-02 Richard Coleman: Re: Info on Internationalization
+16. 1998-12-03 Shenghuo ZHU: Re: Info on Internationalization
+17. 1998-12-06 François Pinard: Re: Info on Internationalization
+18. 1999-02-08 François Pinard: Re: More charset things
+19. 1999-02-08 François Pinard: Re: More charset things
+20. 1999-02-09 Lars Magne Ingebrigtsen: Re: More charset things
+21. 1999-02-09 François Pinard: Re: More charset things
+22. 1999-02-09 Steinar Bang: Re: More charset things
+23. 1999-02-14 Steinar Bang: UTF-8 (Was: More charset things)
+
+../charsets/ucs/rmail/utf-mnemonics
+ 1. 1998-07-18 Markus Kuhn: (TC304.1872) German reaction to Enquiry among membe
+
+../charsets/ucs/rmail/voir-web
+ 1. 1996-10-28 unicode@Unicode.ORG: Repertoires of European Letters: Draft Four
+ 2. 1997-01-09 Michael Everson: (none)
+ 3. 1999-02-15 umavs@ca.ibm.com: FYI: Draft Irish comments on JTC1 N5698
+
+../charsets/ucs/rmail/xterm
+ 1. 1995-11-22 Gary Capell: Unicode/UTF text editor: wily 0.9.8 (beta)
+ 2. 1996-06-07 Arnold D. Robbins: Re: terminal emulator recommendation?
+ 3. 1996-07-09 Marc Feeley: 9term
+ 4. 1996-07-25 Marc Feeley: 9term
+ 5. 1999-06-09 Markus Kuhn: Xterm now has UTF-8 support
+ 6. 1998-11-22 Markus Kuhn: Re: Free X11 Unicode terminal font available
+ 7. 1998-11-25 Markus Kuhn: Re: Free X11 Unicode terminal font available
+ 8. 1998-11-22 Markus Kuhn: Re: Free X11 Unicode terminal font available
+ 9. 1998-11-25 Markus Kuhn: Re: Free X11 Unicode terminal font available
+1999-12-19 François Pinard <pinard@iro.umontreal.ca>
+
+ * Makefile.am (BABYL): Adjusted.
+
+1999-12-14 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * configure.in: Replace strtol and strtoul only when missing.
+ Reported by Tom Hageman.
+
+1999-11-27 François Pinard <pinard@iro.umontreal.ca>
+
+ * configure.in (ALL_LINGUAS): Add it.
+
+1999-06-22 François Pinard <pinard@iro.umontreal.ca>
+
+ * configure.in (ALL_LINGUAS): Add el.
+
+1999-06-15 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * configure.in: Version 3.5a.
+\f
1999-05-31 François Pinard <pinard@iro.umontreal.ca>
* configure.in: Version 3.5.
AUTOMAKE_OPTIONS = gnits
ACLOCAL_AMFLAGS = -I m4
-BABYL = ../rmail/* ../rmail/*/* ../admin/*/RMAIL
+BABYL = ../rmail/* ../*/rmail/* ../*/*/RMAIL ../*/*/rmail/*
EXTRA_DIST = rebox.el COPYING-LIB
-SUBDIRS = m4 doc lib intl src po tests contrib
+SUBDIRS = m4 doc lib i18n src tests contrib
+
+POTFILES = src/debug.c src/main.c src/names.c src/outer.c src/recode.c \
+src/request.c src/strip-data.c src/task.c
+
+all-local: $(srcdir)/stamp-pot
+
+$(srcdir)/stamp-pot: $(POTFILES)
+ @echo "$(POTFILES)" > $@
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_MOFILES = @ALL_MOFILES@
+ALL_POFILES = @ALL_POFILES@
AS = @AS@
AT_TESTPATH = @AT_TESTPATH@
-AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
-LD = @LD@
LEX = @LEX@
+LIBOBJS = @LIBOBJS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
+MOFILES = @MOFILES@
MSGFMT = @MSGFMT@
-NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
AUTOMAKE_OPTIONS = gnits
ACLOCAL_AMFLAGS = -I m4
-BABYL = ../rmail/* ../rmail/*/* ../admin/*/RMAIL
+BABYL = ../rmail/* ../*/rmail/* ../*/*/RMAIL ../*/*/rmail/*
EXTRA_DIST = rebox.el COPYING-LIB
-SUBDIRS = m4 doc lib intl src po tests contrib
+SUBDIRS = m4 doc lib i18n src tests contrib
+
+POTFILES = src/debug.c src/main.c src/names.c src/outer.c src/recode.c src/request.c src/strip-data.c src/task.c
+
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS BACKLOG COPYING \
-ChangeLog INSTALL Makefile.am Makefile.in NEWS THANKS TODO acconfig.h \
-aclocal.m4 config.guess config.h.in config.sub configure configure.in \
-install-sh ltconfig ltmain.sh missing mkinstalldirs
+ChangeLog INSTALL Makefile.am Makefile.in NEWS README-alpha THANKS TODO \
+acconfig.h acinclude.m4 aclocal.m4 config.guess config.h.in config.sub \
+configure configure.in install-sh ltconfig ltmain.sh missing \
+mkinstalldirs
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-$(ACLOCAL_M4): configure.in m4/atconfig.m4 m4/malloc.m4 \
- m4/microsoft.m4 m4/nls.m4 m4/realloc.m4
+$(ACLOCAL_M4): configure.in acinclude.m4 m4/atconfig.m4 m4/gettext.m4 \
+ m4/malloc.m4 m4/microsoft.m4 m4/realloc.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
- && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
+ && ../configure --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
install: install-recursive
uninstall-am:
uninstall: uninstall-recursive
-all-am: Makefile config.h
+all-am: Makefile config.h all-local
all-redirect: all-recursive-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
install-exec-am install-exec install-data-am install-data install-am \
-install uninstall-am uninstall all-redirect all-am all installdirs-am \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+install uninstall-am uninstall all-local all-redirect all-am all \
+installdirs-am installdirs mostlyclean-generic distclean-generic \
+clean-generic maintainer-clean-generic clean mostlyclean distclean \
+maintainer-clean
+
+
+all-local: $(srcdir)/stamp-pot
+$(srcdir)/stamp-pot: $(POTFILES)
+ @echo "$(POTFILES)" > $@
# 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.
Free recode NEWS - User visible changes. -*- outline -*- (allout)
Copyright © 1993, 1994, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+* Version 3.5a - François Pinard, 1999-05.
+
+.* The Texinfo manual has been indexed, thanks to Eli.
+.* Program messages are also available in Greek and Italian.
+.* Vietnamese charsets are supported, but still mostly untested.
+
* Version 3.5 - François Pinard, 1999-05.
.* Incompatible changes
* README file for `recode' allout -*- outline -*-
- Here is version 3.5 for the Free `recode' program and library. Glance
+ Here is version 3.5a for the Free `recode' program and 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 canonical distribution point for this version is either:
- http://www.iro.umontreal.ca/contrib/recode/recode-3.5.tar.gz
- ftp://ftp.iro.umontreal.ca/pub/recode/recode-3.5.tar.gz
+ http://www.iro.umontreal.ca/contrib/recode/recode-3.5a.tar.gz
+ ftp://ftp.iro.umontreal.ca/pub/recode/recode-3.5a.tar.gz
yet the second URL (the FTP one) might disappear one day. GNU mirrors
usually hold a copy of non-pretest releases, the canonical distribution
point for the last such release is:
- ftp://ftp.gnu.org/pub/gnu/recode-3.4.tar.gz
+ ftp://ftp.gnu.org/pub/gnu/recode/recode-3.5.tar.gz
.* Introduction
------------
autoconf ftp://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.13.tar.gz
automake ftp://sourceware.cygnus.com/pub/automake/automake-1.4.tar.gz
- flex ftp://ftp.gnu.org/pub/gnu/flex-2.5.2.tar.gz
- gawk ftp://ftp.gnu.org/pub/gnu/gawk-3.0.3.tar.gz
+ flex ftp://ftp.gnu.org/pub/gnu/flex/flex-2.5.4a.tar.gz
gettext ftp://ftp.cygnus.com/pub/home/drepper/gettext-0.10.35.tar.gz
- help2man http://www.ozemail.com.au/~bod/help2man-1.008.tar.gz
- libtool ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.3.2.tar.gz
- m4 ftp://ftp.seindal.dk/pub/rene/gnu/m4-1.4l.tar.gz
- perl ftp://ftp.gnu.org/pub/gnu/perl-5.003.tar.gz
- tar ftp://ftp.gnu.org/pub/gnu/tar-1.12.tar.gz
+ help2man http://www.ozemail.com.au/~bod/help2man-1.019.tar.gz
+ libtool http://www.oranda.demon.co.uk/dist/libtool-1.3.4.tar.gz
+ m4 ftp://ftp.seindal.dk/pub/rene/gnu/m4-1.4n.tar.gz
+ perl ftp://ftp.gnu.org/pub/gnu/perl/perl-5.005.03.tar.gz
+ python ftp://ftp.python.org/pub/python/src/py152.tgz
+ tar ftp://ftp.gnu.org/pub/gnu/tar/tar-1.12.tar.gz
Make sure GNU `m4' is fully installed before you start installing
Autoconf. Have Perl installed before Automake and `help2man'.
- `mawk', GNU `awk' or `nawk', and also Flex 2.5 or better, are needed
- for remaking `merged.c', after you modify or add an `.l' source file.
+ Python 1.5 and Flex 2.5, or better, are needed for remaking `merged.c',
+ after you modify or add an `.l' source file.
. + Mailing lists and collaboration
--- /dev/null
+A new pretest for the `recode' program and library is now available as:
+
+ http://www.iro.umontreal.ca/contrib/recode/recode-3.5a.tar.gz
+
+This is beta status software. You are invited to use the mailing list
+mailto:recode-forum@iro.umontreal.ca, but you could also write to me either
+at mailto:recode-bugs@iro.umontreal.ca or mailto:pinard@iro.umontreal.ca.
+
+Most pretesters may skip this pretest, which is more a snapshot to help
+communication with some collaborators on specific matters. There will
+be other pretests before 3.6 goes out. A few reported bugs related to
+portability have been addressed. In this snapshot, many matters are still
+pending. I usually send a letter to a submitter once his/her report has
+been acted upon, you know if I replied to yours! :-)
+
+This pretest contains many changes in the installation engineering, first
+by using newer Autoconf, Automake, Libtool, Help2man, and such things,
+but also by using an experimental Makefile scheme for `gettext' matters.
+A few internal Perl or awk scripts have been rewritten into Python.
+
+Bugs have been corrected, and especially the following ones:
+- HTML with `-d' was spuriously repeating part of the input into the output.
+- Base64 decoding was uselessly requiring `-f' to complete, in many cases.
+- The validation suite should now work in DJGPP/DOSWIN environments.
Akim Demaille demaille@inf.enst.fr
Alain Labonté alb@riq.qc.ca
Alain Magloire alainm@macs.ee.mcgill.ca
-Alexander L. Belikoff abel@bfr.co.il
+Alan J. Flavell flavell@a5.ph.gla.ac.uk
+Alexander L. Belikoff abel@vallinor4.com
+ http://www.vallinor4.com
+Alexandre Oliva oliva@dcc.unicamp.br
+ http://www.dcc.unicamp.br/~oliva
Andreas Dietrich quasi@mathematik.uni-marburg.de
+Andreas Frick afr@aifb.uni-karlsruhe.de
Andreas Mueller afm@othello.ch
-Andreas Schwab schwab@issan.informatik.uni-dortmund.de
+ http://www.othello.ch
+Andreas Schwab schwab@suse.de
Andries Brouwer Andries.Brouwer@cwi.nl
Arnaldo Mandel am@ime.usp.br
-Bastian Schlueter buzz@cs.tu-berlin.de
+Bastian Schlueter buzz@gmx.de
+ http://home.pages.de/~buzz
Bernt Guldbrandtsen bg@rs580.sh.dk
Bert Schweitzer b.schweitzer@tu-bs.de
-Branimir Dolicki bdolicki@tel.hr
+Branimir Dolicki
+Brendan O'Dea bod@compusol.com.au
+ http://www.ozemail.com.au/~bod/
+Bruno Haible haible@ilog.fr
+ http://clisp.cons.org/~haible/
Christian Limpach Christian.Limpach@nice.ch
-Christian Recktenwald chris@janus.citecs.de
-Christian Rolland Christian.Rolland@irisa.fr
+ http://www.nice.ch/~chris/
+Christian Recktenwald chris@citecs.de
+ http://www.citecs.de/
+Christian Rolland
Claude Goutier goutier@jsp.umontreal.ca
-Colin Plumb colin@nyx10.cs.du.edu
+Colin Plumb
Daniel Quinlan quinlan@best.com
Daniel Taupin taupin@lps.u-psud.fr
-David E. A. Wilson david@cs.uow.edu.au
-David Kastrup dak@pool.informatik.rwth-aachen.de
+David E. A. Wilson david_wilson@uow.edu.au
+ http://www.uow.edu.au/~david
+David Kastrup
David Lebel lebel@iro.umontreal.ca
-David Mentre David.Mentre@enst-bretagne.fr
-David van Leeuwen david@gandalf.tm.tno.nl
+David Mentre
+David van Leeuwen
Detlev Droege droege@informatik.uni-koblenz.de
-Dominique Quatravaux quatrava@clipper.ens.fr
+Dominique Quatravaux Dominique.Quatravaux@quatramaran.ens.fr
+ http://www.piren.epita.fr/~dom
Dominique Schmit dschmit@tabarly.saclay.cea.fr
Duane Ellis duane@franklin.com
+ http://www.franklin.com
Eli Zaretskii eliz@is.elta.co.il
-Eric Backus ericb@lsid.hp.com
-Erick Branderhorst branderh@iaehv.nl
-Erwan Mas emas@bondy.orstom.fr
-Farzad Farid farzy@publicis.fr
+Eric Backus eric_backus@hp.com
+ http://www.wolfenet.com/~ericjb
+Erick Branderhorst Erick.Branderhorst@asml.nl
+Erwan Mas erwanmas@chez.com
+ http://www.chez.com/erwanmas/
+Farzad Farid
Florian Oelmaier 100265.2501@compuserve.com
François Pinard pinard@iro.umontreal.ca
-François Robitaille f_robita@crim.ca
+ http://www.iro.umontreal.ca/~pinard
+François Robitaille
François Yergeau yergeau@alis.com
+ http://www.alis.com/~yergeau/
Françoise Audebrand audebran@ere.umontreal.ca
-Frederic Albrecht fred@calvacom.fr
+Frederic Albrecht
Frère Roy roy@taize.fr
-Gabriel P. Silva gabriel@rio.cos.ufrj.br
-Ghislain Plamondon gplamon@edupac.qc.ca
+ http://www.taize.fr
+Gabriel P. Silva gpsilva@geocities.com
+ http://www.nce.ufrj.br/~gabriel
+Ghislain Plamondon
Georg Haefele haefele@atlas.gis.univie.ac.at
-Greg McGary gkm@cstone.net
+Greg McGary
Guy Lapalme lapalme@iro.umontreal.ca
+ http://www.iro.umontreal.ca/~lapalme
Harald Falkenberg harald.falkenberg@desy.de
Harald Koenig koenig@tat.physik.uni-tuebingen.de
Hermann Hueni hueni@iam.unibe.ch
-Hennus Bergman hennus@sky.ow.nl
+Hennus Bergman
Hilmar Schlegel hs@semic.ag-berlin.mpg.de
+Hrvoje Niksic hniksic@srce.hr
Jacques Madelaine jacques@info.unicaen.fr
-Jacques Richer richer@cerca.umontreal.ca
+ http://www.info.unicaen.r/~jacques
+Jacques Richer Jacques.Richer@CERCA.UMontreal.CA
+ http://www.CERCA.UMontreal.CA/~richer
Jan Djarv jan.djarv@mbox200.swipnet.se
Jean-Claude Nadeau nadeau@jsp.umontreal.ca
Jens Quade jens@ronja.dinoco.de
Jim Meyering meyering@na-net.ornl.gov
-Joelle Stemp stemp@ere.umontreal.ca
-John van Krieken john@atcmp.nl
+Joelle Stemp
+John van Krieken John.van.Krieken@ATComputing.nl
+ http://www.ATComputing.nl/images/pasfotos/john.jpg
Jörg Höhle Joerg.Hoehle@gmd.de
+ http://fit.gmd.de/~hoehle/
Jose Joao Almeida jj@di.uminho.pt
+ http://www.di.uminho.pt/~jj
Julio Sanchez jsanchez@gmv.es
Juliusz Chroboczek jch@clipper.ens.fr
Juergen Zeller zet@rupert.franken.de
-Kai Uwe Rommel rommel@ars.muc.de
+Kai Uwe Rommel
Karl Berry karl@cs.umb.edu
+ http://www.cs.umb.edu/~karl/
Keld Jørn Simonsen keld@dkuug.dk
Kester Habermann kester@unix-ag.uni-kl.de
-Kevin Stuckless kevins@rc.gc.ca
+ http://www.unix-ag.uni-kl.de/~kester/
+Kevin Stuckless kevins@stuck.warped.com
+ http://stuck.warped.com/~kevins
+Kristian K\e.A\8eöhntopp kk@netuse.de
Laurent Bourbeau bourbeau@progiciels-bpi.ca
Larry W. Virden lvirden@cas.org
+ http://purl.org/net/lvirden/
Liisa R{ih{ lr@cs.uta.fi
-Loic Dachary loic@design.axis.fr
-Lukas Petrlik luki@scylla.zcu.cz
+Loic Dachary
+Lukas Petrlik
Mac Pigman gwp@dido.caltech.edu
-Marc Gingold gingold@amoco.saclay.cea.fr
+Marc Gingold gingold@spht.saclay.cea.fr
+ http:////www-spht.cea.fr/doc.html
Marc Shapiro shapiro@prof.inria.fr
-Marc Verreault vero@iro.umontreal.ca
+Marc Verreault
Mario Gay mgay@ti-edu.ch
-Markus Kuhn mskuhn@faui01.informatik.uni-erlangen.de
-Martin J. Dürst mduerst@ifi.unizh.ch
+Markus Kuhn Markus.Kuhn@cl.cam.ac.uk
+ http://www.cl.cam.ac.uk/~mgk25/
+Martin J. Dürst duerst@w3.org
+ http://www.w3.org/People/D%C3%BCrst
Martin Maechler maechler@stat.math.ethz.ch
Martin Mares mj@ucw.cz
+ http://atrey.karlin.mff.cuni.cz/~mj/
Michael Gschwind mike@vlsivie.tuwien.ac.at
-Michael L. Dowling mike@mo.math.nat.tu-bs.de
+Michael L. Dowling M.Dowling@tu-bs.de
+ http://www.mathematik.tu-bs.de
Michael Schmidt mschmidt@koblenz.fh-rpl.de
-Michael Shields shields@tembel.org
-Mikko Silvonen Mikko.Silvonen@helsinki.fi
-Nathanael Makarevitch Nathanael.MAKAREVITCH@ifp.fr
+Michael Shields shields@msrl.com
+ http://www.msrl.com/
+Mikko Silvonen silvonen@iki.fi
+ http://www.iki.fi/silvonen/
+Nathanael Makarevitch
Nathaniel Borenstein nsb@aa.fv.com
-Nicolas Anquetil anquetil@iro.umontreal.ca
-Nicolas Thiery nthiery@clipper.ens.fr
+Neal McBurnett http://bcn.boulder.co.us/~neal/
+Nguy\8eên-\8eÐai Qu\8eý daiquy.nguyen@ulg.ac.be
+Nicolas Anquetil
+Nicolas Thiery Nicolas.Thiery@jonas.univ-lyon1.fr
+ http://www.lmd.univ-lyon1.fr/home/nthiery/
Niels Kr. Bech Jensen nkbj@image.dk
-Olivier Tharan tharan@galaxie.int-evry.fr
+ http://www.image.dk/~nkbj/
+Olivier Tharan olive@laria.u-picardie.fr
+ http://www.laria.u-picardie.fr/~olive/
+Pawel Krawczyk kravietz@ceti.pl
+ http://ceti.pl/~kravietz/
Per Andersson perand@stacken.kth.se
-Per Steinar Iversen PerSteinar.Iversen@fi.uib.no
+Per Starback starback@ling.uu.se
+ http://stp.ling.uu.se/~starback/me.html
+Per Steinar Iversen
+Peter Turcan peter.turcan@minerva-is.sk
Phyllis Frankl phyllis@morph.poly.edu
+ http://ebbets.poly.edu/~pfrankl
Pierre Gaumond gaumondp@ere.umontreal.ca
Pierre Girard pierreg@crt.umontreal.ca
Pierre Mathieu mathieu@geod.emr.ca
Povl H. Pedersen pope@netguide.dk
-Primo\e.B\8e¾ Peterlin peterlin@biofiz.mf.uni-lj.si
-Rejean Payette rpayette@edupac.qc.ca
+Primo\e.B\8e¾ Peterlin primoz.peterlin@biofiz.mf.uni-lj.si
+ http://sizif.mf.uni-lj.si/~peterlin/
+Rejean Payette rejean.payette@rtsq.qc.ca
Ricard Torres torres@upf.es
Richard Plasun plasun@iue.tuwien.ac.at
Richard Stallman rms@gnu.org
Robert Joop rj@rainbow.in-berlin.de
Roman Czyborra czyborra@cs.tu-berlin.de
Ronald C.F. Antony rcfa@cubiculum.com
+ http://www.cubiculum.com/~rcfa
Santiago Vila Doncel sanvila@unex.es
Saverio Pangoli saverio@mystere.sci.sns.it
-Sebastian Huebner cyco@lili.uni-bielefeld.de
+Sebastian Huebner cyco@baud.de
+ http://www.baud.de/cyco/
+Scott Schwartz schwartz@bio.cse.psu.edu
Slaven Rezic eserte@cs.tu-berlin.de
+ http://user.cs.tu-berlin.de/~eserte
Stefan Albertz Stefan.Albertz@rus.uni-stuttgart.de
-Stefan Haubenthal wwwsth@sx1.hrz.uni-dortmund.de
+Stefan Haubenthal haubi@geocities.com
+ http://home.pages.de/~haubi
Steinar Bang sb@metis.no
Stephane Berube berube@iro.umontreal.ca
Sumit Bose bose@physik.tu-berlin.de
Thomas Gebhardt gebhardt@hrz.uni-marburg.de
-Thomas M. Ott Labalutsch@aol.com
-Thomas Seeling Thomas.Seeling@math.uni-giessen.de
+ http://www.uni-marburg.de/hrz/mitarbeiter/gebhardt.html
+Thomas M. Ott
+Thomas Seeling
+Tom Hageman tom@basil.icce.rug.nl
Tom Tromey tromey@cygnus.com
+ http://cafe.colorado.edu/~tromey/
Ulrich Drepper drepper@gnu.org
Ulrich Windl Ulrich.Windl@rz.uni-regensburg.de
+ http://www.uni-regensburg.de/Einrichtungen/Rechenzentrum/Orientierung/Mitarbeiter/windl.html
Vern Paxson vern@ee.lbl.gov
-Vitor Duarte vad@fct.unl.pt
+Vitor Duarte vad@di.fct.unl.pt
Walter M\e.A\8eüller walt@pi4.informatik.uni-mannheim.de
-Wiel Seuskens wseuskens@siteways.nl
+Wiel Seuskens wiel@xs4all.nl
+ http://www.xs4all.nl/~wiel/
Wilhelm Zadrapa wfz@aon.at
William Bader wbader@scarecrow.csee.lehigh.edu
Wolfgang Boerner Wolfgang.Boerner@rz.uni-regensburg.de
Wolfgang Wander wwc@hermes.desy.de
-Yves Arrouye Yves.Arrouye@imag.fr
+Yves Arrouye
Some TODO items are implicit from received email. See file BACKLOG.
Significant contributions require written assignments and disclaimers.
-.* Notes particulières
+.* Before next official release
-. + Nouvelles tables RFC 1345
-. + Révision ORA
+. + Remove TeX edition warnings, rephrase whatever required.
+. + Complete inter-node and menu references, as necessary.
+
+.* Particular notes
+
+. + Autoconf and DOSWIN
+. + New RFC 1345 tables, still many diagnostics
+. + Check notes from ORA
. @ ~/libit/rmail/m4
. @ ~/libit/rmail/gettext
. + Take note that ->RFC1345 recodings are non reversible.
.* Notes about MSDOS port
-. + Un touch stamp-h a été nécessaire.
-. + @PRODUCT@ et @VERSION@ n'ont pas été substitués.
-. + Remplacer PRODUCT par PACKAGE dans config_h.*.
-. + On doit avoir -DHAVE_CONFIG_H=1 (le =1 est requis).
+. + 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 et LOCALE.OBJ n'étaient pas compilés.
-. + La règle pour compiler LIBINTL.OBJ était absente.
-. + readme.tcc doit devenir README.DOS en cours de route.
+. + LIBINTL.OBJ and LOCALE.OBJ were not compiled.
+. + Rule to compile LIBINTL.OBJ was missing.
+. + readme.tcc should become README.DOS as things go.
/* Special definitions for GNU recode, processed by autoheader.
- Copyright © 1993, 1998 Free Software Foundation, Inc.
+ Copyright © 1993, 1998, 1999 Free Software Foundation, Inc.
François Pinard <pinard@iro.umontreal.ca>, 1993.
*/
/* Define to 1 if NLS is requested. */
#undef ENABLE_NLS
-/* Define as 1 if you have catgets and don't want to use GNU gettext. */
-#undef HAVE_CATGETS
+/* Define as 1 if you have dcgettext. */
+#undef HAVE_DCGETTEXT
/* Define as 1 if you have gettext and don't want to use GNU gettext. */
#undef HAVE_GETTEXT
/* Define to 1 if stpcpy function is available. */
#undef HAVE_STPCPY
+/* Define to the installation directory for locales. */
+#undef LOCALEDIR
+
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
--- /dev/null
+## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
+## Copyright (C) 1996-1999 Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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.
+
+# serial 40 AC_PROG_LIBTOOL
+AC_DEFUN(AC_PROG_LIBTOOL,
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+
+# Save cache, so that ltconfig can load it
+AC_CACHE_SAVE
+
+# Actually configure libtool. ac_aux_dir is where install-sh is found.
+CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
+|| AC_MSG_ERROR([libtool configure failed])
+
+# Reload cache, that may have been modified by ltconfig
+AC_CACHE_LOAD
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Redirect the config.log output again, so that the ltconfig log is not
+# clobbered by the next message.
+exec 5>>./config.log
+])
+
+AC_DEFUN(AC_LIBTOOL_SETUP,
+[AC_PREREQ(2.13)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_RANLIB])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+dnl
+
+case "$target" in
+NONE) lt_target="$host" ;;
+*) lt_target="$target" ;;
+esac
+
+# Check for any special flags to pass to ltconfig.
+libtool_flags="--cache-file=$cache_file"
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
+test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
+test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
+test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
+[libtool_flags="$libtool_flags --enable-dlopen"])
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[libtool_flags="$libtool_flags --enable-win32-dll"])
+AC_ARG_ENABLE(libtool-lock,
+ [ --disable-libtool-lock avoid locking (might break parallel builds)])
+test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case "$lt_target" in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ 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_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
+ 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
+ ;;
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+])
+esac
+])
+
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
+
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
+
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_SHARED, [dnl
+define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
+changequote([, ])dnl
+[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.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)])
+
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_STATIC, [dnl
+define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
+changequote([, ])dnl
+[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.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
+])
+
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)])
+
+
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
+define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(fast-install,
+changequote(<<, >>)dnl
+<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+changequote([, ])dnl
+[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.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+])
+
+# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
+AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)])
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+AC_DEFUN(AC_PROG_LD,
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$ac_cv_prog_gcc" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ ac_prog=`($CC -print-prog-name=ld) 2>&5`
+ case "$ac_prog" in
+ # Accept absolute paths.
+changequote(,)dnl
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+changequote([,])dnl
+ # 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(ac_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
+ ac_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.
+ if "$ac_cv_path_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"
+else
+ ac_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$ac_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_PROG_LD_GNU
+])
+
+AC_DEFUN(AC_PROG_LD_GNU,
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ ac_cv_prog_gnu_ld=yes
+else
+ ac_cv_prog_gnu_ld=no
+fi])
+])
+
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+AC_DEFUN(AC_PROG_NM,
+[AC_MSG_CHECKING([for BSD-compatible nm])
+AC_CACHE_VAL(ac_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ ac_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /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
+ ac_cv_path_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
+ ac_cv_path_NM="$ac_dir/nm -p"
+ break
+ else
+ ac_cv_path_NM=${ac_cv_path_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 "$ac_cv_path_NM" && ac_cv_path_NM=nm
+fi])
+NM="$ac_cv_path_NM"
+AC_MSG_RESULT([$NM])
+])
+
+# AC_CHECK_LIBM - check for math library
+AC_DEFUN(AC_CHECK_LIBM,
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case "$lt_target" in
+*-*-beos* | *-*-cygwin*)
+ # These system don't have libm
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, main, LIBM="-lm")
+ ;;
+esac
+])
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library, adds --enable-ltdl-convenience to
+# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
+# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
+# to be `${top_builddir}/libltdl'. Make sure you start DIR with
+# '${top_builddir}/' (note the single quotes!) if your package is not
+# flat, and, if you're not using automake, define top_builddir as
+# appropriate in the Makefiles.
+AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case "$enable_ltdl_convenience" in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
+ INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
+])
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library, and adds --enable-ltdl-install to
+# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
+# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
+# to be `${top_builddir}/libltdl'. Make sure you start DIR with
+# '${top_builddir}/' (note the single quotes!) if your package is not
+# flat, and, if you're not using automake, define top_builddir as
+# appropriate in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, main,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
+ INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ INCLTDL=
+ fi
+])
+
+dnl old names
+AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
+AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
+AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
+
+dnl This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])dnl
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
-# Like AC_CONFIG_HEADER, but automatically create stamp file.
-
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated. We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
- case " <<$>>CONFIG_HEADERS " in
- *" <<$>>am_file "*<<)>>
- echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
- ;;
- esac
- am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
-
-# Do all the work for Automake. 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.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# 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 (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "[$]*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "[$]*" != "X $srcdir/configure conftestfile" \
- && test "[$]*" != "X conftestfile $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
-
- test "[$]2" = conftestfile
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
- $1=$2
- AC_MSG_RESULT(found)
-else
- $1="$3/missing $2"
- AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-
-# Single argument says where are built sources to test, relative to the
-# built test directory. Maybe omitted if the same (flat distribution).
-
-AC_DEFUN(AT_CONFIG,
-[AT_TESTPATH=ifelse($1, , ., $1)
-AC_SUBST(AT_TESTPATH)
-fp_PROG_ECHO
-])
-
-
-# Once this macro is called, you may output with no echo in a Makefile or
-# script using: echo @ECHO_N@ "STRING_TO_OUTPUT@ECHO_C@".
-
-AC_DEFUN(fp_PROG_ECHO,
-[AC_CACHE_CHECK(how to suppress newlines using echo, fp_cv_prog_echo_nonl,
-[if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- fp_cv_prog_echo_nonl=no
- else
- fp_cv_prog_echo_nonl=option
- fi
-else
- fp_cv_prog_echo_nonl=escape
-fi
-])
-test $fp_cv_prog_echo_nonl = no \
- && echo 2>&1 "WARNING: \`echo' not powerful enough for \`make check'"
-case $fp_cv_prog_echo_nonl in
- no) ECHO_N= ECHO_C= ;;
- option) ECHO_N=-n ECHO_C= ;;
- escape) ECHO_N= ECHO_C='\c' ;;
-esac
-AC_SUBST(ECHO_N)dnl
-AC_SUBST(ECHO_C)dnl
-])
-
# serial 40 AC_PROG_LIBTOOL
AC_DEFUN(AC_PROG_LIBTOOL,
LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
|| AC_MSG_ERROR([libtool configure failed])
# Reload cache, that may have been modified by ltconfig
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
+case "$target" in
+NONE) lt_target="$host" ;;
+*) lt_target="$target" ;;
+esac
+
# Check for any special flags to pass to ltconfig.
libtool_flags="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
-case "$host" in
+case "$lt_target" in
*-*-irix6*)
# Find out which ABI we are using.
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_SUBST(LD)
AC_PROG_LD_GNU
])
fi])
NM="$ac_cv_path_NM"
AC_MSG_RESULT([$NM])
-AC_SUBST(NM)
])
# AC_CHECK_LIBM - check for math library
AC_DEFUN(AC_CHECK_LIBM,
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
LIBM=
-case "$host" in
+case "$lt_target" in
*-*-beos* | *-*-cygwin*)
# These system don't have libm
;;
dnl This is just to silence aclocal about the macro not being used
ifelse([AC_DISABLE_FAST_INSTALL])dnl
+# Like AC_CONFIG_HEADER, but automatically create stamp file.
+
+AC_DEFUN(AM_CONFIG_HEADER,
+[AC_PREREQ([2.12])
+AC_CONFIG_HEADER([$1])
+dnl When config.status generates a header, we must update the stamp-h file.
+dnl This file resides in the same directory as the config header
+dnl that is generated. We must strip everything past the first ":",
+dnl and everything past the last "/".
+AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
+ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
+<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
+<<am_indx=1
+for am_file in <<$1>>; do
+ case " <<$>>CONFIG_HEADERS " in
+ *" <<$>>am_file "*<<)>>
+ echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
+ ;;
+ esac
+ am_indx=`expr "<<$>>am_indx" + 1`
+done<<>>dnl>>)
+changequote([,]))])
+
+# Do all the work for Automake. 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.
+
+# serial 1
+
+dnl Usage:
+dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+
+AC_DEFUN(AM_INIT_AUTOMAKE,
+[AC_REQUIRE([AC_PROG_INSTALL])
+PACKAGE=[$1]
+AC_SUBST(PACKAGE)
+VERSION=[$2]
+AC_SUBST(VERSION)
+dnl test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+ifelse([$3],,
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir && pwd`
+AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
+AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+AC_REQUIRE([AC_PROG_MAKE_SET])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+AC_DEFUN(AM_SANITY_CHECK,
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# 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 (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "[$]*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "[$]*" != "X $srcdir/configure conftestfile" \
+ && test "[$]*" != "X conftestfile $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
+
+ test "[$]2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+rm -f conftest*
+AC_MSG_RESULT(yes)])
+
+dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
+dnl The program must properly implement --version.
+AC_DEFUN(AM_MISSING_PROG,
+[AC_MSG_CHECKING(for working $2)
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if ($2 --version) < /dev/null > /dev/null 2>&1; then
+ $1=$2
+ AC_MSG_RESULT(found)
+else
+ $1="$3/missing $2"
+ AC_MSG_RESULT(missing)
+fi
+AC_SUBST($1)])
+
+
+# Single argument says where are built sources to test, relative to the
+# built test directory. Maybe omitted if the same (flat distribution).
+
+AC_DEFUN(AT_CONFIG,
+[AT_TESTPATH=ifelse($1, , ., $1)
+AC_SUBST(AT_TESTPATH)
+fp_PROG_ECHO
+])
+
+
+# Once this macro is called, you may output with no echo in a Makefile or
+# script using: echo @ECHO_N@ "STRING_TO_OUTPUT@ECHO_C@".
+
+AC_DEFUN(fp_PROG_ECHO,
+[AC_CACHE_CHECK(how to suppress newlines using echo, fp_cv_prog_echo_nonl,
+[if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ fp_cv_prog_echo_nonl=no
+ else
+ fp_cv_prog_echo_nonl=option
+ fi
+else
+ fp_cv_prog_echo_nonl=escape
+fi
+])
+test $fp_cv_prog_echo_nonl = no \
+ && echo 2>&1 "WARNING: \`echo' not powerful enough for \`make check'"
+case $fp_cv_prog_echo_nonl in
+ no) ECHO_N= ECHO_C= ;;
+ option) ECHO_N=-n ECHO_C= ;;
+ escape) ECHO_N= ECHO_C='\c' ;;
+esac
+AC_SUBST(ECHO_N)dnl
+AC_SUBST(ECHO_C)dnl
+])
+
# serial 1
AC_PROG_LEX
AC_DECL_YYTEXT])
-
-AC_DEFUN(fp_OS_MICROSOFT,
-[AC_CACHE_CHECK([for MSDOS, Win95 or WinNT], fp_cv_os_microsoft,
-[if test -n "$COMSPEC"; then
- # MSDOS or Win95
- fp_cv_os_microsoft=yes
-elif test -n "$ComSpec"; then
- # WinNT
- fp_cv_os_microsoft=yes
-else
- fp_cv_os_microsoft=no
-fi
-])])
-
#serial 1
dnl From Jim Meyering.
])
+AC_DEFUN(fp_OS_MICROSOFT,
+[AC_CACHE_CHECK([for MSDOS, Win95 or WinNT], fp_cv_os_microsoft,
+[if test -n "$COMSPEC"; then
+ # MSDOS or Win95
+ fp_cv_os_microsoft=yes
+elif test -n "$ComSpec"; then
+ # WinNT
+ fp_cv_os_microsoft=yes
+else
+ fp_cv_os_microsoft=no
+fi
+])])
+
+
# serial 1
AC_DEFUN(AM_WITH_DMALLOC,
fi], [AC_MSG_RESULT(no)])
])
+# Select gettext and choose translations to install. -*- shell-script -*-
+# François Pinard <pinard@iro.umontreal.ca>, 1998.
+
+# Here is a check list about how one could use this macro.
+# - In the build directory, execute `make distclean'.
+# - Rename `po/' to `i18n/'.
+# - Recursively delete directory `intl/'.
+# - Add the following files:
+# . `i18n/Makefile.am'
+# . `m4/gettext.m4'
+# . `lib/gettext.c'
+# . `lib/gettext.h'.
+# - In top level `configure.in':
+# . use `fp_WITH_GETTEXT'.
+# . delete `AM_GNU_GETTEXT' and any `AC_LINK_FILES' for $nls variables.
+# . add `i18n/Makefile' to `AC_OUTPUT'.
+# . delete `intl/Makefile' and `po/Makefile.in' from `AC_OUTPUT'.
+# - In top level `Makefile.am':
+# . add `i18n' in SUBDIRS, and remove `intl' and `po'.
+# . define `POTFILES' (peek at previous `i18n/POTFILES.in).
+# . add `$(srcdir)/stamp-pot' to `all-local'.
+# . add rule for `$(srcdir)/stamp-pot'.
+# - In top level `acconfig.h':
+# . document `HAVE_DCGETTEXT' and `LOCALEDIR'.
+# . delete documentation for `HAVE_CATGETS'.
+# - In `lib/Makefile.am':
+# . add `gettext.c' to `EXTRA_DIST'.
+# . add `gettext.h' to `noinstl_HEADERS'.
+# . add definitions for `localdir' and `aliaspath'.
+# . add special rules for `gettext.o' and `gettext._o'.
+# - In `m4/Makefile.am':
+# . add `gettext.m4' to `EXTRA_DIST'.
+# - In `src/Makefile.am':
+# . delete `-I/..intl' from `INCLUDES'.
+# . delete `@INTLLIBS@' from `LDADD'.
+# . delete `localedir' and its references.
+# - Clean up directory `i18n/':
+# . delete `Makefile.in.in' and `POTFILES.in'.
+# . delete all `*.gmo' files, `cat-id-tbl.c' and `stamp-cat-id'.
+# - In the top level distribution directory:
+# . run `aclocal -I m4'.
+# . run `autoreconf'.
+# - In the build directory:
+# . run `$top_srcdir/configure'.
+# . run `make check'.
+
+AC_DEFUN(fp_WITH_GETTEXT, [
+
+ AC_MSG_CHECKING(whether NLS is wanted)
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls disallow Native Language Support],
+ enable_nls=$enableval, enable_nls=yes)
+ AC_MSG_RESULT($enable_nls)
+ use_nls=$enable_nls
+ AM_CONDITIONAL(USE_NLS, test $use_nls = yes)
+
+ if test $enable_nls = yes; then
+ AC_DEFINE(ENABLE_NLS)
+
+ AC_ARG_WITH(catgets,
+ [ --with-catgets say that catgets is not supported],
+ [AC_MSG_WARN([catgets not supported, --with-catgets ignored])])
+
+ AC_CHECK_FUNCS(gettext)
+ AC_CHECK_LIB(intl, gettext, :)
+ if test $ac_cv_lib_intl_gettext$ac_cv_func_gettext != nono; then
+ AC_MSG_CHECKING(whether the included gettext is preferred)
+ AC_ARG_WITH(included-gettext,
+ [ --without-included-gettext avoid our provided version of gettext],
+ with_included_gettext=$withval, with_included_gettext=yes)
+ AC_MSG_RESULT($with_included_gettext)
+ if test $with_included_gettext$ac_cv_func_gettext = nono; then
+ LIBS="$LIBS -lintl"
+ fi
+ else
+ with_included_gettext=yes
+ fi
+ if test $with_included_gettext = yes; then
+ LIBOBJS="$LIBOBJS gettext.o"
+ AC_DEFINE(HAVE_GETTEXT)
+ AC_DEFINE(HAVE_DCGETTEXT)
+ else
+ AC_CHECK_HEADERS(libintl.h)
+ AC_CHECK_FUNCS(dcgettext gettext)
+ fi
+
+ AC_CHECK_HEADERS(locale.h)
+ AC_CHECK_FUNCS(getcwd setlocale stpcpy)
+ AM_LC_MESSAGES
+
+ if test -z "$ALL_LINGUAS"; then
+ AC_MSG_WARN(This package does not install translations yet.)
+ else
+ ac_items="$ALL_LINGUAS"
+ for ac_item in $ac_items; do
+ ALL_POFILES="$ALL_POFILES $ac_item.po"
+ ALL_MOFILES="$ALL_MOFILES $ac_item.mo"
+ done
+ fi
+ AC_SUBST(ALL_LINGUAS)
+ AC_SUBST(ALL_POFILES)
+ AC_SUBST(ALL_MOFILES)
+
+ AC_MSG_CHECKING(which translations to install)
+ if test -z "$LINGUAS"; then
+ ac_print="$ALL_LINGUAS"
+ MOFILES="$ALL_MOFILES"
+ else
+ ac_items="$LINGUAS"
+ for ac_item in $ac_items; do
+ case "$ALL_LINGUAS" in
+ *$ac_item*)
+ ac_print="$ac_print $ac_item"
+ MOFILES="$MOFILES $ac_item.mo"
+ ;;
+ esac
+ done
+ fi
+ AC_SUBST(MOFILES)
+ if test -z "$ac_print"; then
+ AC_MSG_RESULT(none)
+ else
+ AC_MSG_RESULT($ac_print)
+ fi
+
+ if test "x$prefix" = xNONE; then
+ AC_DEFINE_UNQUOTED(LOCALEDIR, "$ac_default_prefix/share/locale")
+ else
+ AC_DEFINE_UNQUOTED(LOCALEDIR, "$prefix/share/locale")
+ fi
+ fi])
+
# Macro to add for using GNU gettext.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
#
fi
fi])
+# Define a conditional.
+
+AC_DEFUN(AM_CONDITIONAL,
+[AC_SUBST($1_TRUE)
+AC_SUBST($1_FALSE)
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi])
+
# Written by Per Bothner <bothner@cygnus.com>.
# The master version of this file is at the FSF in /home/gd/gnu/lib.
-# Please send patches to the Autoconf mailing list <autoconf@gnu.org>.
+# Please send patches to <autoconf-patches@gnu.org>.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
- -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
+ 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
+ else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
fi
- else echo i586-dg-dgux${UNAME_RELEASE}
- fi
exit 0 ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit (0);
}
EOF
- ($CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+ (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
rm -f $dummy.c $dummy
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo t90-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY*T3E:*:*:*)
- echo t3e-cray-unicosmk${UNAME_RELEASE}
+ echo alpha-cray-unicosmk${UNAME_RELEASE}
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit 0 ;;
*:NetBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
exit 0 ;;
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
*:Linux:*:*)
- # uname on the ARM produces all sorts of strangeness, and we need to
- # filter it out.
- case "$UNAME_MACHINE" in
- armv*) UNAME_MACHINE=$UNAME_MACHINE ;;
- arm* | sa110*) UNAME_MACHINE="arm" ;;
- esac
# 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
s/ .*//
p'`
case "$ld_supported_emulations" in
- i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;;
- i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;;
- sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
- armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
- m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+ *ia64)
+ echo "${UNAME_MACHINE}-unknown-linux"
+ exit 0
+ ;;
+ i?86linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0
+ ;;
+ i?86coff)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0
+ ;;
+ sparclinux)
+ echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+ exit 0
+ ;;
+ armlinux)
+ echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+ exit 0
+ ;;
+ elf32arm*)
+ echo "${UNAME_MACHINE}-unknown-linux-gnu"
+ exit 0
+ ;;
+ armelf_linux*)
+ echo "${UNAME_MACHINE}-unknown-linux-gnu"
+ exit 0
+ ;;
+ m68klinux)
+ echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+ exit 0
+ ;;
elf32ppc)
# Determine Lib Version
cat >$dummy.c <<EOF
fi
fi
rm -f $dummy.c $dummy
- echo powerpc-unknown-linux-gnu${LIBC} ; exit 0 ;;
+ echo powerpc-unknown-linux-gnu${LIBC}
+ exit 0
+ ;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
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_RELEASE}
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit 0 ;;
i?86:*:5:7*)
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) && UNAME_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent.*II' >/dev/null) && UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) && UNAME_MACHINE=i585
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}${UNAME_VERSION}-sysv${UNAME_RELEASE}
+ # Fixed at (any) Pentium or better
+ UNAME_MACHINE=i586
+ if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
+ echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+ fi
exit 0 ;;
i?86:*:3.2:*)
if test -f /usr/options/cb.name; then
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-qnx-qnx${UNAME_VERSION}
+ exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
/* Define if you don't have vprintf but do have _doprnt. */
#undef HAVE_DOPRNT
-/* Define if you have a working `mmap' system call. */
-#undef HAVE_MMAP
-
/* Define if you have the vprintf function. */
#undef HAVE_VPRINTF
/* Define if on MINIX. */
#undef _MINIX
-/* Define to `long' if <sys/types.h> doesn't define. */
-#undef off_t
-
/* Define if the system does not provide POSIX.1 features except
with this defined. */
#undef _POSIX_1_SOURCE
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-#undef size_t
-
/* 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 run-time.
/* Define to 1 if NLS is requested. */
#undef ENABLE_NLS
-/* Define as 1 if you have catgets and don't want to use GNU gettext. */
-#undef HAVE_CATGETS
+/* Define as 1 if you have dcgettext. */
+#undef HAVE_DCGETTEXT
/* Define as 1 if you have gettext and don't want to use GNU gettext. */
#undef HAVE_GETTEXT
/* Define if your locale.h file contains LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
-/* Define to 1 if stpcpy function is available. */
-#undef HAVE_STPCPY
+/* Define to the installation directory for locales. */
+#undef LOCALEDIR
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
/* Define if you have the DONE_WORKING_REALLOC_CHECK function. */
#undef HAVE_DONE_WORKING_REALLOC_CHECK
-/* Define if you have the __argz_count function. */
-#undef HAVE___ARGZ_COUNT
-
-/* Define if you have the __argz_next function. */
-#undef HAVE___ARGZ_NEXT
-
-/* Define if you have the __argz_stringify function. */
-#undef HAVE___ARGZ_STRINGIFY
-
/* Define if you have the dcgettext function. */
#undef HAVE_DCGETTEXT
/* Define if you have the getcwd function. */
#undef HAVE_GETCWD
-/* Define if you have the getpagesize function. */
-#undef HAVE_GETPAGESIZE
-
-/* Define if you have the munmap function. */
-#undef HAVE_MUNMAP
-
-/* Define if you have the putenv function. */
-#undef HAVE_PUTENV
+/* Define if you have the gettext function. */
+#undef HAVE_GETTEXT
/* Define if you have the rename function. */
#undef HAVE_RENAME
-/* Define if you have the setenv function. */
-#undef HAVE_SETENV
-
/* Define if you have the setlocale function. */
#undef HAVE_SETLOCALE
/* Define if you have the stpcpy function. */
#undef HAVE_STPCPY
-/* Define if you have the strcasecmp function. */
-#undef HAVE_STRCASECMP
-
-/* Define if you have the strchr function. */
-#undef HAVE_STRCHR
-
-/* Define if you have the strdup function. */
-#undef HAVE_STRDUP
-
/* Define if you have the strerror function. */
#undef HAVE_STRERROR
-/* Define if you have the <argz.h> header file. */
-#undef HAVE_ARGZ_H
+/* Define if you have the strtol function. */
+#undef HAVE_STRTOL
+
+/* Define if you have the strtoul function. */
+#undef HAVE_STRTOUL
+
+/* Define if you have the <libintl.h> header file. */
+#undef HAVE_LIBINTL_H
/* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
-/* Define if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define if you have the <nl_types.h> header file. */
-#undef HAVE_NL_TYPES_H
-
/* Define if you have the <stdbool.h> header file. */
#undef HAVE_STDBOOL_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Define if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the <utime.h> header file. */
#undef HAVE_UTIME_H
-/* Define if you have the i library (-li). */
-#undef HAVE_LIBI
-
/* Name of package */
#undef PACKAGE
-scout)
;;
-wrs)
- os=vxworks
+ os=-vxworks
basic_machine=$1
;;
-hiux*)
-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.
- tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
+ tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
| 580 | i960 | h8300 \
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
- | mips64vr5000 | miprs64vr5000el \
+ | mips64vr5000 | miprs64vr5000el | mcore \
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
- | thumb | d10v)
+ | thumb | d10v | fr30)
basic_machine=$basic_machine-unknown
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65)
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
;;
# We use `pc' rather than `unknown'
exit 1
;;
# Recognize the basic CPU types with company name.
- vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
+ # FIXME: clean up the formatting here.
+ vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
- | mipstx39-* | mipstx39el-* \
+ | mipstx39-* | mipstx39el-* | mcore-* \
| f301-* | armv*-* | t3e-* \
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
- | thumb-* | v850-* | d30v-* | tic30-* | c30-* )
+ | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
- os=-mvs
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i[34567]86v32)
basic_machine=i386-unknown
os=-mingw32
;;
+ i386-qnx | qnx)
+ basic_machine=i386-qnx
+ ;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
miniframe)
basic_machine=m68000-convergent
;;
- *mint | *MiNT)
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
basic_machine=i386-unknown
os=-msdos
;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
os=-netbsd
;;
netwinder)
- basic_machine=armv4l-corel
+ basic_machine=armv4l-rebel
os=-linux
;;
news | news700 | news800 | news900)
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -openstep* | -oskit*)
+ | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
+ -opened*)
+ os=-openedition
+ ;;
-osfrose*)
os=-osfrose
;;
-oss*)
os=-sysv3
;;
+ -qnx)
+ os=-qnx4
+ ;;
-svr4)
os=-sysv4
;;
*-acorn)
os=-riscix1.2
;;
- arm*-corel)
+ arm*-rebel)
os=-linux
;;
arm*-semi)
-genix*)
vendor=ns
;;
- -mvs*)
+ -mvs* | -opened*)
vendor=ibm
;;
-ptx*)
--with-dmalloc use dmalloc, as in
ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz"
ac_help="$ac_help
- --disable-nls do not use Native Language Support"
+ --disable-nls disallow Native Language Support"
ac_help="$ac_help
- --with-included-gettext use the GNU gettext library included here"
+ --with-catgets say that catgets is not supported"
ac_help="$ac_help
- --with-catgets use catgets functions if available"
+ --without-included-gettext avoid our provided version of gettext"
# Initialize some variables set by options.
# The variables have the same names as the options, with
PACKAGE=recode
-VERSION=3.5
+VERSION=3.5a
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
esac
-ALL_LINGUAS="da de es fr nl pl pt sl sv"
-
-for ac_prog in mawk gawk 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
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:836: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AWK="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-AWK="$ac_cv_prog_AWK"
-if test -n "$AWK"; then
- echo "$ac_t""$AWK" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AWK" && break
-done
+ALL_LINGUAS="da de el es fr it nl pl pt sl sv"
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:868: checking for $ac_word" >&5
+echo "configure:834: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:898: checking for $ac_word" >&5
+echo "configure:864: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:949: checking for $ac_word" >&5
+echo "configure:915: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:981: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:947: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
cat > conftest.$ac_ext << EOF
-#line 992 "configure"
+#line 958 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1023: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:989: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1028: checking whether we are using GNU C" >&5
+echo "configure:994: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1037: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1003: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1056: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1022: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1088: checking how to run the C preprocessor" >&5
+echo "configure:1054: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1103 "configure"
+#line 1069 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1075: \"$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*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1120 "configure"
+#line 1086 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1126: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1092: \"$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*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1137 "configure"
+#line 1103 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1143: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1109: \"$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
:
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1168: checking for AIX" >&5
+echo "configure:1134: checking for AIX" >&5
cat > conftest.$ac_ext <<EOF
-#line 1170 "configure"
+#line 1136 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1193: checking for minix/config.h" >&5
+echo "configure:1159: checking for minix/config.h" >&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 <<EOF
-#line 1198 "configure"
+#line 1164 "configure"
#include "confdefs.h"
#include <minix/config.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1169: \"$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*
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1316: checking host system type" >&5
+echo "configure:1282: checking host system type" >&5
host_alias=$host
case "$host_alias" in
echo "$ac_t""$host" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1337: checking build system type" >&5
+echo "configure:1303: checking build system type" >&5
build_alias=$build
case "$build_alias" in
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1357: checking for $ac_word" >&5
+echo "configure:1323: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$ac_cv_prog_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 "configure:1396: checking for ld used by GCC" >&5
+echo "configure:1362: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1420: checking for GNU ld" >&5
+echo "configure:1386: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1423: checking for non-GNU ld" >&5
+echo "configure:1389: checking for non-GNU ld" >&5
fi
if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
echo "$ac_t""no" 1>&6
fi
test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-
echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1459: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1424: checking if the linker ($LD) is GNU ld" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1475: checking for BSD-compatible nm" >&5
+echo "configure:1440: checking for BSD-compatible nm" >&5
if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
NM="$ac_cv_path_NM"
echo "$ac_t""$NM" 1>&6
-
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1512: checking whether ln -s works" >&5
+echo "configure:1476: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
+case "$target" in
+NONE) lt_target="$host" ;;
+*) lt_target="$target" ;;
+esac
+
# Check for any special flags to pass to ltconfig.
libtool_flags="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
-case "$host" in
+case "$lt_target" in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 1556 "configure"' > conftest.$ac_ext
- if { (eval echo configure:1557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 1525 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:1526: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*32-bit*)
LD="${LD-ld} -32"
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:1578: checking whether the C compiler needs -belf" >&5
+echo "configure:1547: checking whether the C compiler needs -belf" >&5
if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1583 "configure"
+#line 1552 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:1590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
# Reload cache, that may have been modified by ltconfig
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1693: checking for POSIXized ISC" >&5
+echo "configure:1662: checking for POSIXized ISC" >&5
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1717: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:1686: checking for ${CC-cc} option to accept ANSI C" >&5
if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
do
CC="$ac_save_CC $ac_arg"
cat > conftest.$ac_ext <<EOF
-#line 1733 "configure"
+#line 1702 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
; return 0; }
EOF
-if { (eval echo configure:1770: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_prog_cc_stdc="$ac_arg"; break
else
echo $ac_n "checking for function prototypes""... $ac_c" 1>&6
-echo "configure:1796: checking for function prototypes" >&5
+echo "configure:1765: checking for function prototypes" >&5
if test "$am_cv_prog_cc_stdc" != no; then
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
U=_ ANSI2KNR=./ansi2knr
# Ensure some checks needed by ansi2knr itself.
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1809: checking for ANSI C header files" >&5
+echo "configure:1778: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1814 "configure"
+#line 1783 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1791: \"$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*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1839 "configure"
+#line 1808 "configure"
#include "confdefs.h"
#include <string.h>
EOF
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1857 "configure"
+#line 1826 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
:
else
cat > conftest.$ac_ext <<EOF
-#line 1878 "configure"
+#line 1847 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
exit (0); }
EOF
-if { (eval echo configure:1889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1916: checking for $ac_hdr" >&5
+echo "configure:1885: 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 <<EOF
-#line 1921 "configure"
+#line 1890 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1926: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1895: \"$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*
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1955: checking for working const" >&5
+echo "configure:1924: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1960 "configure"
+#line 1929 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:2030: checking for inline" >&5
+echo "configure:1999: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 2037 "configure"
+#line 2006 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:2044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2075: checking for $ac_word" >&5
+echo "configure:2044: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "flex", so it can be a program name with args.
set dummy flex; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2108: checking for $ac_word" >&5
+echo "configure:2077: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
*) ac_lib=l ;;
esac
echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:2142: checking for yywrap in -l$ac_lib" >&5
+echo "configure:2111: checking for yywrap in -l$ac_lib" >&5
ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-l$ac_lib $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2150 "configure"
+#line 2119 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
yywrap()
; return 0; }
EOF
-if { (eval echo configure:2161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
echo $ac_n "checking lex output file root""... $ac_c" 1>&6
-echo "configure:2184: checking lex output file root" >&5
+echo "configure:2153: checking lex output file root" >&5
if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
-echo "configure:2205: checking whether yytext is a pointer" >&5
+echo "configure:2174: checking whether yytext is a pointer" >&5
if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="$LIBS $LEXLIB"
cat > conftest.$ac_ext <<EOF
-#line 2217 "configure"
+#line 2186 "configure"
#include "confdefs.h"
`cat $LEX_OUTPUT_ROOT.c`
int main() {
; return 0; }
EOF
-if { (eval echo configure:2224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_prog_lex_yytext_pointer=yes
else
test "$LEX" = flex || echo "configure: warning: flex not found, so do not modify .l files" 1>&2
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2248: checking for ANSI C header files" >&5
+echo "configure:2217: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2253 "configure"
+#line 2222 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2261: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2230: \"$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*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2278 "configure"
+#line 2247 "configure"
#include "confdefs.h"
#include <string.h>
EOF
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2296 "configure"
+#line 2265 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
:
else
cat > conftest.$ac_ext <<EOF
-#line 2317 "configure"
+#line 2286 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
exit (0); }
EOF
-if { (eval echo configure:2328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2355: checking for $ac_hdr" >&5
+echo "configure:2324: 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 <<EOF
-#line 2360 "configure"
+#line 2329 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2365: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2334: \"$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*
done
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:2392: checking return type of signal handlers" >&5
+echo "configure:2361: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2397 "configure"
+#line 2366 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
int i;
; return 0; }
EOF
-if { (eval echo configure:2414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2383: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
for ac_func in dup2 rename strerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2436: checking for $ac_func" >&5
+echo "configure:2405: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2441 "configure"
+#line 2410 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
done
-echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2489: checking for vprintf" >&5
-if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
+for ac_func in strtol strtoul
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2460: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2494 "configure"
+#line 2465 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char vprintf(); below. */
+ which can conflict with char $ac_func(); below. */
#include <assert.h>
/* 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. */
-char vprintf();
+char $ac_func();
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_vprintf) || defined (__stub___vprintf)
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
-vprintf();
+$ac_func();
#endif
; return 0; }
EOF
-if { (eval echo configure:2517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_func_vprintf=yes"
+ eval "ac_cv_func_$ac_func=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_func_vprintf=no"
+ eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*
fi
-if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_VPRINTF 1
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
EOF
-
+
else
echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
fi
+done
-if test "$ac_cv_func_vprintf" != yes; then
-echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2541: checking for _doprnt" >&5
-if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+echo "configure:2517: checking for working alloca.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2546 "configure"
+#line 2522 "configure"
#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char _doprnt(); below. */
-#include <assert.h>
-/* 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. */
-char _doprnt();
-
+#include <alloca.h>
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__doprnt) || defined (__stub____doprnt)
-choke me
-#else
-_doprnt();
-#endif
-
+char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:2569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_func__doprnt=yes"
+ ac_cv_header_alloca_h=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_func__doprnt=no"
+ ac_cv_header_alloca_h=no
fi
rm -f conftest*
fi
-if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then
- echo "$ac_t""yes" 1>&6
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
cat >> confdefs.h <<\EOF
-#define HAVE_DOPRNT 1
+#define HAVE_ALLOCA_H 1
EOF
-else
- echo "$ac_t""no" 1>&6
-fi
-
fi
-
-echo $ac_n "checking for MSDOS, Win95 or WinNT""... $ac_c" 1>&6
-echo "configure:2595: checking for MSDOS, Win95 or WinNT" >&5
-if eval "test \"`echo '$''{'fp_cv_os_microsoft'+set}'`\" = set"; then
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:2550: checking for alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- if test -n "$COMSPEC"; then
- # MSDOS or Win95
- fp_cv_os_microsoft=yes
-elif test -n "$ComSpec"; then
- # WinNT
- fp_cv_os_microsoft=yes
+ cat > conftest.$ac_ext <<EOF
+#line 2555 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
+EOF
+if { (eval echo configure:2583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_func_alloca_works=yes
else
- fp_cv_os_microsoft=no
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_func_alloca_works=no
fi
-
+rm -f conftest*
fi
-echo "$ac_t""$fp_cv_os_microsoft" 1>&6
-echo $ac_n "checking the default charset""... $ac_c" 1>&6
-echo "configure:2613: checking the default charset" >&5
-if test -n "${DEFAULT_CHARSET+set}"; then
- echo "$ac_t""$DEFAULT_CHARSET" 1>&6
- cat >> confdefs.h <<EOF
-#define DEFAULT_CHARSET "$DEFAULT_CHARSET"
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
EOF
-elif test "$fp_cv_os_microsoft" = no; then
- echo "$ac_t""Latin-1" 1>&6
+fi
+
+if test $ac_cv_func_alloca_works = no; then
+ # 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=alloca.${ac_objext}
cat >> confdefs.h <<\EOF
-#define DEFAULT_CHARSET "Latin-1"
+#define C_ALLOCA 1
EOF
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:2615: checking whether alloca needs Cray hooks" >&5
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
else
- echo "$ac_t""IBM-PC" 1>&6
- cat >> confdefs.h <<\EOF
-#define DEFAULT_CHARSET "IBM-PC"
-EOF
+ cat > conftest.$ac_ext <<EOF
+#line 2620 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "webecray" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_os_cray=yes
+else
+ rm -rf conftest*
+ ac_cv_os_cray=no
fi
+rm -f conftest*
+fi
- if test x = y; then
- for ac_func in DONE_WORKING_MALLOC_CHECK
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2639: checking for $ac_func" >&5
+echo "$ac_t""$ac_cv_os_cray" 1>&6
+if test $ac_cv_os_cray = yes; then
+for ac_func in _getb67 GETB67 getb67; do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2645: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2644 "configure"
+#line 2650 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+#define CRAY_STACKSEG_END $ac_func
EOF
-
+
+ break
else
echo "$ac_t""no" 1>&6
fi
-done
-
- fi
- ac_kludge=HAVE_DONE_WORKING_MALLOC_CHECK
- cat >> confdefs.h <<EOF
-#define $ac_kludge 1
-EOF
+done
+fi
- echo $ac_n "checking for working malloc""... $ac_c" 1>&6
-echo "configure:2699: checking for working malloc" >&5
-if eval "test \"`echo '$''{'jm_cv_func_working_malloc'+set}'`\" = set"; then
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:2700: checking stack direction for C alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
- jm_cv_func_working_malloc=no
+ ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 2707 "configure"
+#line 2708 "configure"
#include "confdefs.h"
-
- char *malloc ();
- int
- main ()
+find_stack_direction ()
+{
+ static char *addr = 0;
+ auto char dummy;
+ if (addr == 0)
{
- exit (malloc (0) ? 0 : 1);
+ addr = &dummy;
+ return find_stack_direction ();
}
-
+ else
+ return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+ exit (find_stack_direction() < 0);
+}
EOF
-if { (eval echo configure:2718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
- jm_cv_func_working_malloc=yes
+ ac_cv_c_stack_direction=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -fr conftest*
- jm_cv_func_working_malloc=no
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$jm_cv_func_working_malloc" 1>&6
- if test $jm_cv_func_working_malloc = no; then
- LIBOBJS="$LIBOBJS malloc.o"
- cat >> confdefs.h <<EOF
-#define malloc rpl_malloc
-EOF
-
- fi
-
-
- if test x = y; then
- for ac_func in DONE_WORKING_REALLOC_CHECK
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2747: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2752 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* 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. */
-char $ac_func();
-
-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_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- fi
- ac_kludge=HAVE_DONE_WORKING_REALLOC_CHECK
- cat >> confdefs.h <<EOF
-#define $ac_kludge 1
-EOF
-
-
- echo $ac_n "checking for working realloc""... $ac_c" 1>&6
-echo "configure:2807: checking for working realloc" >&5
-if eval "test \"`echo '$''{'jm_cv_func_working_realloc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- jm_cv_func_working_realloc=no
-else
- cat > conftest.$ac_ext <<EOF
-#line 2815 "configure"
-#include "confdefs.h"
-
- char *realloc ();
- int
- main ()
- {
- exit (realloc (0, 0) ? 0 : 1);
- }
-
-EOF
-if { (eval echo configure:2826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- jm_cv_func_working_realloc=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- jm_cv_func_working_realloc=no
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$jm_cv_func_working_realloc" 1>&6
- if test $jm_cv_func_working_realloc = no; then
- LIBOBJS="$LIBOBJS realloc.o"
- cat >> confdefs.h <<EOF
-#define realloc rpl_realloc
-EOF
-
- fi
-
-echo $ac_n "checking if malloc debugging is wanted""... $ac_c" 1>&6
-echo "configure:2851: checking if malloc debugging is wanted" >&5
-# Check whether --with-dmalloc or --without-dmalloc was given.
-if test "${with_dmalloc+set}" = set; then
- withval="$with_dmalloc"
- if test "$withval" = yes; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define WITH_DMALLOC 1
-EOF
-
- LIBS="$LIBS -ldmalloc"
- LDFLAGS="$LDFLAGS -g"
-else
- echo "$ac_t""no" 1>&6
-fi
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:2873: checking for off_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2878 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_off_t=yes
-else
- rm -rf conftest*
- ac_cv_type_off_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_off_t" 1>&6
-if test $ac_cv_type_off_t = no; then
- cat >> confdefs.h <<\EOF
-#define off_t long
-EOF
-
-fi
-
-echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:2906: checking for size_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2911 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_size_t=yes
-else
- rm -rf conftest*
- ac_cv_type_size_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_size_t" 1>&6
-if test $ac_cv_type_size_t = no; then
- cat >> confdefs.h <<\EOF
-#define size_t unsigned
-EOF
-
-fi
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments. Useless!
-echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:2941: checking for working alloca.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2946 "configure"
-#include "confdefs.h"
-#include <alloca.h>
-int main() {
-char *p = alloca(2 * sizeof(int));
-; return 0; }
-EOF
-if { (eval echo configure:2953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_header_alloca_h=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_alloca_h=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
-if test $ac_cv_header_alloca_h = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA_H 1
-EOF
-
-fi
-
-echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:2974: checking for alloca" >&5
-if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2979 "configure"
-#include "confdefs.h"
-
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-# include <malloc.h>
-# define alloca _alloca
-# else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-# endif
-# endif
-# endif
-# endif
-#endif
-
-int main() {
-char *p = (char *) alloca(1);
-; return 0; }
-EOF
-if { (eval echo configure:3007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_func_alloca_works=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_func_alloca_works=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
-if test $ac_cv_func_alloca_works = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA 1
-EOF
-
-fi
-
-if test $ac_cv_func_alloca_works = no; then
- # 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=alloca.${ac_objext}
- cat >> confdefs.h <<\EOF
-#define C_ALLOCA 1
-EOF
-
-
-echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:3039: checking whether alloca needs Cray hooks" >&5
-if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3044 "configure"
-#include "confdefs.h"
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "webecray" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_os_cray=yes
-else
- rm -rf conftest*
- ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_os_cray" 1>&6
-if test $ac_cv_os_cray = yes; then
-for ac_func in _getb67 GETB67 getb67; do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3069: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3074 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* 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. */
-char $ac_func();
-
-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_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3097: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<EOF
-#define CRAY_STACKSEG_END $ac_func
-EOF
-
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-
-done
-fi
-
-echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:3124: checking stack direction for C alloca" >&5
-if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_c_stack_direction=0
-else
- cat > conftest.$ac_ext <<EOF
-#line 3132 "configure"
-#include "confdefs.h"
-find_stack_direction ()
-{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
-}
-main ()
-{
- exit (find_stack_direction() < 0);
-}
-EOF
-if { (eval echo configure:3151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_c_stack_direction=1
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_c_stack_direction=-1
+ ac_cv_c_stack_direction=-1
fi
rm -fr conftest*
fi
fi
-for ac_hdr in unistd.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3176: 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 <<EOF
-#line 3181 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3186: \"$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 "configure: 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
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_func in getpagesize
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3215: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+echo $ac_n "checking for vprintf""... $ac_c" 1>&6
+echo "configure:2749: checking for vprintf" >&5
+if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3220 "configure"
+#line 2754 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
+ which can conflict with char vprintf(); below. */
#include <assert.h>
/* 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. */
-char $ac_func();
+char vprintf();
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_$ac_func) || defined (__stub___$ac_func)
+#if defined (__stub_vprintf) || defined (__stub___vprintf)
choke me
#else
-$ac_func();
+vprintf();
#endif
; return 0; }
EOF
-if { (eval echo configure:3243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
+ eval "ac_cv_func_vprintf=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
+ eval "ac_cv_func_vprintf=no"
fi
rm -f conftest*
fi
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then
echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+ cat >> confdefs.h <<\EOF
+#define HAVE_VPRINTF 1
EOF
-
+
else
echo "$ac_t""no" 1>&6
fi
-done
-echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:3268: checking for working mmap" >&5
-if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
+if test "$ac_cv_func_vprintf" != yes; then
+echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
+echo "configure:2801: checking for _doprnt" >&5
+if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 3276 "configure"
+#line 2806 "configure"
#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char _doprnt(); below. */
+#include <assert.h>
+/* 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. */
+char _doprnt();
-/* Thanks to Mike Haertel and Jim Avera for this test.
- Here is a matrix of mmap possibilities:
- mmap private not fixed
- mmap private fixed at somewhere currently unmapped
- mmap private fixed at somewhere already mapped
- mmap shared not fixed
- mmap shared fixed at somewhere currently unmapped
- mmap shared fixed at somewhere already mapped
- For private mappings, we should verify that changes cannot be read()
- back from the file, nor mmap's back from the file at a different
- address. (There have been systems where private was not correctly
- implemented like the infamous i386 svr4.0, and systems where the
- VM page cache was not coherent with the filesystem buffer cache
- like early versions of FreeBSD and possibly contemporary NetBSD.)
- For shared mappings, we should conversely verify that changes get
- propogated back to all the places they're supposed to be.
-
- Grep wants private fixed already mapped.
- The main things grep needs to know about mmap are:
- * does it exist and is it safe to write into the mmap'd area
- * how to use it (BSD variants) */
-#include <sys/types.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-/* This mess was copied from the GNU getpagesize.h. */
-#ifndef HAVE_GETPAGESIZE
-# ifdef HAVE_UNISTD_H
-# include <unistd.h>
-# endif
-
-/* Assume that all systems that can run configure have sys/param.h. */
-# ifndef HAVE_SYS_PARAM_H
-# define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-# define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-# ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else /* no EXEC_PAGESIZE */
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif /* no CLSIZE */
-# else /* no NBPG */
-# ifdef NBPC
-# define getpagesize() NBPC
-# else /* no NBPC */
-# ifdef PAGESIZE
-# define getpagesize() PAGESIZE
-# endif /* PAGESIZE */
-# endif /* no NBPC */
-# endif /* no NBPG */
-# endif /* no EXEC_PAGESIZE */
-# else /* no HAVE_SYS_PARAM_H */
-# define getpagesize() 8192 /* punt totally */
-# endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
+int main() {
-#ifdef __cplusplus
-extern "C" { void *malloc(unsigned); }
+/* 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__doprnt) || defined (__stub____doprnt)
+choke me
#else
-char *malloc();
+_doprnt();
#endif
-int
-main()
-{
- char *data, *data2, *data3;
- int i, pagesize;
- int fd;
-
- pagesize = getpagesize();
-
- /*
- * First, make a file with some known garbage in it.
- */
- data = malloc(pagesize);
- if (!data)
- exit(1);
- for (i = 0; i < pagesize; ++i)
- *(data + i) = rand();
- umask(0);
- fd = creat("conftestmmap", 0600);
- if (fd < 0)
- exit(1);
- if (write(fd, data, pagesize) != pagesize)
- exit(1);
- close(fd);
-
- /*
- * Next, try to mmap the file at a fixed address which
- * already has something else allocated at it. If we can,
- * also make sure that we see the same garbage.
- */
- fd = open("conftestmmap", O_RDWR);
- if (fd < 0)
- exit(1);
- data2 = malloc(2 * pagesize);
- if (!data2)
- exit(1);
- data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
- if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_FIXED, fd, 0L))
- exit(1);
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data2 + i))
- exit(1);
-
- /*
- * Finally, make sure that changes to the mapped area
- * do not percolate back to the file as seen by read().
- * (This is a bug on some variants of i386 svr4.0.)
- */
- for (i = 0; i < pagesize; ++i)
- *(data2 + i) = *(data2 + i) + 1;
- data3 = malloc(pagesize);
- if (!data3)
- exit(1);
- if (read(fd, data3, pagesize) != pagesize)
- exit(1);
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data3 + i))
- exit(1);
- close(fd);
- unlink("conftestmmap");
- exit(0);
-}
-
-EOF
-if { (eval echo configure:3416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_mmap_fixed_mapped=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_MMAP 1
-EOF
-
-fi
-
-
- for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h string.h \
-unistd.h sys/param.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3444: 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 <<EOF
-#line 3449 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
+; return 0; }
EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3454: \"$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
+if { (eval echo configure:2829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
+ eval "ac_cv_func__doprnt=yes"
else
- echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
+ eval "ac_cv_func__doprnt=no"
fi
rm -f conftest*
fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+
+if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then
echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+ cat >> confdefs.h <<\EOF
+#define HAVE_DOPRNT 1
EOF
-
+
else
echo "$ac_t""no" 1>&6
fi
-done
- for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \
-strdup __argz_count __argz_stringify __argz_next
+fi
+
+
+
+ if test x = y; then
+ for ac_func in DONE_WORKING_MALLOC_CHECK
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3484: checking for $ac_func" >&5
+echo "configure:2859: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3489 "configure"
+#line 2864 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
done
+ fi
+ ac_kludge=HAVE_DONE_WORKING_MALLOC_CHECK
+ cat >> confdefs.h <<EOF
+#define $ac_kludge 1
+EOF
+
+
+ echo $ac_n "checking for working malloc""... $ac_c" 1>&6
+echo "configure:2919: checking for working malloc" >&5
+if eval "test \"`echo '$''{'jm_cv_func_working_malloc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ jm_cv_func_working_malloc=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2927 "configure"
+#include "confdefs.h"
+
+ char *malloc ();
+ int
+ main ()
+ {
+ exit (malloc (0) ? 0 : 1);
+ }
+
+EOF
+if { (eval echo configure:2938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ jm_cv_func_working_malloc=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ jm_cv_func_working_malloc=no
+fi
+rm -fr conftest*
+fi
+
+
+fi
+
+echo "$ac_t""$jm_cv_func_working_malloc" 1>&6
+ if test $jm_cv_func_working_malloc = no; then
+ LIBOBJS="$LIBOBJS malloc.o"
+ cat >> confdefs.h <<EOF
+#define malloc rpl_malloc
+EOF
+
+ fi
+
- if test "${ac_cv_func_stpcpy+set}" != "set"; then
- for ac_func in stpcpy
+ if test x = y; then
+ for ac_func in DONE_WORKING_REALLOC_CHECK
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3541: checking for $ac_func" >&5
+echo "configure:2967: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3546 "configure"
+#line 2972 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
done
- fi
- if test "${ac_cv_func_stpcpy}" = "yes"; then
- cat >> confdefs.h <<\EOF
-#define HAVE_STPCPY 1
+ fi
+ ac_kludge=HAVE_DONE_WORKING_REALLOC_CHECK
+ cat >> confdefs.h <<EOF
+#define $ac_kludge 1
EOF
- fi
- if test $ac_cv_header_locale_h = yes; then
- echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:3603: checking for LC_MESSAGES" >&5
-if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
+ echo $ac_n "checking for working realloc""... $ac_c" 1>&6
+echo "configure:3027: checking for working realloc" >&5
+if eval "test \"`echo '$''{'jm_cv_func_working_realloc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ jm_cv_func_working_realloc=no
else
cat > conftest.$ac_ext <<EOF
-#line 3608 "configure"
+#line 3035 "configure"
#include "confdefs.h"
-#include <locale.h>
-int main() {
-return LC_MESSAGES
-; return 0; }
+
+ char *realloc ();
+ int
+ main ()
+ {
+ exit (realloc (0, 0) ? 0 : 1);
+ }
+
EOF
-if { (eval echo configure:3615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- am_cv_val_LC_MESSAGES=yes
+if { (eval echo configure:3046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ jm_cv_func_working_realloc=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
- rm -rf conftest*
- am_cv_val_LC_MESSAGES=no
+ rm -fr conftest*
+ jm_cv_func_working_realloc=no
fi
-rm -f conftest*
+rm -fr conftest*
fi
-echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
- if test $am_cv_val_LC_MESSAGES = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_LC_MESSAGES 1
+
+fi
+
+echo "$ac_t""$jm_cv_func_working_realloc" 1>&6
+ if test $jm_cv_func_working_realloc = no; then
+ LIBOBJS="$LIBOBJS realloc.o"
+ cat >> confdefs.h <<EOF
+#define realloc rpl_realloc
+EOF
+
+ fi
+
+
+
+echo $ac_n "checking for MSDOS, Win95 or WinNT""... $ac_c" 1>&6
+echo "configure:3073: checking for MSDOS, Win95 or WinNT" >&5
+if eval "test \"`echo '$''{'fp_cv_os_microsoft'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$COMSPEC"; then
+ # MSDOS or Win95
+ fp_cv_os_microsoft=yes
+elif test -n "$ComSpec"; then
+ # WinNT
+ fp_cv_os_microsoft=yes
+else
+ fp_cv_os_microsoft=no
+fi
+
+fi
+
+echo "$ac_t""$fp_cv_os_microsoft" 1>&6
+echo $ac_n "checking the default charset""... $ac_c" 1>&6
+echo "configure:3091: checking the default charset" >&5
+if test -n "${DEFAULT_CHARSET+set}"; then
+ echo "$ac_t""$DEFAULT_CHARSET" 1>&6
+ cat >> confdefs.h <<EOF
+#define DEFAULT_CHARSET "$DEFAULT_CHARSET"
+EOF
+
+elif test "$fp_cv_os_microsoft" = no; then
+ echo "$ac_t""Latin-1" 1>&6
+ cat >> confdefs.h <<\EOF
+#define DEFAULT_CHARSET "Latin-1"
+EOF
+
+else
+ echo "$ac_t""IBM-PC" 1>&6
+ cat >> confdefs.h <<\EOF
+#define DEFAULT_CHARSET "IBM-PC"
+EOF
+
+fi
+
+echo $ac_n "checking if malloc debugging is wanted""... $ac_c" 1>&6
+echo "configure:3113: checking if malloc debugging is wanted" >&5
+# Check whether --with-dmalloc or --without-dmalloc was given.
+if test "${with_dmalloc+set}" = set; then
+ withval="$with_dmalloc"
+ if test "$withval" = yes; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define WITH_DMALLOC 1
EOF
- fi
- fi
- echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:3636: checking whether NLS is requested" >&5
- # Check whether --enable-nls or --disable-nls was given.
-if test "${enable_nls+set}" = set; then
- enableval="$enable_nls"
- USE_NLS=$enableval
+ LIBS="$LIBS -ldmalloc"
+ LDFLAGS="$LDFLAGS -g"
else
- USE_NLS=yes
+ echo "$ac_t""no" 1>&6
+fi
+else
+ echo "$ac_t""no" 1>&6
fi
- echo "$ac_t""$USE_NLS" 1>&6
-
- USE_INCLUDED_LIBINTL=no
- if test "$USE_NLS" = "yes"; then
- cat >> confdefs.h <<\EOF
-#define ENABLE_NLS 1
-EOF
- echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:3656: checking whether included gettext is requested" >&5
- # Check whether --with-included-gettext or --without-included-gettext was given.
-if test "${with_included_gettext+set}" = set; then
- withval="$with_included_gettext"
- nls_cv_force_use_gnu_gettext=$withval
+ echo $ac_n "checking whether NLS is wanted""... $ac_c" 1>&6
+echo "configure:3136: checking whether NLS is wanted" >&5
+ # Check whether --enable-nls or --disable-nls was given.
+if test "${enable_nls+set}" = set; then
+ enableval="$enable_nls"
+ enable_nls=$enableval
else
- nls_cv_force_use_gnu_gettext=no
+ enable_nls=yes
fi
- echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- nls_cv_header_intl=
- nls_cv_header_libgt=
- CATOBJEXT=NONE
+ echo "$ac_t""$enable_nls" 1>&6
+ use_nls=$enable_nls
+
- ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:3675: checking for libintl.h" >&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 <<EOF
-#line 3680 "configure"
-#include "confdefs.h"
-#include <libintl.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3685: \"$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"
+if test $use_nls = yes; then
+ USE_NLS_TRUE=
+ USE_NLS_FALSE='#'
else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
+ USE_NLS_TRUE='#'
+ USE_NLS_FALSE=
fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
-echo "configure:3702: checking for gettext in libc" >&5
-if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3707 "configure"
-#include "confdefs.h"
-#include <libintl.h>
-int main() {
-return (int) gettext ("")
-; return 0; }
+
+ if test $enable_nls = yes; then
+ cat >> confdefs.h <<\EOF
+#define ENABLE_NLS 1
EOF
-if { (eval echo configure:3714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- gt_cv_func_gettext_libc=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- gt_cv_func_gettext_libc=no
-fi
-rm -f conftest*
+
+
+ # Check whether --with-catgets or --without-catgets was given.
+if test "${with_catgets+set}" = set; then
+ withval="$with_catgets"
+ echo "configure: warning: catgets not supported, --with-catgets ignored" 1>&2
fi
-echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
- if test "$gt_cv_func_gettext_libc" != "yes"; then
- echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:3730: checking for bindtextdomain in -lintl" >&5
-ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ for ac_func in gettext
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3173: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- ac_save_LIBS="$LIBS"
-LIBS="-lintl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3738 "configure"
+ cat > conftest.$ac_ext <<EOF
+#line 3178 "configure"
#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
/* 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. */
-char bindtextdomain();
+char $ac_func();
int main() {
-bindtextdomain()
+
+/* 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_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
; return 0; }
EOF
-if { (eval echo configure:3749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
+ eval "ac_cv_func_$ac_func=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
+ eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*
-LIBS="$ac_save_LIBS"
-
fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&6
- echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
-echo "configure:3765: checking for gettext in libintl" >&5
-if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
else
- echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:3770: checking for gettext in -lintl" >&5
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
+echo "configure:3226: checking for gettext in -lintl" >&5
ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3778 "configure"
+#line 3234 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
gettext()
; return 0; }
EOF
-if { (eval echo configure:3789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
- gt_cv_func_gettext_libintl=yes
+ :
else
echo "$ac_t""no" 1>&6
-gt_cv_func_gettext_libintl=no
fi
-fi
-
-echo "$ac_t""$gt_cv_func_gettext_libintl" 1>&6
+ if test $ac_cv_lib_intl_gettext$ac_cv_func_gettext != nono; then
+ echo $ac_n "checking whether the included gettext is preferred""... $ac_c" 1>&6
+echo "configure:3267: checking whether the included gettext is preferred" >&5
+ # Check whether --with-included-gettext or --without-included-gettext was given.
+if test "${with_included_gettext+set}" = set; then
+ withval="$with_included_gettext"
+ with_included_gettext=$withval
else
- echo "$ac_t""no" 1>&6
+ with_included_gettext=yes
fi
- fi
-
- if test "$gt_cv_func_gettext_libc" = "yes" \
- || test "$gt_cv_func_gettext_libintl" = "yes"; then
- cat >> confdefs.h <<\EOF
+ echo "$ac_t""$with_included_gettext" 1>&6
+ if test $with_included_gettext$ac_cv_func_gettext = nono; then
+ LIBS="$LIBS -lintl"
+ fi
+ else
+ with_included_gettext=yes
+ fi
+ if test $with_included_gettext = yes; then
+ LIBOBJS="$LIBOBJS gettext.o"
+ cat >> confdefs.h <<\EOF
#define HAVE_GETTEXT 1
EOF
- # Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3828: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_DCGETTEXT 1
+EOF
+
+ else
+ for ac_hdr in libintl.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3298: 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
- case "$MSGFMT" in
- /*)
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
- ac_cv_path_MSGFMT="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
- ;;
-esac
+ cat > conftest.$ac_ext <<EOF
+#line 3303 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3308: \"$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 "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test -n "$MSGFMT"; then
- echo "$ac_t""$MSGFMT" 1>&6
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
else
echo "$ac_t""no" 1>&6
fi
- if test "$MSGFMT" != "no"; then
- for ac_func in dcgettext
+done
+
+ for ac_func in dcgettext gettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3862: checking for $ac_func" >&5
+echo "configure:3337: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3867 "configure"
+#line 3342 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3890: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
done
- # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3917: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$GMSGFMT" in
- /*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_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
- echo "$ac_t""$GMSGFMT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- # Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3953: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$XGETTEXT" in
- /*)
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
- break
- fi
fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
- ;;
-esac
-fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test -n "$XGETTEXT"; then
- echo "$ac_t""$XGETTEXT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- cat > conftest.$ac_ext <<EOF
-#line 3985 "configure"
-#include "confdefs.h"
-
-int main() {
-extern int _nl_msg_cat_cntr;
- return _nl_msg_cat_cntr
-; return 0; }
-EOF
-if { (eval echo configure:3993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- CATOBJEXT=.gmo
- DATADIRNAME=share
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CATOBJEXT=.mo
- DATADIRNAME=lib
-fi
-rm -f conftest*
- INSTOBJEXT=.mo
- fi
- fi
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
- if test "$CATOBJEXT" = "NONE"; then
- echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
-echo "configure:4016: checking whether catgets can be used" >&5
- # Check whether --with-catgets or --without-catgets was given.
-if test "${with_catgets+set}" = set; then
- withval="$with_catgets"
- nls_cv_use_catgets=$withval
-else
- nls_cv_use_catgets=no
-fi
-
- echo "$ac_t""$nls_cv_use_catgets" 1>&6
- if test "$nls_cv_use_catgets" = "yes"; then
- echo $ac_n "checking for main in -li""... $ac_c" 1>&6
-echo "configure:4029: checking for main in -li" >&5
-ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ for ac_hdr in locale.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3395: 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
- ac_save_LIBS="$LIBS"
-LIBS="-li $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4037 "configure"
+ cat > conftest.$ac_ext <<EOF
+#line 3400 "configure"
#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
+#include <$ac_hdr>
EOF
-if { (eval echo configure:4044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3405: \"$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_lib_$ac_lib_var=yes"
+ eval "ac_cv_header_$ac_safe=yes"
else
+ echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
+ eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
-LIBS="$ac_save_LIBS"
-
fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo i | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
+#define $ac_tr_hdr 1
EOF
-
- LIBS="-li $LIBS"
-
+
else
echo "$ac_t""no" 1>&6
fi
+done
- echo $ac_n "checking for catgets""... $ac_c" 1>&6
-echo "configure:4072: checking for catgets" >&5
-if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
+ for ac_func in getcwd setlocale stpcpy
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3434: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4077 "configure"
+#line 3439 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char catgets(); below. */
+ which can conflict with char $ac_func(); below. */
#include <assert.h>
/* 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. */
-char catgets();
+char $ac_func();
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_catgets) || defined (__stub___catgets)
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
-catgets();
+$ac_func();
#endif
; return 0; }
EOF
-if { (eval echo configure:4100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_func_catgets=yes"
+ eval "ac_cv_func_$ac_func=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- eval "ac_cv_func_catgets=no"
+ eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*
fi
-if eval "test \"`echo '$ac_cv_func_'catgets`\" = yes"; then
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_CATGETS 1
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
EOF
-
- INTLOBJS="\$(CATOBJS)"
- # Extract the first word of "gencat", so it can be a program name with args.
-set dummy gencat; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4122: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$GENCAT" in
- /*)
- ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_GENCAT="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_GENCAT" && ac_cv_path_GENCAT="no"
- ;;
-esac
-fi
-GENCAT="$ac_cv_path_GENCAT"
-if test -n "$GENCAT"; then
- echo "$ac_t""$GENCAT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- if test "$GENCAT" != "no"; then
- # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4158: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$GMSGFMT" in
- /*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no"
- ;;
-esac
-fi
-GMSGFMT="$ac_cv_path_GMSGFMT"
-if test -n "$GMSGFMT"; then
- echo "$ac_t""$GMSGFMT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test "$GMSGFMT" = "no"; then
- # Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4195: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$GMSGFMT" in
- /*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
- ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no"
- ;;
-esac
-fi
-GMSGFMT="$ac_cv_path_GMSGFMT"
-if test -n "$GMSGFMT"; then
- echo "$ac_t""$GMSGFMT" 1>&6
+
else
echo "$ac_t""no" 1>&6
fi
+done
- fi
- # Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4230: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ if test $ac_cv_header_locale_h = yes; then
+ echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+echo "configure:3488: checking for LC_MESSAGES" >&5
+if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- case "$XGETTEXT" in
- /*)
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
- ;;
-esac
-fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test -n "$XGETTEXT"; then
- echo "$ac_t""$XGETTEXT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.cat
- INSTOBJEXT=.cat
- DATADIRNAME=lib
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
- fi
-
- if test "$CATOBJEXT" = "NONE"; then
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- INTLOBJS="\$(GETTOBJS)"
- # Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4288: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
+ cat > conftest.$ac_ext <<EOF
+#line 3493 "configure"
+#include "confdefs.h"
+#include <locale.h>
+int main() {
+return LC_MESSAGES
+; return 0; }
+EOF
+if { (eval echo configure:3500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ am_cv_val_LC_MESSAGES=yes
else
- case "$MSGFMT" in
- /*)
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
- ac_cv_path_MSGFMT="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
- ;;
-esac
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ am_cv_val_LC_MESSAGES=no
fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test -n "$MSGFMT"; then
- echo "$ac_t""$MSGFMT" 1>&6
-else
- echo "$ac_t""no" 1>&6
+rm -f conftest*
fi
- # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4322: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$GMSGFMT" in
- /*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_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
- echo "$ac_t""$GMSGFMT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
+echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_LC_MESSAGES 1
+EOF
- # Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4358: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$XGETTEXT" in
- /*)
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
- break
- fi
fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
- ;;
-esac
-fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test -n "$XGETTEXT"; then
- echo "$ac_t""$XGETTEXT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.gmo
- INSTOBJEXT=.mo
- DATADIRNAME=share
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
-
- if test "$XGETTEXT" != ":"; then
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
- : ;
- else
- echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" 1>&6
- XGETTEXT=":"
- fi
- fi
+ fi
- # We need to process the po/ directory.
- POSUB=po
+ if test -z "$ALL_LINGUAS"; then
+ echo "configure: warning: This package does not install translations yet." 1>&2
else
- DATADIRNAME=share
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
+ ac_items="$ALL_LINGUAS"
+ for ac_item in $ac_items; do
+ ALL_POFILES="$ALL_POFILES $ac_item.po"
+ ALL_MOFILES="$ALL_MOFILES $ac_item.mo"
+ done
fi
+
-
- # If this is used in GNU gettext we have to set USE_NLS to `yes'
- # because some of the sources are only built for this goal.
- if test "$PACKAGE" = gettext; then
- USE_NLS=yes
- USE_INCLUDED_LIBINTL=yes
+ echo $ac_n "checking which translations to install""... $ac_c" 1>&6
+echo "configure:3535: checking which translations to install" >&5
+ if test -z "$LINGUAS"; then
+ ac_print="$ALL_LINGUAS"
+ MOFILES="$ALL_MOFILES"
+ else
+ ac_items="$LINGUAS"
+ for ac_item in $ac_items; do
+ case "$ALL_LINGUAS" in
+ *$ac_item*)
+ ac_print="$ac_print $ac_item"
+ MOFILES="$MOFILES $ac_item.mo"
+ ;;
+ esac
+ done
fi
-
- for lang in $ALL_LINGUAS; do
- GMOFILES="$GMOFILES $lang.gmo"
- POFILES="$POFILES $lang.po"
- done
-
-
-
-
-
-
-
-
-
-
-
-
-
- if test "x$CATOBJEXT" != "x"; then
- if test "x$ALL_LINGUAS" = "x"; then
- LINGUAS=
- else
- echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:4451: checking for catalogs to be installed" >&5
- NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
- done
- LINGUAS=$NEW_LINGUAS
- echo "$ac_t""$LINGUAS" 1>&6
- fi
-
- if test -n "$LINGUAS"; then
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
- fi
- fi
-
- if test $ac_cv_header_locale_h = yes; then
- INCLUDE_LOCALE_H="#include <locale.h>"
- else
- INCLUDE_LOCALE_H="\
-/* The system does not provide the header <locale.h>. Take care yourself. */"
- fi
-
+ if test -z "$ac_print"; then
+ echo "$ac_t""none" 1>&6
+ else
+ echo "$ac_t""$ac_print" 1>&6
+ fi
- test -d intl || mkdir intl
- if test "$CATOBJEXT" = ".cat"; then
- ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
-echo "configure:4479: checking for linux/version.h" >&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 <<EOF
-#line 4484 "configure"
-#include "confdefs.h"
-#include <linux/version.h>
+ if test "x$prefix" = xNONE; then
+ cat >> confdefs.h <<EOF
+#define LOCALEDIR "$ac_default_prefix/share/locale"
EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4489: \"$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 "configure: 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
- msgformat=linux
-else
- echo "$ac_t""no" 1>&6
-msgformat=xopen
-fi
+ else
+ cat >> confdefs.h <<EOF
+#define LOCALEDIR "$prefix/share/locale"
+EOF
- sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
- fi
- sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
- $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
-
- if test "$PACKAGE" = "gettext"; then
- GT_NO="#NO#"
- GT_YES=
- else
- GT_NO=
- GT_YES="#YES#"
- fi
-
-
+ fi
+ fi
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
-
-
- l=
-
-
- test -d po || mkdir po
- if test "x$srcdir" != "x."; then
- if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
- posrcprefix="$srcdir/"
- else
- posrcprefix="../$srcdir/"
- fi
- else
- posrcprefix="../"
- fi
- rm -f po/POTFILES
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
-
+# This is necessary so that .o files in LIBOBJS are also built via
+# the ANSI2KNR-filtering rules.
+LIBOBJS=`echo $LIBOBJS | sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
-LTALLOCA=`echo "$ALLOCA" | sed 's/\.o/.lo/g'`
+LTALLOCA=`echo $ALLOCA | sed 's/\.o/.lo/g'`
-LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'`
+LTLIBOBJS=`echo $LIBOBJS | sed 's/\.o /.lo /g;s/\.o$/.lo/'`
trap '' 1 2 15
ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
-trap 'rm -fr `echo "Makefile contrib/Makefile doc/Makefile intl/Makefile lib/Makefile
-m4/Makefile po/Makefile.in src/Makefile tests/Makefile tests/atconfig config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
+m4/Makefile src/Makefile tests/Makefile tests/atconfig config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
s%@AT_TESTPATH@%$AT_TESTPATH%g
s%@ECHO_N@%$ECHO_N%g
s%@ECHO_C@%$ECHO_C%g
-s%@AWK@%$AWK%g
s%@CC@%$CC%g
s%@CPP@%$CPP%g
s%@host@%$host%g
s%@build_vendor@%$build_vendor%g
s%@build_os@%$build_os%g
s%@RANLIB@%$RANLIB%g
-s%@LD@%$LD%g
-s%@NM@%$NM%g
s%@LN_S@%$LN_S%g
s%@LIBTOOL@%$LIBTOOL%g
s%@U@%$U%g
s%@LEX@%$LEX%g
s%@LEXLIB@%$LEXLIB%g
s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g
+s%@LIBOBJS@%$LIBOBJS%g
s%@ALLOCA@%$ALLOCA%g
-s%@USE_NLS@%$USE_NLS%g
-s%@MSGFMT@%$MSGFMT%g
-s%@GMSGFMT@%$GMSGFMT%g
-s%@XGETTEXT@%$XGETTEXT%g
-s%@GENCAT@%$GENCAT%g
-s%@USE_INCLUDED_LIBINTL@%$USE_INCLUDED_LIBINTL%g
-s%@CATALOGS@%$CATALOGS%g
-s%@CATOBJEXT@%$CATOBJEXT%g
-s%@DATADIRNAME@%$DATADIRNAME%g
-s%@GMOFILES@%$GMOFILES%g
-s%@INSTOBJEXT@%$INSTOBJEXT%g
-s%@INTLDEPS@%$INTLDEPS%g
-s%@INTLLIBS@%$INTLLIBS%g
-s%@INTLOBJS@%$INTLOBJS%g
-s%@POFILES@%$POFILES%g
-s%@POSUB@%$POSUB%g
-s%@INCLUDE_LOCALE_H@%$INCLUDE_LOCALE_H%g
-s%@GT_NO@%$GT_NO%g
-s%@GT_YES@%$GT_YES%g
-s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g
-s%@l@%$l%g
+s%@USE_NLS_TRUE@%$USE_NLS_TRUE%g
+s%@USE_NLS_FALSE@%$USE_NLS_FALSE%g
+s%@ALL_LINGUAS@%$ALL_LINGUAS%g
+s%@ALL_POFILES@%$ALL_POFILES%g
+s%@ALL_MOFILES@%$ALL_MOFILES%g
+s%@MOFILES@%$MOFILES%g
s%@LTALLOCA@%$LTALLOCA%g
s%@LTLIBOBJS@%$LTLIBOBJS%g
cat >> $CONFIG_STATUS <<EOF
-CONFIG_FILES=\${CONFIG_FILES-"Makefile contrib/Makefile doc/Makefile intl/Makefile lib/Makefile
-m4/Makefile po/Makefile.in src/Makefile tests/Makefile tests/atconfig"}
+CONFIG_FILES=\${CONFIG_FILES-"Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
+m4/Makefile src/Makefile tests/Makefile tests/atconfig"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
fi
fi; done
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-ac_sources="$nls_cv_header_libgt"
-ac_dests="$nls_cv_header_intl"
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-srcdir=$ac_given_srcdir
-while test -n "$ac_sources"; do
- set $ac_dests; ac_dest=$1; shift; ac_dests=$*
- set $ac_sources; ac_source=$1; shift; ac_sources=$*
-
- echo "linking $srcdir/$ac_source to $ac_dest"
-
- if test ! -r $srcdir/$ac_source; then
- { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; }
- fi
- rm -f $ac_dest
-
- # Make relative symlinks.
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
- # The dest file is in a subdirectory.
- test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
- ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dest_dir_suffix.
- ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dest_dir_suffix= ac_dots=
- fi
-
- case "$srcdir" in
- [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
- *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
- esac
-
- # Make a symlink if possible; otherwise try a hard link.
- if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
- ln $srcdir/$ac_source $ac_dest; then :
- else
- { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; }
- fi
-done
EOF
cat >> $CONFIG_STATUS <<EOF
-
EOF
cat >> $CONFIG_STATUS <<\EOF
test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
-case "$CONFIG_FILES" in *po/Makefile.in*)
- sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
- esac
exit 0
EOF
AC_INIT(src/recode.c)
AC_PREREQ(2.12)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(recode, 3.5)
+AM_INIT_AUTOMAKE(recode, 3.5a)
AT_CONFIG(../src)
-ALL_LINGUAS="da de es fr nl pl pt sl sv"
+ALL_LINGUAS="da de el es fr it nl pl pt sl sv"
-AC_PROG_AWK
AC_PROG_CC
AC_AIX
AC_MINIX
AC_TYPE_SIGNAL
AC_CHECK_FUNCS(dup2 rename strerror)
+AC_REPLACE_FUNCS(strtol strtoul)
+AC_FUNC_ALLOCA
AC_FUNC_VPRINTF
+jm_FUNC_MALLOC
+jm_FUNC_REALLOC
+AC_SUBST(LIBOBJS)
+
fp_OS_MICROSOFT
AC_MSG_CHECKING(the default charset)
if test -n "${DEFAULT_CHARSET+set}"; then
AC_DEFINE(DEFAULT_CHARSET, "IBM-PC")
fi
-jm_FUNC_MALLOC
-jm_FUNC_REALLOC
AM_WITH_DMALLOC
+fp_WITH_GETTEXT
-AM_GNU_GETTEXT
+# This is necessary so that .o files in LIBOBJS are also built via
+# the ANSI2KNR-filtering rules.
+LIBOBJS=`echo $LIBOBJS | sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
-LTALLOCA=`echo "$ALLOCA" | sed 's/\.o/.lo/g'`
+LTALLOCA=`echo $ALLOCA | sed 's/\.o/.lo/g'`
AC_SUBST(LTALLOCA)
-LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'`
+LTLIBOBJS=`echo $LIBOBJS | sed 's/\.o /.lo /g;s/\.o$/.lo/'`
AC_SUBST(LTLIBOBJS)
-AC_OUTPUT(Makefile contrib/Makefile doc/Makefile intl/Makefile lib/Makefile
-m4/Makefile po/Makefile.in src/Makefile tests/Makefile tests/atconfig)
+AC_OUTPUT(Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
+m4/Makefile src/Makefile tests/Makefile tests/atconfig)
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_MOFILES = @ALL_MOFILES@
+ALL_POFILES = @ALL_POFILES@
AS = @AS@
AT_TESTPATH = @AT_TESTPATH@
-AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
-LD = @LD@
LEX = @LEX@
+LIBOBJS = @LIBOBJS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
+MOFILES = @MOFILES@
MSGFMT = @MSGFMT@
-NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
ftp://nic.ddn.mil/rfc/rfc2044.txt
François Yergeau <yergeau@alis.com>, 1997-10.
+. - Various references
+
+. : Unicode charset mappings
+ ftp://ftp.unicode.org:/Public/MAPPINGS/
+
+ The Unicode consortium makes available plenty of charset mappings
+ for converting "legacy" charsets to Unicode.
+
. - Normalisation et internationalisation: Inventaire et prospectives des
normes clefs pour le traitement informatique du français. (392p.)
+1999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * recode.texi: Show program_name in the examples for the library
+ usage, and document its purpose.
+ Reported by Kristian Köhntopp and Pawel Krawczyk.
+
+1999-11-27 François Pinard <pinard@iro.umontreal.ca>
+
+ * recode.texi (MIME contents encoding, UTF-7): Adjust RFC numbers
+ and correct historical note.
+ Reported by Neal McBurnett.
+
+1999-09-27 François Pinard <pinard@iro.umontreal.ca>
+
+ * tables.py: Python version of tables.pl.
+ * tables.pl: Deleted.
+ * Makefile.am, Makemore: Adjusted.
+
+1999-06-22 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * recode.texi (Top): Use @ifnottex instead of @ifinfo.
+\f
1999-04-27 François Pinard <pinard@iro.umontreal.ca>
* recode.texi: Do not use od in examples, recode can do it itself.
# Makefile for `recode' documentation.
-# Copyright © 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright © 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
# François Pinard <pinard@iro.umontreal.ca>
# This program is free software; you can redistribute it and/or modify
AUTOMAKE_OPTIONS = gnits
info_TEXINFOS = recode.texi
-man_MANS = recode.1
-EXTRA_DIST = charset.texi File-Latin1 help2man $(MANS) Makemore \
-tables.pl
-
-PERL = perl
+EXTRA_DIST = charset.texi File-Latin1 help2man Makemore tables.py
recode.info: charset.texi
recode.dvi: charset.texi
-
-recode.1: help2man $(top_srcdir)/src/main.c
- @if test -f ../src/recode; then \
- echo "Updating the \`man' page for \`recode'"; \
- LANGUAGE=C $(PERL) $(srcdir)/help2man ../src/recode > recode.1-tmp; \
- mv recode.1-tmp $(srcdir)/recode.1; \
- else \
- echo "WARNING: The \`man' page for \`recode' cannot be updated yet."; \
- echo " Retry once the program executable will be ready."; \
- fi
# PARTICULAR PURPOSE.
# Makefile for `recode' documentation.
-# Copyright © 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright © 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
# François Pinard <pinard@iro.umontreal.ca>
# This program is free software; you can redistribute it and/or modify
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_MOFILES = @ALL_MOFILES@
+ALL_POFILES = @ALL_POFILES@
AS = @AS@
AT_TESTPATH = @AT_TESTPATH@
-AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
-LD = @LD@
LEX = @LEX@
+LIBOBJS = @LIBOBJS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
+MOFILES = @MOFILES@
MSGFMT = @MSGFMT@
-NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
AUTOMAKE_OPTIONS = gnits
info_TEXINFOS = recode.texi
-man_MANS = recode.1
-EXTRA_DIST = charset.texi File-Latin1 help2man $(MANS) Makemore tables.pl
-
-
-PERL = perl
+EXTRA_DIST = charset.texi File-Latin1 help2man Makemore tables.py
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
INFO_DEPS = recode.info
DVIS = recode.dvi
TEXINFOS = recode.texi
-man1dir = $(mandir)/man1
-MANS = $(man_MANS)
-
-NROFF = nroff
DIST_COMMON = ChangeLog Makefile.am Makefile.in mdate-sh stamp-vti \
texinfo.tex version.texi
rm -f $$i-[0-9]*; \
fi; \
done
-
-install-man1:
- $(mkinstalldirs) $(DESTDIR)$(man1dir)
- @list='$(man1_MANS)'; \
- l2='$(man_MANS)'; for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
- done
-
-uninstall-man1:
- @list='$(man1_MANS)'; \
- l2='$(man_MANS)'; for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
- rm -f $(DESTDIR)$(man1dir)/$$inst; \
- done
-install-man: $(MANS)
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-man1
-uninstall-man:
- @$(NORMAL_UNINSTALL)
- $(MAKE) $(AM_MAKEFLAGS) uninstall-man1
tags: TAGS
TAGS:
install-exec-am:
install-exec: install-exec-am
-install-data-am: install-info-am install-man
+install-data-am: install-info-am
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
-uninstall-am: uninstall-info uninstall-man
+uninstall-am: uninstall-info
uninstall: uninstall-am
-all-am: Makefile $(INFO_DEPS) $(MANS)
+all-am: Makefile $(INFO_DEPS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1
+ $(mkinstalldirs) $(DESTDIR)$(infodir)
mostlyclean-generic:
.PHONY: mostlyclean-vti distclean-vti clean-vti maintainer-clean-vti \
install-info-am uninstall-info mostlyclean-aminfo distclean-aminfo \
-clean-aminfo maintainer-clean-aminfo install-man1 uninstall-man1 \
-install-man uninstall-man tags distdir info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+clean-aminfo maintainer-clean-aminfo tags distdir info-am info dvi-am \
+dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
recode.info: charset.texi
recode.dvi: charset.texi
-recode.1: help2man $(top_srcdir)/src/main.c
- @if test -f ../src/recode; then \
- echo "Updating the \`man' page for \`recode'"; \
- LANGUAGE=C $(PERL) $(srcdir)/help2man ../src/recode > recode.1-tmp; \
- mv recode.1-tmp $(srcdir)/recode.1; \
- else \
- echo "WARNING: The \`man' page for \`recode' cannot be updated yet."; \
- echo " Retry once the program executable will be ready."; \
- fi
-
# 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:
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
-#essai:
-# $(PERL) $(srcdir)/tables.pl -n \
-# $(srcdir)/$(MNEMONICS_DS) $(srcdir)/$(ISO10646_DEF)
-
include Makefile
## Some files in the `recode' distribution are mechanically derived
## For activating the included recipes, it suffices to link this
## `Makemore' file as `GNUmakefile' in the `doc/' directory of your
-## *build* hierarchy. You need GNU make, GNU wget, Perl and Internet
+## *build* hierarchy. You need GNU make, GNU wget, Python and Internet
## connectivity for all this to work. However, be warned that if
## external files changed, you may be hit. I am interested in hearing
## about such problems (maybe at `recode-bugs@iro.umontreal.ca'), but
NOMS_CARACS = noms_juc_19981216.txt
MAPURL = ftp://ftp.unicode.org/MAPPINGS
-PERL = perl -w
+PYTHON = python
SURF = netscape
+WGET = wget
# Merely add our things to standard `all' goal.
all: $(srcdir)/charset.texi $(srcdir)/fr-charset.texi \
# may launch many parallel occurrences of the action. This is bad.
# Any idea, someone? For now, just list one of them.
-$(srcdir)/charset.texi: tables.pl $(MNEMONICS_DS) $(CHARSETS_DEF)
- $(PERL) $(srcdir)/tables.pl -p -t \
+$(srcdir)/charset.texi: tables.py $(MNEMONICS_DS) $(CHARSETS_DEF)
+ $(PYTHON) $(srcdir)/tables.py -pt \
$(srcdir)/$(MNEMONICS_DS) $(srcdir)/$(CHARSETS_DEF)
test $(srcdir) = . || mv charset.texi $@
mv strip-pool.c $(top_srcdir)/src/strip-pool.c
mv strip-data.c $(top_srcdir)/src/strip-data.c
-$(top_srcdir)/src/charname.h: tables.pl $(MNEMONICS_DS) rfc1345.txt
- $(PERL) $(srcdir)/tables.pl -n \
+$(top_srcdir)/src/charname.h: tables.py $(MNEMONICS_DS) rfc1345.txt
+ $(PYTHON) $(srcdir)/tables.py -n \
$(srcdir)/$(MNEMONICS_DS) $(srcdir)/rfc1345.txt
mv charname.h $@
-$(top_srcdir)/src/rfc1345.h: tables.pl $(MNEMONICS_DS)
- $(PERL) $(srcdir)/tables.pl -m $(srcdir)/$(MNEMONICS_DS)
+$(top_srcdir)/src/rfc1345.h: tables.py $(MNEMONICS_DS)
+ $(PYTHON) $(srcdir)/tables.py -m $(srcdir)/$(MNEMONICS_DS)
mv rfc1345.h $@
-$(srcdir)/fr-charset.texi: tables.pl $(CHARSETS_DEF)
- $(PERL) $(srcdir)/tables.pl -F -t $(srcdir)/$(CHARSETS_DEF)
+$(srcdir)/fr-charset.texi: tables.py $(CHARSETS_DEF)
+ $(PYTHON) $(srcdir)/tables.py -Ft $(srcdir)/$(CHARSETS_DEF)
test $(srcdir) = . || mv fr-charset.texi $@
-$(top_srcdir)/src/fr-charname.h: tables.pl $(NOMS_CARACS)
- $(PERL) $(srcdir)/tables.pl -F -n $(srcdir)/$(NOMS_CARACS)
+$(top_srcdir)/src/fr-charname.h: tables.py $(NOMS_CARACS)
+ $(PYTHON) $(srcdir)/tables.py -Fn $(srcdir)/$(NOMS_CARACS)
mv fr-charname.h $@
# -----------------------------------#
# -----------------------------------#
$(srcdir)/rfc1345.txt:
- wget ftp://nic.ddn.mil/rfc/rfc1345.txt
+ $(WGET) ftp://nic.ddn.mil/rfc/rfc1345.txt
test $(srcdir) = . || mv rfc1345.txt $@
$(srcdir)/$(CHSET)/charsets.def: $(srcdir)/$(CHSET)
$(srcdir)/$(CHSET):
mkdir $@-tmp
- wget ftp://dkuug.dk/pub/$(CHSET).tar
+ $(WGET) ftp://dkuug.dk/pub/$(CHSET).tar
tar xfC $(CHSET).tar $@-tmp
rm $(CHSET).tar
mv $@-tmp $@
# Also look in `ftp://dkuug.dk/i18n/WG15-collection/charmaps/iso10646'.
$(srcdir)/mnemonic,ds:
- wget ftp://dkuug.dk/i18n/WG15-collection/repertoiremaps/mnemonic,ds
+ $(WGET) ftp://dkuug.dk/i18n/WG15-collection/repertoiremaps/mnemonic,ds
test $(srcdir) = . || mv mnemonic,ds $@
# -------------------------------------------------#
# -------------------------------------------------#
$(srcdir)/cp1250.txt:
- wget $(MAPURL)/VENDORS/MICSFT/WINDOWS/CP1250.TXT
+ $(WGET) $(MAPURL)/VENDORS/MICSFT/WINDOWS/CP1250.TXT
mv CP1250.TXT $@
$(srcdir)/cp1251.txt:
- wget $(MAPURL)/VENDORS/MICSFT/WINDOWS/CP1251.TXT
+ $(WGET) $(MAPURL)/VENDORS/MICSFT/WINDOWS/CP1251.TXT
mv CP1251.TXT $@
$(srcdir)/cp1252.txt:
- wget $(MAPURL)/VENDORS/MICSFT/WINDOWS/CP1252.TXT
+ $(WGET) $(MAPURL)/VENDORS/MICSFT/WINDOWS/CP1252.TXT
mv CP1252.TXT $@
# Index at `http://www.dkuug.dk/jtc1/sc22/wg20/docs/projects.html.en'.
i18n.txt:
- wget http://www.dkuug.dk/jtc1/sc22/wg20/docs/i18n.txt
+ $(WGET) http://www.dkuug.dk/jtc1/sc22/wg20/docs/i18n.txt
i18nrep.txt:
- wget http://www.dkuug.dk/jtc1/sc22/wg20/docs/i18nrep.txt
+ $(WGET) http://www.dkuug.dk/jtc1/sc22/wg20/docs/i18nrep.txt
# Various files.
iso2375reg.txt:
- wget ftp://dkuug.dk/i18n/iso2375reg.txt
+ $(WGET) ftp://dkuug.dk/i18n/iso2375reg.txt
# Online documentation.
# Index at `http://osiris.dkuug.dk/jtc1/sc2/wg3'.
@item ANSI_X3.4-1968
+@tindex ANSI_X3.4-1968@r{, aliases and source}
+@tindex 367
+@tindex ANSI_X3.4-1986
+@tindex ASCII
+@tindex CP367
+@tindex IBM367
+@tindex ISO646-US
+@tindex ISO_646.irv:1991
+@tindex US-ASCII
+@tindex iso-ir-6
+@tindex us
@code{367}, @code{ANSI_X3.4-1986}, @code{ASCII}, @code{CP367}, @code{IBM367}, @code{ISO646-US}, @code{ISO_646.irv:1991}, @code{US-ASCII}, @code{iso-ir-6} and @code{us} are aliases for this charset.
Source: ISO 2375 registry.
@item ASMO_449
+@tindex ASMO_449@r{, aliases and source}
+@tindex ISO_9036
+@tindex arabic7
+@tindex iso-ir-89
@code{ISO_9036}, @code{arabic7} and @code{iso-ir-89} are aliases for this charset.
Source: ISO 2375 registry.
@item BS_4730
+@tindex BS_4730@r{, aliases and source}
+@tindex ISO646-GB
+@tindex gb
+@tindex iso-ir-4
+@tindex uk
@code{ISO646-GB}, @code{gb}, @code{iso-ir-4} and @code{uk} are aliases for this charset.
Source: ISO 2375 registry.
@item BS_viewdata
+@tindex BS_viewdata@r{, aliases and source}
+@tindex iso-ir-47
@code{iso-ir-47} is an alias for this charset.
Source: ISO 2375 registry.
@item CP1250
+@tindex CP1250@r{, aliases and source}
+@tindex 1250
+@tindex ms-ee
+@tindex windows-1250
@code{1250}, @code{ms-ee} and @code{windows-1250} are aliases for this charset.
Source: UNICODE 1.0.
@item CP1251
+@tindex CP1251@r{, aliases and source}
+@tindex 1251
+@tindex ms-cyrl
+@tindex windows-1251
@code{1251}, @code{ms-cyrl} and @code{windows-1251} are aliases for this charset.
Source: UNICODE 1.0.
@item CP1252
+@tindex CP1252@r{, aliases and source}
+@tindex 1252
+@tindex ms-ansi
+@tindex windows-1252
@code{1252}, @code{ms-ansi} and @code{windows-1252} are aliases for this charset.
Source: UNICODE 1.0.
@item CP1253
+@tindex CP1253@r{, aliases and source}
+@tindex 1253
+@tindex ms-greek
+@tindex windows-1253
@code{1253}, @code{ms-greek} and @code{windows-1253} are aliases for this charset.
Source: UNICODE 1.0.
@item CP1254
+@tindex CP1254@r{, aliases and source}
+@tindex 1254
+@tindex ms-turk
+@tindex windows-1254
@code{1254}, @code{ms-turk} and @code{windows-1254} are aliases for this charset.
Source: UNICODE 1.0.
@item CP1255
+@tindex CP1255@r{, aliases and source}
+@tindex 1255
+@tindex ms-hebr
+@tindex windows-1255
@code{1255}, @code{ms-hebr} and @code{windows-1255} are aliases for this charset.
Source: UNICODE 1.0.
@item CP1256
+@tindex CP1256@r{, aliases and source}
+@tindex 1256
+@tindex ms-arab
+@tindex windows-1256
@code{1256}, @code{ms-arab} and @code{windows-1256} are aliases for this charset.
Source: UNICODE 1.0.
@item CP1257
+@tindex CP1257@r{, aliases and source}
+@tindex 1257
+@tindex WinBaltRim
+@tindex windows-1257
@code{1257}, @code{WinBaltRim} and @code{windows-1257} are aliases for this charset.
Source: CEN/TC304 N283.
@item CSA_Z243.4-1985-1
+@tindex CSA_Z243.4-1985-1@r{, aliases and source}
+@tindex ISO646-CA
+@tindex ca
+@tindex csa7-1
+@tindex iso-ir-121
@code{ISO646-CA}, @code{ca}, @code{csa7-1} and @code{iso-ir-121} are aliases for this charset.
Source: ISO 2375 registry.
@item CSA_Z243.4-1985-2
+@tindex CSA_Z243.4-1985-2@r{, aliases and source}
+@tindex ISO646-CA2
+@tindex csa7-2
+@tindex iso-ir-122
@code{ISO646-CA2}, @code{csa7-2} and @code{iso-ir-122} are aliases for this charset.
Source: ISO 2375 registry.
@item CSA_Z243.4-1985-gr
+@tindex CSA_Z243.4-1985-gr@r{, aliases and source}
+@tindex iso-ir-123
@code{iso-ir-123} is an alias for this charset.
Source: ISO 2375 registry.
@item CSN_369103
+@tindex CSN_369103@r{, aliases and source}
+@tindex KOI-8_L2
+@tindex iso-ir-139
+@tindex koi8l2
@code{KOI-8_L2}, @code{iso-ir-139} and @code{koi8l2} are aliases for this charset.
Source: ISO 2375 registry.
@item CWI
+@tindex CWI@r{, aliases and source}
+@tindex CWI-2
+@tindex cp-hu
@code{CWI-2} and @code{cp-hu} are aliases for this charset.
Source: Computerworld Sza'mita'stechnika vol 3 issue 13 1988-06-29.
@item DEC-MCS
+@tindex DEC-MCS@r{, aliases and source}
+@tindex dec
@code{dec} is an alias for this charset.
VAX/VMS User's Manual, Order Number: AI-Y517A-TE, April 1986.
@item DIN_66003
+@tindex DIN_66003@r{, aliases and source}
+@tindex ISO646-DE
+@tindex de
+@tindex iso-ir-21
@code{ISO646-DE}, @code{de} and @code{iso-ir-21} are aliases for this charset.
Source: ISO 2375 registry.
@item DS_2089
+@tindex DS_2089@r{, aliases and source}
+@tindex DS2089
+@tindex ISO646-DK
+@tindex dk
@code{DS2089}, @code{ISO646-DK} and @code{dk} are aliases for this charset.
Source: Danish Standard, DS 2089, February 1974.
@item EBCDIC-AT-DE
+@tindex EBCDIC-AT-DE@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-AT-DE-A
+@tindex EBCDIC-AT-DE-A@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-CA-FR
+@tindex EBCDIC-CA-FR@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-DK-NO
+@tindex EBCDIC-DK-NO@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-DK-NO-A
+@tindex EBCDIC-DK-NO-A@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-ES
+@tindex EBCDIC-ES@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-ES-A
+@tindex EBCDIC-ES-A@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-ES-S
+@tindex EBCDIC-ES-S@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-FI-SE
+@tindex EBCDIC-FI-SE@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-FI-SE-A
+@tindex EBCDIC-FI-SE-A@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-FR
+@tindex EBCDIC-FR@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-IS-FRISS
+@tindex EBCDIC-IS-FRISS@r{, aliases and source}
+@tindex friss
@code{friss} is an alias for this charset.
Source: Skyrsuvelar Rikisins og Reykjavikurborgar, feb 1982.
@item EBCDIC-IT
+@tindex EBCDIC-IT@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-PT
+@tindex EBCDIC-PT@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-UK
+@tindex EBCDIC-UK@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item EBCDIC-US
+@tindex EBCDIC-US@r{, aliases and source}
Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
@item ECMA-cyrillic
+@tindex ECMA-cyrillic@r{, aliases and source}
+@tindex ECMA-113
+@tindex ECMA-113:1986
+@tindex iso-ir-111
@code{ECMA-113}, @code{ECMA-113:1986} and @code{iso-ir-111} are aliases for this charset.
Source: ISO 2375 registry.
@item ES
+@tindex ES@r{, aliases and source}
+@tindex ISO646-ES
+@tindex iso-ir-17
@code{ISO646-ES} and @code{iso-ir-17} are aliases for this charset.
Source: ISO 2375 registry.
@item ES2
+@tindex ES2@r{, aliases and source}
+@tindex ISO646-ES2
+@tindex iso-ir-85
@code{ISO646-ES2} and @code{iso-ir-85} are aliases for this charset.
Source: ISO 2375 registry.
@item GB_1988-80
+@tindex GB_1988-80@r{, aliases and source}
+@tindex ISO646-CN
+@tindex cn
+@tindex iso-ir-57
@code{ISO646-CN}, @code{cn} and @code{iso-ir-57} are aliases for this charset.
Source: ISO 2375 registry.
@item GOST_19768-87
+@tindex GOST_19768-87@r{, aliases and source}
+@tindex ST_SEV_358-88
+@tindex iso-ir-153
@code{ST_SEV_358-88} and @code{iso-ir-153} are aliases for this charset.
Source: ISO 2375 registry.
@item IBM037
+@tindex IBM037@r{, aliases and source}
+@tindex 037
+@tindex CP037
+@tindex ebcdic-cp-ca
+@tindex ebcdic-cp-nl
+@tindex ebcdic-cp-us
+@tindex ebcdic-cp-wt
@code{037}, @code{CP037}, @code{ebcdic-cp-ca}, @code{ebcdic-cp-nl}, @code{ebcdic-cp-us} and @code{ebcdic-cp-wt} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM038
+@tindex IBM038@r{, aliases and source}
+@tindex 038
+@tindex CP038
+@tindex EBCDIC-INT
@code{038}, @code{CP038} and @code{EBCDIC-INT} are aliases for this charset.
Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
@item IBM1004
+@tindex IBM1004@r{, aliases and source}
+@tindex 1004
+@tindex CP1004
+@tindex os2latin1
@code{1004}, @code{CP1004} and @code{os2latin1} are aliases for this charset.
Source: CEN/TC304 N283, 1994-02-04.
@item IBM1026
+@tindex IBM1026@r{, aliases and source}
+@tindex 1026
+@tindex CP1026
@code{1026} and @code{CP1026} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM1047
+@tindex IBM1047@r{, aliases and source}
+@tindex 1047
+@tindex CP1047
@code{1047} and @code{CP1047} are aliases for this charset.
Source: IBM Character Data Representation Architecture.
Registry SC09-1391-00 p 150.
@item IBM256
+@tindex IBM256@r{, aliases and source}
+@tindex 256
+@tindex CP256
+@tindex EBCDIC-INT1
@code{256}, @code{CP256} and @code{EBCDIC-INT1} are aliases for this charset.
Source: IBM Registry C-H 3-3220-050.
@item IBM273
+@tindex IBM273@r{, aliases and source}
+@tindex 273
+@tindex CP273
@code{273} and @code{CP273} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM274
+@tindex IBM274@r{, aliases and source}
+@tindex 274
+@tindex CP274
+@tindex EBCDIC-BE
@code{274}, @code{CP274} and @code{EBCDIC-BE} are aliases for this charset.
Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
@item IBM275
+@tindex IBM275@r{, aliases and source}
+@tindex 275
+@tindex CP275
+@tindex EBCDIC-BR
@code{275}, @code{CP275} and @code{EBCDIC-BR} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM277
+@tindex IBM277@r{, aliases and source}
+@tindex EBCDIC-CP-DK
+@tindex EBCDIC-CP-NO
@code{EBCDIC-CP-DK} and @code{EBCDIC-CP-NO} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM278
+@tindex IBM278@r{, aliases and source}
+@tindex 278
+@tindex CP278
+@tindex ebcdic-cp-fi
+@tindex ebcdic-cp-se
@code{278}, @code{CP278}, @code{ebcdic-cp-fi} and @code{ebcdic-cp-se} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM280
+@tindex IBM280@r{, aliases and source}
+@tindex 280
+@tindex CP280
+@tindex ebcdic-cp-it
@code{280}, @code{CP280} and @code{ebcdic-cp-it} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM281
+@tindex IBM281@r{, aliases and source}
+@tindex 281
+@tindex CP281
+@tindex EBCDIC-JP-E
@code{281}, @code{CP281} and @code{EBCDIC-JP-E} are aliases for this charset.
Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
@item IBM284
+@tindex IBM284@r{, aliases and source}
+@tindex 284
+@tindex CP284
+@tindex ebcdic-cp-es
@code{284}, @code{CP284} and @code{ebcdic-cp-es} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM285
+@tindex IBM285@r{, aliases and source}
+@tindex 285
+@tindex CP285
+@tindex ebcdic-cp-gb
@code{285}, @code{CP285} and @code{ebcdic-cp-gb} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM290
+@tindex IBM290@r{, aliases and source}
+@tindex 290
+@tindex CP290
+@tindex EBCDIC-JP-kana
@code{290}, @code{CP290} and @code{EBCDIC-JP-kana} are aliases for this charset.
Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
@item IBM297
+@tindex IBM297@r{, aliases and source}
+@tindex 297
+@tindex CP297
+@tindex ebcdic-cp-fr
@code{297}, @code{CP297} and @code{ebcdic-cp-fr} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM420
+@tindex IBM420@r{, aliases and source}
+@tindex 420
+@tindex CP420
+@tindex ebcdic-cp-ar1
@code{420}, @code{CP420} and @code{ebcdic-cp-ar1} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
IBM NLS RM p 11-11.
@item IBM423
+@tindex IBM423@r{, aliases and source}
+@tindex 423
+@tindex CP423
+@tindex ebcdic-cp-gr
@code{423}, @code{CP423} and @code{ebcdic-cp-gr} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM424
+@tindex IBM424@r{, aliases and source}
+@tindex 424
+@tindex CP424
+@tindex ebcdic-cp-he
@code{424}, @code{CP424} and @code{ebcdic-cp-he} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM437
+@tindex IBM437@r{, aliases and source}
+@tindex 437
+@tindex CP437
@code{437} and @code{CP437} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM500
+@tindex IBM500@r{, aliases and source}
+@tindex 500
+@tindex 500V1
+@tindex CP500
+@tindex ebcdic-cp-be
+@tindex ebcdic-cp-ch
@code{500}, @code{500V1}, @code{CP500}, @code{ebcdic-cp-be} and @code{ebcdic-cp-ch} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM850
+@tindex IBM850@r{, aliases and source}
+@tindex 850
+@tindex CP850
@code{850} and @code{CP850} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
Source: UNICODE 1.0.
@item IBM851
+@tindex IBM851@r{, aliases and source}
+@tindex 851
+@tindex CP851
@code{851} and @code{CP851} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM852
+@tindex IBM852@r{, aliases and source}
+@tindex 852
+@tindex CP852
+@tindex pcl2
+@tindex pclatin2
@code{852}, @code{CP852}, @code{pcl2} and @code{pclatin2} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM855
+@tindex IBM855@r{, aliases and source}
+@tindex 855
+@tindex CP855
@code{855} and @code{CP855} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM857
+@tindex IBM857@r{, aliases and source}
+@tindex 857
+@tindex CP857
@code{857} and @code{CP857} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM860
+@tindex IBM860@r{, aliases and source}
+@tindex 860
+@tindex CP860
@code{860} and @code{CP860} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM861
+@tindex IBM861@r{, aliases and source}
+@tindex 861
+@tindex CP861
+@tindex cp-is
@code{861}, @code{CP861} and @code{cp-is} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM862
+@tindex IBM862@r{, aliases and source}
+@tindex 862
+@tindex CP862
@code{862} and @code{CP862} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM863
+@tindex IBM863@r{, aliases and source}
+@tindex 863
+@tindex CP863
@code{863} and @code{CP863} are aliases for this charset.
Source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991.
@item IBM864
+@tindex IBM864@r{, aliases and source}
+@tindex 864
+@tindex CP864
@code{864} and @code{CP864} are aliases for this charset.
Source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991.
@item IBM865
+@tindex IBM865@r{, aliases and source}
+@tindex 865
+@tindex CP865
@code{865} and @code{CP865} are aliases for this charset.
Source: IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987).
@item IBM868
+@tindex IBM868@r{, aliases and source}
+@tindex 868
+@tindex CP868
+@tindex cp-ar
@code{868}, @code{CP868} and @code{cp-ar} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM869
+@tindex IBM869@r{, aliases and source}
+@tindex 869
+@tindex CP869
+@tindex cp-gr
@code{869}, @code{CP869} and @code{cp-gr} are aliases for this charset.
Source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991.
@item IBM870
+@tindex IBM870@r{, aliases and source}
+@tindex 870
+@tindex CP870
+@tindex ebcdic-cp-roece
+@tindex ebcdic-cp-yu
@code{870}, @code{CP870}, @code{ebcdic-cp-roece} and @code{ebcdic-cp-yu} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM871
+@tindex IBM871@r{, aliases and source}
+@tindex 871
+@tindex CP871
+@tindex ebcdic-cp-is
@code{871}, @code{CP871} and @code{ebcdic-cp-is} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM875
+@tindex IBM875@r{, aliases and source}
+@tindex 875
+@tindex CP875
+@tindex EBCDIC-Greek
@code{875}, @code{CP875} and @code{EBCDIC-Greek} are aliases for this charset.
Source: UNICODE 1.0.
@item IBM880
+@tindex IBM880@r{, aliases and source}
+@tindex 880
+@tindex CP880
+@tindex EBCDIC-Cyrillic
@code{880}, @code{CP880} and @code{EBCDIC-Cyrillic} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM891
+@tindex IBM891@r{, aliases and source}
+@tindex 891
+@tindex CP891
@code{891} and @code{CP891} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM903
+@tindex IBM903@r{, aliases and source}
+@tindex 903
+@tindex CP903
@code{903} and @code{CP903} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM904
+@tindex IBM904@r{, aliases and source}
+@tindex 904
+@tindex CP904
@code{904} and @code{CP904} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IBM905
+@tindex IBM905@r{, aliases and source}
+@tindex 905
+@tindex CP905
+@tindex ebcdic-cp-tr
@code{905}, @code{CP905} and @code{ebcdic-cp-tr} are aliases for this charset.
Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
@item IBM918
+@tindex IBM918@r{, aliases and source}
+@tindex 918
+@tindex CP918
+@tindex ebcdic-cp-ar2
@code{918}, @code{CP918} and @code{ebcdic-cp-ar2} are aliases for this charset.
Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
@item IEC_P27-1
+@tindex IEC_P27-1@r{, aliases and source}
+@tindex iso-ir-143
@code{iso-ir-143} is an alias for this charset.
Source: ISO 2375 registry.
@item INIS
+@tindex INIS@r{, aliases and source}
+@tindex iso-ir-49
@code{iso-ir-49} is an alias for this charset.
Source: ISO 2375 registry.
@item INIS-8
+@tindex INIS-8@r{, aliases and source}
+@tindex iso-ir-50
@code{iso-ir-50} is an alias for this charset.
Source: ISO 2375 registry.
@item INIS-cyrillic
+@tindex INIS-cyrillic@r{, aliases and source}
+@tindex iso-ir-51
@code{iso-ir-51} is an alias for this charset.
Source: ISO 2375 registry.
@item INVARIANT
+@tindex INVARIANT@r{, aliases and source}
+@tindex iso-ir-170
@code{iso-ir-170} is an alias for this charset.
@item ISO-8859-1
+@tindex ISO-8859-1@r{, aliases and source}
+@tindex 819
+@tindex CP819
+@tindex IBM819
+@tindex ISO_8859-1
+@tindex ISO_8859-1:1987
+@tindex iso-ir-100
+@tindex l1
+@tindex latin1
@code{819}, @code{CP819}, @code{IBM819}, @code{ISO_8859-1}, @code{ISO_8859-1:1987}, @code{iso-ir-100}, @code{l1} and @code{latin1} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-10
+@tindex ISO-8859-10@r{, aliases and source}
+@tindex ISO_8859-10
+@tindex ISO_8859-10:1993
+@tindex iso-ir-157
+@tindex l6
+@tindex latin6
@code{ISO_8859-10}, @code{ISO_8859-10:1993}, @code{iso-ir-157}, @code{l6} and @code{latin6} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-13
+@tindex ISO-8859-13@r{, aliases and source}
+@tindex ISO_8859-13
+@tindex ISO_8859-13:1998
+@tindex iso-baltic
+@tindex iso-ir-179a
+@tindex l7
+@tindex latin7
@code{ISO_8859-13}, @code{ISO_8859-13:1998}, @code{iso-baltic}, @code{iso-ir-179a}, @code{l7} and @code{latin7} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-14
+@tindex ISO-8859-14@r{, aliases and source}
+@tindex ISO_8859-14
+@tindex ISO_8859-14:1998
+@tindex iso-celtic
+@tindex iso-ir-199
+@tindex l8
+@tindex latin8
@code{ISO_8859-14}, @code{ISO_8859-14:1998}, @code{iso-celtic}, @code{iso-ir-199}, @code{l8} and @code{latin8} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-15
+@tindex ISO-8859-15@r{, aliases and source}
+@tindex ISO_8859-15
+@tindex ISO_8859-15:1998
+@tindex iso-ir-203
+@tindex l9
+@tindex latin9
@code{ISO_8859-15}, @code{ISO_8859-15:1998}, @code{iso-ir-203}, @code{l9} and @code{latin9} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-2
+@tindex ISO-8859-2@r{, aliases and source}
+@tindex 912
+@tindex CP912
+@tindex IBM912
+@tindex ISO_8859-2
+@tindex ISO_8859-2:1987
+@tindex iso-ir-101
+@tindex l2
+@tindex latin2
@code{912}, @code{CP912}, @code{IBM912}, @code{ISO_8859-2}, @code{ISO_8859-2:1987}, @code{iso-ir-101}, @code{l2} and @code{latin2} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-3
+@tindex ISO-8859-3@r{, aliases and source}
+@tindex ISO_8859-3
+@tindex ISO_8859-3:1988
+@tindex iso-ir-109
+@tindex l3
+@tindex latin3
@code{ISO_8859-3}, @code{ISO_8859-3:1988}, @code{iso-ir-109}, @code{l3} and @code{latin3} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-4
+@tindex ISO-8859-4@r{, aliases and source}
+@tindex ISO_8859-4
+@tindex ISO_8859-4:1988
+@tindex iso-ir-110
+@tindex l4
+@tindex latin4
@code{ISO_8859-4}, @code{ISO_8859-4:1988}, @code{iso-ir-110}, @code{l4} and @code{latin4} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-5
+@tindex ISO-8859-5@r{, aliases and source}
+@tindex ISO_8859-5
+@tindex ISO_8859-5:1988
+@tindex cyrillic
+@tindex iso-ir-144
@code{ISO_8859-5}, @code{ISO_8859-5:1988}, @code{cyrillic} and @code{iso-ir-144} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-6
+@tindex ISO-8859-6@r{, aliases and source}
+@tindex ASMO-708
+@tindex ECMA-114
+@tindex ISO_8859-6
+@tindex ISO_8859-6:1987
+@tindex arabic
+@tindex iso-ir-127
@code{ASMO-708}, @code{ECMA-114}, @code{ISO_8859-6}, @code{ISO_8859-6:1987}, @code{arabic} and @code{iso-ir-127} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-7
+@tindex ISO-8859-7@r{, aliases and source}
+@tindex ECMA-118
+@tindex ELOT_928
+@tindex ISO_8859-7
+@tindex ISO_8859-7:1987
+@tindex greek
+@tindex greek8
+@tindex iso-ir-126
@code{ECMA-118}, @code{ELOT_928}, @code{ISO_8859-7}, @code{ISO_8859-7:1987}, @code{greek}, @code{greek8} and @code{iso-ir-126} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-8
+@tindex ISO-8859-8@r{, aliases and source}
+@tindex ISO_8859-8
+@tindex ISO_8859-8:1988
+@tindex hebrew
+@tindex iso-ir-138
@code{ISO_8859-8}, @code{ISO_8859-8:1988}, @code{hebrew} and @code{iso-ir-138} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO-8859-9
+@tindex ISO-8859-9@r{, aliases and source}
+@tindex ISO_8859-9
+@tindex ISO_8859-9:1989
+@tindex iso-ir-148
+@tindex l5
+@tindex latin5
@code{ISO_8859-9}, @code{ISO_8859-9:1989}, @code{iso-ir-148}, @code{l5} and @code{latin5} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO_10367-box
+@tindex ISO_10367-box@r{, aliases and source}
+@tindex iso-ir-155
@code{iso-ir-155} is an alias for this charset.
Source: ISO 2375 registry.
@item ISO_2033-1983
+@tindex ISO_2033-1983@r{, aliases and source}
+@tindex e13b
+@tindex iso-ir-98
@code{e13b} and @code{iso-ir-98} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO_5427
+@tindex ISO_5427@r{, aliases and source}
+@tindex iso-ir-37
@code{iso-ir-37} is an alias for this charset.
Source: ISO 2375 registry.
@item ISO_5427-ext
+@tindex ISO_5427-ext@r{, aliases and source}
+@tindex ISO_5427:1981
+@tindex iso-ir-54
@code{ISO_5427:1981} and @code{iso-ir-54} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO_5428
+@tindex ISO_5428@r{, aliases and source}
+@tindex ISO_5428:1980
+@tindex iso-ir-55
@code{ISO_5428:1980} and @code{iso-ir-55} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO_646.basic
+@tindex ISO_646.basic@r{, aliases and source}
+@tindex ISO_646.basic:1983
+@tindex ref
@code{ISO_646.basic:1983} and @code{ref} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO_646.irv
+@tindex ISO_646.irv@r{, aliases and source}
+@tindex ISO_646.irv:1983
+@tindex irv
+@tindex iso-ir-2
@code{ISO_646.irv:1983}, @code{irv} and @code{iso-ir-2} are aliases for this charset.
Source: ISO 2375 registry.
@item ISO_6937-2-25
+@tindex ISO_6937-2-25@r{, aliases and source}
+@tindex iso-ir-152
@code{iso-ir-152} is an alias for this charset.
Source: ISO 2375 registry.
@item ISO_8859-supp
+@tindex ISO_8859-supp@r{, aliases and source}
+@tindex iso-ir-154
+@tindex latin1-2-5
@code{iso-ir-154} and @code{latin1-2-5} are aliases for this charset.
Source: ISO 2375 registry.
@item IT
+@tindex IT@r{, aliases and source}
+@tindex ISO646-IT
+@tindex iso-ir-15
@code{ISO646-IT} and @code{iso-ir-15} are aliases for this charset.
Source: ISO 2375 registry.
@item JIS_C6220-1969-jp
+@tindex JIS_C6220-1969-jp@r{, aliases and source}
+@tindex JIS_C6220-1969
+@tindex iso-ir-13
+@tindex katakana
+@tindex x0201-7
@code{JIS_C6220-1969}, @code{iso-ir-13}, @code{katakana} and @code{x0201-7} are aliases for this charset.
Source: ISO 2375 registry.
@item JIS_C6220-1969-ro
+@tindex JIS_C6220-1969-ro@r{, aliases and source}
+@tindex ISO646-JP
+@tindex iso-ir-14
+@tindex jp
@code{ISO646-JP}, @code{iso-ir-14} and @code{jp} are aliases for this charset.
Source: ISO 2375 registry.
@item JIS_C6229-1984-a
+@tindex JIS_C6229-1984-a@r{, aliases and source}
+@tindex jp-ocr-a
@code{jp-ocr-a} is an alias for this charset.
Source: ISO 2375 registry.
@item JIS_C6229-1984-b
+@tindex JIS_C6229-1984-b@r{, aliases and source}
+@tindex ISO646-JP-OCR-B
+@tindex jp-ocr-b
@code{ISO646-JP-OCR-B} and @code{jp-ocr-b} are aliases for this charset.
Source: ISO 2375 registry.
@item JIS_C6229-1984-b-add
+@tindex JIS_C6229-1984-b-add@r{, aliases and source}
+@tindex iso-ir-93
+@tindex jp-ocr-b-add
@code{iso-ir-93} and @code{jp-ocr-b-add} are aliases for this charset.
Source: ISO 2375 registry.
@item JIS_C6229-1984-hand
+@tindex JIS_C6229-1984-hand@r{, aliases and source}
+@tindex iso-ir-94
+@tindex jp-ocr-hand
@code{iso-ir-94} and @code{jp-ocr-hand} are aliases for this charset.
Source: ISO 2375 registry.
@item JIS_C6229-1984-hand-add
+@tindex JIS_C6229-1984-hand-add@r{, aliases and source}
+@tindex iso-ir-95
+@tindex jp-ocr-hand-add
@code{iso-ir-95} and @code{jp-ocr-hand-add} are aliases for this charset.
Source: ISO 2375 registry.
@item JIS_C6229-1984-kana
+@tindex JIS_C6229-1984-kana@r{, aliases and source}
+@tindex iso-ir-96
@code{iso-ir-96} is an alias for this charset.
Source: ISO 2375 registry.
@item JIS_X0201
+@tindex JIS_X0201@r{, aliases and source}
+@tindex X0201
@code{X0201} is an alias for this charset.
@item JUS_I.B1.002
+@tindex JUS_I.B1.002@r{, aliases and source}
+@tindex ISO646-YU
+@tindex iso-ir-141
+@tindex js
+@tindex yu
@code{ISO646-YU}, @code{iso-ir-141}, @code{js} and @code{yu} are aliases for this charset.
Source: ISO 2375 registry.
@item JUS_I.B1.003-mac
+@tindex JUS_I.B1.003-mac@r{, aliases and source}
+@tindex iso-ir-147
+@tindex macedonian
@code{iso-ir-147} and @code{macedonian} are aliases for this charset.
Source: ISO 2375 registry.
@item JUS_I.B1.003-serb
+@tindex JUS_I.B1.003-serb@r{, aliases and source}
+@tindex iso-ir-146
+@tindex serbian
@code{iso-ir-146} and @code{serbian} are aliases for this charset.
Source: ISO 2375 registry.
@item KOI-7
+@tindex KOI-7@r{, aliases and source}
Source: Andrey A. Chernov <ache@@nagual.pp.ru>.
@item KOI-8
+@tindex KOI-8@r{, aliases and source}
+@tindex GOST_19768-74
@code{GOST_19768-74} is an alias for this charset.
Source: Andrey A. Chernov <ache@@nagual.pp.ru>.
@item KOI8-R
+@tindex KOI8-R@r{, aliases and source}
Source: RFC1489 via Gabor Kiss <kissg@@sztaki.hu>.
And Andrey A. Chernov <ache@@nagual.pp.ru>.
@item KOI8-RU
+@tindex KOI8-RU@r{, aliases and source}
Source: http://cad.ntu-kpi.kiev.ua/multiling/koi8-ru/.
@item KOI8-U
+@tindex KOI8-U@r{, aliases and source}
Source: RFC 2319.
Mibenum: 2088.
Source: http://www.net.ua/KOI8-U/.
@item KSC5636
+@tindex KSC5636@r{, aliases and source}
+@tindex ISO646-KR
@code{ISO646-KR} is an alias for this charset.
@item Latin-greek-1
+@tindex Latin-greek-1@r{, aliases and source}
+@tindex iso-ir-27
@code{iso-ir-27} is an alias for this charset.
Source: ISO 2375 registry.
@item MSZ_7795.3
+@tindex MSZ_7795.3@r{, aliases and source}
+@tindex ISO646-HU
+@tindex hu
+@tindex iso-ir-86
@code{ISO646-HU}, @code{hu} and @code{iso-ir-86} are aliases for this charset.
Source: ISO 2375 registry.
@item NATS-DANO
+@tindex NATS-DANO@r{, aliases and source}
+@tindex iso-ir-9-1
@code{iso-ir-9-1} is an alias for this charset.
Source: ISO 2375 registry.
@item NATS-DANO-ADD
+@tindex NATS-DANO-ADD@r{, aliases and source}
+@tindex iso-ir-9-2
@code{iso-ir-9-2} is an alias for this charset.
Source: ISO 2375 registry.
@item NATS-SEFI
+@tindex NATS-SEFI@r{, aliases and source}
+@tindex iso-ir-8-1
@code{iso-ir-8-1} is an alias for this charset.
Source: ISO 2375 registry.
@item NATS-SEFI-ADD
+@tindex NATS-SEFI-ADD@r{, aliases and source}
+@tindex iso-ir-8-2
@code{iso-ir-8-2} is an alias for this charset.
Source: ISO 2375 registry.
@item NC_NC00-10
+@tindex NC_NC00-10@r{, aliases and source}
+@tindex ISO646-CU
+@tindex NC_NC00-10:81
+@tindex cuba
+@tindex iso-ir-151
@code{ISO646-CU}, @code{NC_NC00-10:81}, @code{cuba} and @code{iso-ir-151} are aliases for this charset.
Source: ISO 2375 registry.
@item NF_Z_62-010
+@tindex NF_Z_62-010@r{, aliases and source}
+@tindex ISO646-FR
+@tindex fr
+@tindex iso-ir-69
@code{ISO646-FR}, @code{fr} and @code{iso-ir-69} are aliases for this charset.
Source: ISO 2375 registry.
@item NF_Z_62-010_(1973)
+@tindex NF_Z_62-010_(1973)@r{, aliases and source}
+@tindex ISO646-FR1
+@tindex iso-ir-25
@code{ISO646-FR1} and @code{iso-ir-25} are aliases for this charset.
Source: ISO 2375 registry.
@item NS_4551-1
+@tindex NS_4551-1@r{, aliases and source}
+@tindex ISO646-NO
+@tindex iso-ir-60
+@tindex no
@code{ISO646-NO}, @code{iso-ir-60} and @code{no} are aliases for this charset.
Source: ISO 2375 registry.
@item NS_4551-2
+@tindex NS_4551-2@r{, aliases and source}
+@tindex ISO646-NO2
+@tindex iso-ir-61
+@tindex no2
@code{ISO646-NO2}, @code{iso-ir-61} and @code{no2} are aliases for this charset.
Source: ISO 2375 registry.
@item NeXTSTEP
+@tindex NeXTSTEP@r{, aliases and source}
+@tindex next
@code{next} is an alias for this charset.
Source: Peter Svanberg - psv@@nada.kth.se.
@item PT
+@tindex PT@r{, aliases and source}
+@tindex ISO646-PT
+@tindex iso-ir-16
@code{ISO646-PT} and @code{iso-ir-16} are aliases for this charset.
Source: ISO 2375 registry.
@item PT2
+@tindex PT2@r{, aliases and source}
+@tindex ISO646-PT2
+@tindex iso-ir-84
@code{ISO646-PT2} and @code{iso-ir-84} are aliases for this charset.
Source: ISO 2375 registry.
@item SEN_850200_B
+@tindex SEN_850200_B@r{, aliases and source}
+@tindex FI
+@tindex ISO646-FI
+@tindex ISO646-SE
+@tindex SS636127
+@tindex iso-ir-10
+@tindex se
@code{FI}, @code{ISO646-FI}, @code{ISO646-SE}, @code{SS636127}, @code{iso-ir-10} and @code{se} are aliases for this charset.
Source: ISO 2375 registry.
@item SEN_850200_C
+@tindex SEN_850200_C@r{, aliases and source}
+@tindex ISO646-SE2
+@tindex iso-ir-11
+@tindex se2
@code{ISO646-SE2}, @code{iso-ir-11} and @code{se2} are aliases for this charset.
Source: ISO 2375 registry.
@item T.61-7bit
+@tindex T.61-7bit@r{, aliases and source}
+@tindex iso-ir-102
@code{iso-ir-102} is an alias for this charset.
Source: ISO 2375 registry.
@item baltic
+@tindex baltic@r{, aliases and source}
+@tindex iso-ir-179
@code{iso-ir-179} is an alias for this charset.
Source: ISO 2375 registry.
&g1esc x2d56 &g2esc x2e56 &g3esc x2f56.
@item greek-ccitt
+@tindex greek-ccitt@r{, aliases and source}
+@tindex iso-ir-150
@code{iso-ir-150} is an alias for this charset.
Source: ISO 2375 registry.
@item greek7
+@tindex greek7@r{, aliases and source}
+@tindex iso-ir-88
@code{iso-ir-88} is an alias for this charset.
Source: ISO 2375 registry.
@item greek7-old
+@tindex greek7-old@r{, aliases and source}
+@tindex iso-ir-18
@code{iso-ir-18} is an alias for this charset.
Source: ISO 2375 registry.
@item hp-roman8
+@tindex hp-roman8@r{, aliases and source}
+@tindex r8
+@tindex roman8
@code{r8} and @code{roman8} are aliases for this charset.
Source: LaserJet IIP Printer User's Manual,.
HP part no 33471-90901, Hewlet-Packard, June 1989.
@item latin-greek
+@tindex latin-greek@r{, aliases and source}
+@tindex iso-ir-19
@code{iso-ir-19} is an alias for this charset.
Source: ISO 2375 registry.
@item mac-is
+@tindex mac-is@r{, aliases and source}
@item macintosh
+@tindex macintosh@r{, aliases and source}
+@tindex mac
@code{mac} is an alias for this charset.
Source: The Unicode Standard ver 1.0, ISBN 0-201-56788-1, Oct 1991.
@item macintosh_ce
+@tindex macintosh_ce@r{, aliases and source}
+@tindex macce
@code{macce} is an alias for this charset.
Source: Macintosh CE fonts.
@item sami
+@tindex sami@r{, aliases and source}
+@tindex iso-ir-158
+@tindex lap
+@tindex latin-lap
@code{iso-ir-158}, @code{lap} and @code{latin-lap} are aliases for this charset.
Source: ISO 2375 registry.
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Written by Brendan O'Dea <bod@compusol.com.au>
+# Available from ftp://ftp.gnu.org/gnu/help2man/
use 5.004;
use strict;
use Getopt::Long;
+use Text::Tabs qw(expand);
use POSIX qw(strftime setlocale LC_TIME);
my $this_program = 'help2man';
-my $this_version = '1.010';
+my $this_version = '1.019';
my $version_info = <<EOT;
$this_program $this_version
Usage: $this_program [OPTION]... EXECUTABLE
- --name=STRING use `STRING' as the description for the NAME paragraph
- --include=FILE include material from `FILE'
- --opt-include=FILE include material from `FILE' if it exists
- --output=FILE send output to `FILE'
- --no-info suppress pointer to Texinfo manual
- --help print this help, then exit
- --version print $this_program program version number, then exit
+ -n, --name=STRING use `STRING' as the description for the NAME paragraph
+ -s, --section=SECTION use `SECTION' as the section for the man page
+ -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'
+ -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.
+EXECUTABLE should accept `--help' and `--version' options.
EOT
-my ($include, $opt_name, $opt_include, $opt_output, $opt_no_info);
+my $section = 1;
+my ($opt_name, @opt_include, $opt_output, $opt_no_info);
# Parse options.
+Getopt::Long::config('bundling');
GetOptions (
- 'name=s' => \$opt_name,
- 'include=s' => \$include,
- 'opt-include=s' => \$opt_include,
- 'output=s' => \$opt_output,
- 'no-info' => \$opt_no_info,
- help => sub { print $help_info; exit },
- version => sub { print $version_info; exit },
+ 'n|name=s' => \$opt_name,
+ 's|section=s' => \$section,
+ 'i|include=s' => sub { push @opt_include, [ pop, 1 ] },
+ 'I|opt-include=s' => sub { push @opt_include, [ pop, 0 ] },
+ 'o|output=s' => \$opt_output,
+ 'N|no-info' => \$opt_no_info,
+ help => sub { print $help_info; exit },
+ version => sub { print $version_info; exit },
) or die $help_info;
die $help_info unless @ARGV == 1;
my %include = ();
-my @include = (); # to retain order
+my %append = ();
+my @include = (); # retain order given in include file
+
+# Provide replacement `quote-regex' operator for pre-5.005.
+BEGIN { eval q(sub qr { '' =~ $_[0]; $_[0] }) if $] < 5.005 }
# Process include file (if given). Format is:
#
-# [section name]
-# verbatim text
+# [section name]
+# verbatim text
+#
+# or
+#
+# /pattern/
+# verbatim text
+#
-if ($include or $opt_include)
+for (@opt_include)
{
- if (open INC, $include || $opt_include)
+ my ($inc, $required) = @$_;
+
+ next unless -f $inc or $required;
+ die "$this_program: can't open `$inc' ($!)\n"
+ unless open INC, $inc;
+
+ my $key;
+ my $hash = \%include;
+
+ while (<INC>)
{
- my $sect;
+ # [section]
+ if (/^\[([^]]+)\]/)
+ {
+ $key = uc $1;
+ $key =~ s/^\s+//;
+ $key =~ s/\s+$//;
+ $hash = \%include;
+ push @include, $key unless $include{$key};
+ next;
+ }
- while (<INC>)
+ # /pattern/
+ if (m!^/(.*)/([ims]*)!)
{
- if (/^\[([^]]+)\]/)
+ my $pat = $2 ? "(?$2)$1" : $1;
+
+ # Check pattern.
+ eval { $key = qr($pat) };
+ if ($@)
{
- $sect = uc $1;
- $sect =~ s/^\s+//;
- $sect =~ s/\s+$//;
- next;
+ $@ =~ s/ at .*? line \d.*//;
+ die "$inc:$.:$@";
}
- # Silently ignore anything before the first
- # section--allows for comments and revision info.
- next unless $sect;
-
- push @include, $sect unless $include{$sect};
- $include{$sect} ||= '';
- $include{$sect} .= $_;
+ $hash = \%append;
+ next;
}
- close INC;
-
- die "$this_program: no valid information found in `$include'\n"
- unless %include;
+ # Silently ignore anything before the first
+ # section--allows for comments and revision info.
+ next unless $key;
- # Compress trailing blank lines.
- for (keys %include)
- {
- $include{$_} =~ s/\n+$//;
- $include{$_} .= "\n" unless /^NAME$/;
- }
- }
- else
- {
- die "$this_program: can't open `$include' ($!)\n" if $include;
+ $hash->{$key} ||= '';
+ $hash->{$key} .= $_;
}
+
+ close INC;
+
+ die "$this_program: no valid information found in `$inc'\n"
+ unless $key;
+}
+
+# Compress trailing blank lines.
+for my $hash (\(%include, %append))
+{
+ for (keys %$hash) { $hash->{$_} =~ s/\n+$/\n/ }
}
# Turn off localisation of executable's ouput.
@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
-# Turn off localisation of date (for strftime)
+# Turn off localisation of date (for strftime).
setlocale LC_TIME, 'C';
-# Grab help and version paragraphs from executable
-my @help = split /\n\n+/, `$ARGV[0] --help 2>/dev/null`
- or die "$this_program: can't get `--help' info from $ARGV[0]\n";
-
-my @version = split /\n\n+/, `$ARGV[0] --version 2>/dev/null`
- or die "$this_program: can't get `--version' info from $ARGV[0]\n";
+# Grab help and version info from executable.
+my ($help_text, $version_text) = map {
+ join '', map { s/ +$//; expand $_ } `$ARGV[0] --$_ 2>/dev/null`
+ or die "$this_program: can't get `--$_' info from $ARGV[0]\n"
+} qw(help version);
my $date = strftime "%B %Y", localtime;
(my $program = $ARGV[0]) =~ s!.*/!!;
#
# and seperated from any copyright/author details by a blank line.
-$_ = shift @version;
+($_, $version_text) = split /\n+/, $version_text, 2;
-if (/^(\S+)\s+\(((?:GNU|Free)\s+[^)]+)\)\s+(.*)/ or
- /^(\S+)\s+-\s*((?:GNU|Free)\s+\S+)\s+(.*)/)
+if (/^(\S+) +\(((?:GNU|Free) +[^)]+)\) +(.*)/ or
+ /^(\S+) +- *((?:GNU|Free) +\S+) +(.*)/)
{
$program = $1;
$package = $2;
$version = $3;
}
-elsif (/^((?:GNU|Free)\s+)?(\S+)\s+(.*)/)
+elsif (/^((?:GNU|Free) +)?(\S+) +(.*)/)
{
$program = $2;
$package = $1 ? "$1$2" : $2;
$program =~ s!.*/!!;
-# no info for `info' itself
+# No info for `info' itself.
$opt_no_info = 1 if $program eq 'info';
-# --name overrides --include contents
-$include{NAME} = "$program \\- $opt_name" if $opt_name;
+# --name overrides --include contents.
+$include{NAME} = "$program \\- $opt_name\n" if $opt_name;
-# Default (useless) NAME paragraph
-$include{NAME} ||= "$program \\- manual page for $program $version";
+# Default (useless) NAME paragraph.
+$include{NAME} ||= "$program \\- manual page for $program $version\n";
# Man pages traditionally have the page title in caps.
my $PROGRAM = uc $program;
-# Header.
-print <<EOT;
-.\\" DO NOT MODIFY THIS FILE! It was generated by $this_program $this_version.
-.TH $PROGRAM 1 "$date" "$package $version" "FSF"
-.SH NAME
-$include{NAME}
-EOT
+# Extract usage clause(s) [if any] for SYNOPSIS.
+if ($help_text =~ s/^Usage:( +(\S+))(.*)((?:\n(?: {6}\1| *or: +\S).*)*)//m)
+{
+ my @syn = $2 . $3;
+
+ if ($_ = $4)
+ {
+ s/^\n//;
+ for (split /\n/) { s/^ *(or: +)?//; push @syn, $_ }
+ }
+
+ my $synopsis = '';
+ for (@syn)
+ {
+ $synopsis .= ".br\n" if $synopsis;
+ 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;
+
+# Temporarily exchange leading dots and backslashes for tokens.
+s/^\./\x80/mg;
+s/\\/\x81/g;
-my $accumulate = 1;
-my @description = ();
+# Start a new paragraph (if required) for these.
+s/([^\n])\n(Report +bugs|Email +bug +reports +to|Written +by)/$1\n\n$2/g;
sub convert_option;
-# Output converted --help information.
-for (@help)
+while (length)
{
- chomp;
+ # Convert some standard paragraph names.
+ if (s/^(Options|Examples): *\n//)
+ {
+ $sect = uc $1;
+ next;
+ }
- if (s/^Usage:\s+\S+\s+(.*)\n?//)
+ # Copyright section
+ if (/^Copyright +[(\xa9]/)
{
- # Turn the usage clause into a synopsis.
- my $synopsis = '';
-
- do {
- my $syn = $1;
- $syn =~ s/(([][]|\.\.+)+)/\\fR$1\\fI/g;
- $syn =~ s/^/\\fI/ unless $syn =~ s/^\\fR//;
- $syn .= '\fR';
- $syn =~ s/\\fI(\s*)\\fR/$1/g;
-
- $synopsis .= ".br\n" unless $accumulate;
- $synopsis .= ".B $program\n";
- $synopsis .= "$syn\n";
- $accumulate = 0;
- } while s/^(?:Usage|\s*or):\s+\S+\s+(.*)\n?//;
-
- # Include file overrides SYNOPSIS.
- print ".SH SYNOPSIS\n", $include{SYNOPSIS} || $synopsis;
-
- # Dump any accumulated description text.
- print ".SH DESCRIPTION\n";
- print @description;
-
- # Add additional description text from include file.
- if ($include{DESCRIPTION})
+ $sect = 'COPYRIGHT';
+ $include{$sect} ||= '';
+ $include{$sect} .= ".PP\n" if $include{$sect};
+
+ my $copy;
+ ($copy, $_) = split /\n\n/, $_, 2;
+
+ for ($copy)
{
- print ".PP\n" unless $include{DESCRIPTION} =~ /^\..P/;
- print $include{DESCRIPTION};
+ # 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 |This +is +free +software)/$1\n.br\n$2/g;
+
+ # Join hyphenated lines.
+ s/([A-Za-z])-\n */$1/g;
}
- next unless $_;
+ $include{$sect} .= $copy;
+ $_ ||= '';
+ next;
}
- # Accumulate text if the synopsis has not been produced yet.
- if ($accumulate)
+ # Catch bug report text.
+ if (/^(Report +bugs|Email +bug +reports +to) /)
{
- push @description, ".PP\n" if @description;
- push @description, "$_\n";
- next;
+ $sect = 'REPORTING BUGS';
}
- # Convert some standard paragraph names
- if (s/^(Options|Examples):\s*\n//)
+ # Author section.
+ elsif (/^Written +by/)
{
- print qq(.SH \U$1\n);
- next unless length;
+ $sect = 'AUTHOR';
}
- # Catch bug report text.
- if (/^Report bugs |^Email bug reports to /)
+ # Examples, indicated by an indented leading $, % or > are
+ # rendered in a constant width font.
+ if (/^( +)([\$\%>] )\S/)
{
- print qq(.SH "REPORTING BUGS"\n$_\n);
+ 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;
}
- # Special case for tar 1.12: --label=NAME\nPATTERN.
- s{(\n[ \t]*)(-V,[ \t]+--label=NAME.*)\n[ \t]+PATTERN[ \t]+}
- {$1$2$1\\&...=PATTERN };
+ my $matched = '';
+ $include{$sect} ||= '';
- # Convert options.
- s/((?:^|,)\s+)(-[][\w=-]+|\\&\S+)/$1 . convert_option $2/mge;
+ # Sub-sections have a trailing colon and the second line indented.
+ if (s/^(\S.*:) *\n / /)
+ {
+ $matched .= $& if %append;
+ $include{$sect} .= qq(.SS "$1"\n);
+ }
- # Option subsections have second line indented.
- print qq(.SS "$1"\n) if s/^(\S.*)\n(\s)/$2/;
+ my $indent = 0;
+ my $content = '';
- my $ind = 0;
- for (split /\n/)
+ # Option with description.
+ if (s/^( {1,10}([+-]\S.*?))(?:( +)|\n( {20,}))(\S.*)\n//)
{
- # indented paragraph
- if (/^\s/)
+ $matched .= $& if %append;
+ $indent = length ($4 || "$1$3");
+ $content = ".TP\n\x82$2\n\x82$5\n";
+ unless ($4)
{
- # Join continued lines when indented to the same point as
- # text following at least two spaces on the previous line.
- if ($ind > 0 and /^ {$ind}\S/)
- {
- s/^\s+//;
- print "$_\n" if $_;
- }
- else
- {
- # use the words(s) before two or more spaces for the
- # tag
- s/^(\s+)//;
- $ind = length $1;
-
- if (s/(\s\s+)/\n/)
- {
- $ind += (length $1) + index $_, "\n";
- }
- else
- {
- $ind = 0;
- }
-
- print ".TP\n$_\n" if $_;
- }
+ # Indent may be different on second line.
+ $indent = length $& if /^ {20,}/;
}
- # Anything else.
- else
+ }
+
+ # Option without description.
+ elsif (s/^ {1,10}([+-]\S.*)\n//)
+ {
+ $matched .= $& if %append;
+ $content = ".HP\n\x82$1\n";
+ $indent = 80; # not continued
+ }
+
+ # Indented paragraph with tag.
+ elsif (s/^( +(\S.*?) +)(\S.*)\n//)
+ {
+ $matched .= $& if %append;
+ $indent = length $1;
+ $content = ".TP\n\x82$2\n\x82$3\n";
+ }
+
+ # Indented paragraph.
+ elsif (s/^( +)(\S.*)\n//)
+ {
+ $matched .= $& if %append;
+ $indent = length $1;
+ $content = ".IP\n\x82$2\n";
+ }
+
+ # Left justified paragraph.
+ else
+ {
+ s/(.*)\n//;
+ $matched .= $& if %append;
+ $content = ".PP\n" if $include{$sect};
+ $content .= "$1\n";
+ }
+
+ # Append continuations.
+ while (s/^ {$indent}(\S.*)\n//)
+ {
+ $matched .= $& if %append;
+ $content .= "\x82$1\n"
+ }
+
+ # Move to next paragraph.
+ s/^\n+//;
+
+ for ($content)
+ {
+ # Leading dot protection.
+ s/\x82\./\x80/g;
+ s/\x82//g;
+
+ # Convert options.
+ s/(^| )(-[][\w=-]+)/$1 . convert_option $2/mge;
+ }
+
+ # Check if matched paragraph contains /pat/.
+ if (%append)
+ {
+ for my $pat (keys %append)
{
- print ".PP\n" unless $ind < 0;
- print "$_\n";
- $ind = -1;
+ if ($matched =~ $pat)
+ {
+ $content .= ".PP\n" unless $append{$pat} =~ /^\./;
+ $content .= $append{$pat};
+ }
}
}
-}
-# Print any include items other than the ones we have already dealt
-# with.
-for (@include)
-{
- print qq(.SH "$_"\n$include{$_})
- unless /^(NAME|SYNOPSIS|DESCRIPTION|SEE ALSO)$/;
+ $include{$sect} .= $content;
}
# Refer to the real documentation.
-if ($include{'SEE ALSO'} or !$opt_no_info)
+unless ($opt_no_info)
{
- print qq(.SH "SEE ALSO"\n);
- print $include{'SEE ALSO'}, ".PP\n" if $include{'SEE ALSO'};
-
- print <<EOT unless $opt_no_info;
+ $sect = 'SEE ALSO';
+ $include{$sect} ||= '';
+ $include{$sect} .= ".PP\n" if $include{$sect};
+ $include{$sect} .= <<EOT;
The full documentation for
.B $program
is maintained as a Texinfo manual. If the
EOT
}
-# Output converted --version information.
-for (@version)
-{
- chomp;
-
- # Join hyphenated lines.
- s/([A-Za-z])-\n */$1/g;
-
- # Convert copyright symbol or (c) to nroff character.
- s/Copyright\s+(?:\xa9|\([Cc]\))/Copyright \\(co/g;
-
- # Insert appropriate headings for copyright and author.
- if (/^Copyright\s\\/) { print ".SH COPYRIGHT\n" }
- elsif (/^Written\s+by/) { print ".SH AUTHOR\n" }
- else { print ".PP\n"; }
+# Output header.
+print <<EOT;
+.\\" DO NOT MODIFY THIS FILE! It was generated by $this_program $this_version.
+.TH $PROGRAM "$section" "$date" "$package $version" FSF
+EOT
- # Insert line breaks before additional copyright messages and the
- # disclaimer.
- s/(.)\n(Copyright\s|This is free software)/$1\n.br\n$2/g;
+# Section ordering.
+my @pre = qw(NAME SYNOPSIS DESCRIPTION OPTIONS EXAMPLES);
+my @post = ('AUTHOR', 'REPORTING BUGS', 'COPYRIGHT', 'SEE ALSO');
+my $filter = join '|', @pre, @post;
- print "$_\n";
+# Output content.
+for (@pre, (grep ! /^($filter)$/o, @include), @post)
+{
+ if ($include{$_})
+ {
+ my $quote = /\W/ ? '"' : '';
+ print ".SH $quote$_$quote\n";
+
+ for ($include{$_})
+ {
+ # Replace leading dot an backslash tokens.
+ s/\x80/\\&./g;
+ s/\x81/\\e/g;
+ print;
+ }
+ }
}
exit;
# embolden. Option arguments get italicised.
sub convert_option
{
- my $option = '\fB' . shift;
+ local $_ = '\fB' . shift;
- $option =~ s/-/\\-/g;
- unless ($option =~ s/\[=(.*)\]$/\\fR[=\\fI$1\\fR]/)
+ s/-/\\-/g;
+ unless (s/\[=(.*)\]$/\\fR[=\\fI$1\\fR]/)
{
- $option =~ s/=(.)/\\fR=\\fI$1/;
- $option =~ s/ (.)/ \\fI$1/;
- $option .= '\fR';
+ s/=(.)/\\fR=\\fI$1/;
+ s/ (.)/ \\fI$1/;
+ $_ .= '\fR';
}
- $option;
+ $_;
}
-This is Info file recode.info, produced by Makeinfo version 1.68 from
-the input file recode.texi.
+This is recode.info, produced by makeinfo version 3.12n 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
\1f
Indirect:
-recode.info-1: 1083
-recode.info-2: 50085
-recode.info-3: 96346
-recode.info-4: 144563
-recode.info-5: 189680
+recode.info-1: 1116
+recode.info-2: 50290
+recode.info-3: 98137
+recode.info-4: 146382
+recode.info-5: 191635
+recode.info-6: 215602
\1f
Tag Table:
(Indirect)
-Node: Top\7f1083
-Node: Tutorial\7f5119
-Node: Introduction\7f9355
-Node: Charset overview\7f13381
-Node: Surface overview\7f14601
-Node: Contributing\7f16068
-Node: Invoking recode\7f18469
-Node: Synopsis\7f19376
-Node: Requests\7f22106
-Node: Listings\7f28760
-Node: Recoding\7f38681
-Node: Reversibility\7f41492
-Node: Sequencing\7f50085
-Node: Mixed\7f52473
-Node: Emacs\7f55855
-Node: Library\7f56812
-Node: Outer level\7f58165
-Node: Request level\7f62436
-Node: Task level\7f72833
-Node: Charset level\7f83184
-Node: Errors\7f84021
-Node: Universal\7f89314
-Node: UCS-2\7f92717
-Node: UCS-4\7f95217
-Node: UTF-7\7f95754
-Node: UTF-8\7f96346
-Node: UTF-16\7f100642
-Node: count-characters\7f101787
-Node: dump-with-names\7f102455
-Node: Tabular\7f105002
-Node: ASCII misc\7f127064
-Node: ASCII\7f127428
-Node: ISO 8859\7f128244
-Node: ASCII-BS\7f130539
-Node: flat\7f132373
-Node: IBM and MS\7f133041
-Node: EBCDIC\7f133614
-Node: IBM-PC\7f135723
-Node: Icon-QNX\7f137997
-Node: CDC\7f138419
-Node: Display Code\7f140120
-Node: CDC-NOS\7f142607
-Node: Bang-Bang\7f144563
-Node: Micros\7f146488
-Node: Apple-Mac\7f146869
-Node: AtariST\7f148917
-Node: Miscellaneous\7f149900
-Node: HTML\7f150648
-Node: LaTeX\7f154891
-Node: Texinfo\7f155661
-Node: African\7f156431
-Node: Cyrillic\7f157779
-Node: Texte\7f159186
-Node: Mule\7f164389
-Node: Surfaces\7f166689
-Node: Permutations\7f169201
-Node: End lines\7f170039
-Node: MIME\7f172239
-Node: Dump\7f173349
-Node: Debugging\7f177529
-Node: Internals\7f179985
-Node: Main flow\7f181199
-Node: New charsets\7f184454
-Node: New surfaces\7f188989
-Node: Design\7f189680
+Node: Top\7f1116
+Node: Tutorial\7f5239
+Node: Introduction\7f9475
+Node: Charset overview\7f13501
+Node: Surface overview\7f14721
+Node: Contributing\7f16188
+Ref: Contributing-Footnote-1\7f18438
+Node: Invoking recode\7f18572
+Node: Synopsis\7f19479
+Ref: Synopsis-Footnote-1\7f21923
+Node: Requests\7f22222
+Ref: Requests-Footnote-1\7f28203
+Ref: Requests-Footnote-2\7f28270
+Ref: Requests-Footnote-3\7f28448
+Node: Listings\7f28907
+Node: Recoding\7f38826
+Node: Reversibility\7f41646
+Ref: Reversibility-Footnote-1\7f50153
+Node: Sequencing\7f50290
+Node: Mixed\7f52731
+Node: Emacs\7f56119
+Node: Library\7f57080
+Node: Outer level\7f58433
+Node: Request level\7f63958
+Node: Task level\7f74450
+Node: Charset level\7f84893
+Node: Errors\7f85730
+Ref: Errors-Footnote-1\7f90588
+Ref: Errors-Footnote-2\7f90702
+Node: Universal\7f91063
+Ref: Universal-Footnote-1\7f94198
+Ref: Universal-Footnote-2\7f94266
+Node: UCS-2\7f94479
+Node: UCS-4\7f97008
+Node: UTF-7\7f97545
+Node: UTF-8\7f98137
+Node: UTF-16\7f102439
+Node: count-characters\7f103584
+Node: dump-with-names\7f104252
+Node: Tabular\7f106805
+Node: ASCII misc\7f128867
+Node: ASCII\7f129229
+Node: ISO 8859\7f130045
+Node: ASCII-BS\7f132339
+Node: flat\7f134173
+Node: IBM and MS\7f134841
+Node: EBCDIC\7f135413
+Node: IBM-PC\7f137522
+Ref: IBM-PC-Footnote-1\7f139648
+Node: Icon-QNX\7f139806
+Node: CDC\7f140228
+Node: Display Code\7f141929
+Ref: Display Code-Footnote-1\7f144220
+Node: CDC-NOS\7f144425
+Node: Bang-Bang\7f146382
+Node: Micros\7f148306
+Node: Apple-Mac\7f148688
+Node: AtariST\7f150736
+Node: Miscellaneous\7f151719
+Node: HTML\7f152469
+Node: LaTeX\7f156707
+Node: Texinfo\7f157476
+Node: African\7f158246
+Node: Cyrillic\7f159594
+Node: Texte\7f161001
+Ref: Texte-Footnote-1\7f165560
+Ref: Texte-Footnote-2\7f165640
+Ref: Texte-Footnote-3\7f166115
+Node: Mule\7f166212
+Ref: Mule-Footnote-1\7f168001
+Node: Surfaces\7f168520
+Ref: Surfaces-Footnote-1\7f170933
+Node: Permutations\7f171039
+Node: End lines\7f171877
+Node: MIME\7f174077
+Node: Dump\7f175261
+Node: Debugging\7f179453
+Node: Internals\7f181908
+Node: Main flow\7f183144
+Ref: Main flow-Footnote-1\7f186304
+Node: New charsets\7f186409
+Node: New surfaces\7f190944
+Node: Design\7f191635
+Ref: Design-Footnote-1\7f200858
+Node: Concept Index\7f200962
+Node: Option Index\7f210094
+Node: Library Index\7f212175
+Node: Charset and Surface Index\7f215602
\1f
End Tag Table
-This is Info file recode.info, produced by Makeinfo version 1.68 from
-the input file recode.texi.
+This is recode.info, produced by makeinfo version 3.12n 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
character sets are supported. The `recode' program is a handy
front-end to the library.
- The current `recode' release is 3.5.
+ The current `recode' release is 3.5a.
* Menu:
* Miscellaneous:: Various other charsets
* Surfaces:: All about surfaces
* Internals:: Internal aspects
+* Concept Index::
+* Option Index::
+* Library Index::
+* Charset and Surface Index::
- -- The Detailed Node Listing --
+
+ --- The Detailed Node Listing ---
Terminology and purpose
* ASCII:: Usual ASCII
* ISO 8859:: ASCII extended by Latin Alphabets
-* ASCII-BS:: ASCII 7-bits, `BS' to overstrike
+* ASCII-BS:: ASCII 7-bits, BS to overstrike
* flat:: ASCII without diacritics nor underline
Some IBM or Microsoft charsets
* Display Code:: Control Data's Display Code
* CDC-NOS:: ASCII 6/12 from NOS
-* Bang-Bang:: ASCII "bang bang"
+* Bang-Bang:: ASCII ``bang bang''
Other micro-computer charsets
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
+ 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
resort to many other email conversions, yet more rarely than the
frequent cases above.
- It *seems* like this should be doable using `recode'. However,
+ It _seems_ like this should be doable using `recode'. However,
when I try something like `grecode mac macfile.txt' I get nothing
out--no error, no output, nothing.
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
+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
+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
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*.
+rather _pure_.
This tool pays special attention to superimposition of diacritics
for some French representations. This orientation is mostly
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 Universit'e de Montr'eal;
+ 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
definitely requires employer disclaimers and copyright assignments in
writing.
- When you contribute something to `recode', *please* explain what it
+ 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,
it and what would go in the next.
Please send suggestions, documentation errors and bug reports to
-<recode-bugs@iro.umontreal.ca> or, if you prefer, directly to Franc,ois
-Pinard(2). Do not be afraid to report details, because this program is
-the mere aggregation of hundreds of details.
+<recode-bugs@iro.umontreal.ca> or, if you prefer, directly to
+<pinard@iro.umontreal.ca>, Franc,ois Pinard. Do not be afraid to
+report details, because this program is the mere aggregation of
+hundreds of details.
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
(1) I'm not prone at accepting a charset you just invented, and
which nobody uses yet: convince your friends and community first!
- (2) Use <pinard@iro.umontreal.ca> to reach me
-
\1f
File: recode.info, Node: Invoking recode, Next: Library, Prev: Introduction, Up: Top
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(1):
+later (*note Requests::), but for many simple cases, this parameter
+merely looks like this(1):
BEFORE..AFTER
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,
+_only_ and produce a file `datum.tex', without destroying the original,
one could do:
cp -p datum.txt datum.tex
This example also shows that `l1' could be used instead of
`Latin-1'; charset names often have such aliases.
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
(1) In previous versions or `recode', a single colon `:' was used
instead of the two dots `..' for separating charsets, but this was
lower case), digits, hyphens, underlines, periods, colons or round
parentheses.
- The complete syntax for allowable REQUEST allows for unusual things,
+ The complete syntax for a valid REQUEST allows for unusual things,
which might surprise at first. (Do not pay too much attention to these
-facilities on a first reading.) For example, REQUEST may also contain
-intermediary charsets, like in:
+facilities on first reading.) For example, REQUEST may also contain
+intermediate charsets, like in the following example:
BEFORE..INTERIM1..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 in the general case. One might wonder what would
-be the meaning of declaring the charset input for a recoding
+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. These
-strange usages might have a meaning and be useful for the `recode'
+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
charset BEFORE to charset AFTER, prior to applying SURFACE3 over the
result.
- Some charsets have one or more *implied* surfaces. In this case, the
+ 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
+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!
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 uses an *usual charset*
+variable is not defined, the `recode' library uses the "usual charset"
which is installation dependent. When this variable is defined but has
-an empty value, charset names may just not be omitted. Unless overriden
-when `recode' was installed, this usual charset is `Latin-1' for Unix
-systems or `IBM-PC' for MS-DOS machines.
+an empty value, charset names may not be omitted. Unless overriden
+when `recode' was installed, the usual charset is `Latin-1' for Unix
+systems or `IBM-PC' for MS-DOS/MS-Windows machines.
If the charset name is omitted but followed by surfaces, the surfaces
then qualify the usual or default charset. For example, the request
The allowable values for BEFORE or AFTER charsets, and various
surfaces, are described in the remainder of this document.
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
(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 may not. This would not be very meaningful, as the
-recoding reduces to a mere copy in that case.
+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,
+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'.
\1f
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
+ 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:
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
+ 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
+ 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.
+ 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*
+ 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.
+ 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
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, then 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
+ 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:
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 of is meant
- to be sorted, like this: `recode -T | sort'. The option triggers
+ 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
`-g'
`--graphics'
- This option is only meaningful while getting *out* of the `IBM-PC'
+ 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
`-t'
`--touch'
- The *touch* option is meaningful only when files are recoded over
+ 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
`-v'
`--verbose'
- Before doing any recoding, the program will first print on `stderr'
- 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'.
+ 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 FILE recoded, so to keep the user
+ `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
recode -v BEFORE..AFTER < /dev/null
- also using the fact that, in `recode', an empty input file produces
- an empty output file.
+ using the fact that, in `recode', an empty input file produces an
+ empty output file.
`-x CHARSET'
`--ignore=CHARSET'
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::.).
+ using chained requests offers a finer control, *note Requests::).
CHARSET may be abbreviated to any unambiguous prefix.
`--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
+ 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.
of counter-measure.
Using `-s' without `-f' might render the `recode' program very
- susceptible to the slighest file abnormalities. Despite it might
- be irritating to some users, such paranoia is sometimes wanted and
- useful.
+ 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 at keeping the recodings reversible, you
+ 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
+You _ought_ to keep only reasonable expectations about reverse
recodings. In particular, consider:
* Most transformations are fully reversible for all inputs, but lose
short permutation loop.
As a consequence of this map filling, `recode' may sometimes produce
-*funny* characters. They may look annoying, they are nevertheless
+_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.
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 you requested:
+ 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.
+ `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.
+ `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 you
- request:
+ 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 Latin1. 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'. A few people try to discover how `recode' works by
- experimenting a little at random, rather than reading and
- understanding the documentation; such results are surely confusing,
- as they provide a feel to those people that they understood
- something.
+ 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
end, recoding six times in the same direction would recover all
characters in cycles of length 1, 2, 3 or 6.
-
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
(1) There are still some cases of ambiguous output which are rather
difficult to detect, and for which the protection is not active.
-This is Info file recode.info, produced by Makeinfo version 1.68 from
-the input file recode.texi.
+This is recode.info, produced by makeinfo version 3.12n 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
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 cost of
- more system overhead.
+ 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'.
+ option `-i'. (This happens, for example, on MS-DOS systems.)
\1f
File: recode.info, Node: Mixed, Next: Emacs, Prev: Sequencing, Up: Invoking recode
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
-easy. The `recode' program is able to handle only a few simple cases
-of mixed input.
+available. The `recode' program 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
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'
+ 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
recode -Spo pc/..u8 < INPUT.po > OUTPUT.po
- file `OUTPUT.po' holds a copy of `INPUT.po' in which translator
- comments and the contents of `msgstr' strings *only* have been
+ 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
===========================
The fact `recode' is a filter makes it quite easy to use from within
-GNU Emacs. For example, recoding the whole buffer from the IBM-PC
-charset to current charset (Latin-1 on Unix) is easily done with:
+GNU Emacs. For example, recoding the whole buffer from the `IBM-PC'
+charset to current charset (`Latin-1' on Unix) is easily done with:
C-x h C-u M-| recode ibmpc RET
-The `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:
+`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)
#include <stdbool.h>
#include <recode.h>
+ const char *program_name;
+
int
- main ()
+ main (int argc, char *const *argv)
{
+ program_name = argv[0];
RECODE_OUTER outer = recode_new_outer (true);
recode_delete_outer (outer);
#include <recode.h>
+ const char *program_name;
+
int
- main ()
+ main (int argc, char *const *argv)
{
+ program_name = argv[0];
RECODE_OUTER outer = recode_new_outer (true);
recode_term_outer (outer);
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.
+
\1f
File: recode.info, Node: Request level, Next: Task level, Prev: Outer level, Up: Library
#include <stdbool.h>
#include <recode.h>
+ const char *program_name;
+
int
- main ()
+ 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;
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
+ 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.
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-fledge `recode' request,
+ REQUEST. Note that STRING may be a full-fledged `recode' request,
possibly including surfaces specifications, intermediary charsets,
- sequences, aliases or abbreviations (*note Requests::.).
+ sequences, aliases or abbreviations (*note Requests::).
The internal representation automatically receives some
pre-conditioning and optimisation, so the REQUEST may then later
#include <stdbool.h>
#include <recodext.h>
+ const char *program_name;
+
int
- main ()
+ 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;
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
+ _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.
`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.
+ 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.
+ 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
+ Errors::), maintains the maximum error level met so far while
+ the recoding task was proceeding. The preset value is
`RECODE_NO_ERROR'.
* Task execution
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
-about if the recoding should be abruptly interrupted when an error is
+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
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
+ 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 `\^{e}' instead of `\^e' is not
- canonical.
+ 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
various Latin charsets.
`RECODE_INVALID_INPUT'
- The input text does 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.
+ 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 just may
- not contain characters with the eight bit set. `UTF-8' encodings
- ought to be minimal(1).
+ 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
`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 also, by un-initialised or
+ 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 over all possible error codes.
+ 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
* interrupt recoding right away and return failure now.
-*Note Task level::, and particularly the description of fields
+*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 ----------
+ --------- Notes en bas de page ---------
(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, fear it would be overkill. On the other hand, it might be
+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.
storage.
When `recode' is producing any representation of `UCS', it uses the
-replacement character `U+FFFD' for any *valid* character which is not
+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 get rid of
-the noise, while taking note of the error its usual ways.
+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
+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
* count-characters:: Frequency count of characters
* dump-with-names:: Fully interpreted UCS dump
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
- (1) It is not probable that `recode' will support `UTF-1' ever.
+ (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
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
+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
stay a simple matter, but it might trigger a diagnostic about non
canonical input.
- By default, when producing an `UCS-2' file, `recode' always output
+ 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. For example,
-the command:
+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 it 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'.
+ 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
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
+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
+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:
================================
Another surface of `UCS' uses exactly four bytes per character, and
-is a mere dump of the internal memory representation which is *natural*
+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'
=======================================
`UTF-7' comes from IETF rather than ISO, and is described by
-RFC 1642, in the MIME series. The `UTF-7' encoding is meant to fit
+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 is Info file recode.info, produced by Makeinfo version 1.68 from
-the input file recode.texi.
+This is recode.info, produced by makeinfo version 3.12n 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
`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
+ 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
`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.
+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
+ 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,
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.
+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),
- then `UCS-2' (1 to 3 bytes), then `UCS-4' (1 to 6 bytes).
+ followed by `UCS-2' (1 to 3 bytes) and `UCS-4' (1 to 6 bytes).
* The lexicographic sorting order of `UCS' strings is preserved.
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. D"urst writes (to `comp.std.internat', on 1995-03-28):
+ Martin J. Du"rst writes (to `comp.std.internat', 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
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 `full-dump' 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
+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.
+produces the following output:
- Mne UCS2 Description
+ UCS2 Mne Description
- H 0048 latin capital letter h
- e 0065 latin small letter e
- l 006C latin small letter l
- l 006C latin small letter l
- o 006F latin small letter o
- , 002C comma
- SP 0020 space
- w 0077 latin small letter w
- o 006F latin small letter o
- r 0072 latin small letter r
- l 006C latin small letter l
- d 0064 latin small letter d
- ! 0021 exclamation mark
- LF 000A line feed (lf)
+ 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
`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').
+ `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').
+ `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 <keld@dkuug.dk> did most of RFC 1345 himself, with
* ASCII:: Usual ASCII
* ISO 8859:: ASCII extended by Latin Alphabets
-* ASCII-BS:: ASCII 7-bits, `BS' to overstrike
+* ASCII-BS:: ASCII 7-bits, BS to overstrike
* flat:: ASCII without diacritics nor underline
\1f
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
+ 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
* 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, it's true name is `ISO_8859-1:1987' as
per RFC 1345, accepted aliases being `CP819', `IBM819', `ISO-8859-1',
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.
+ Note that charset `flat' is a terminal charset. We can convert _to_
+`flat', but not _from_ it.
\1f
File: recode.info, Node: IBM and MS, Next: CDC, Prev: ASCII misc, Up: Top
******************************
The `recode' program provides various IBM or Microsoft code pages
-(*note Tabular::.). An easy way to find them all at once out of the
+(*note Tabular::). An easy way to find them all at once out of the
`recode' program itself is through the command:
recode -l | egrep -i '(CP|IBM)[0-9]'
Elmer) relates EBCDIC to 8-bits ASCII.
`EBCDIC-IBM'
- In `recode', the `us..ebcdic-ibm' conversion is *almost* identical
+ 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:
`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'.
+_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
Both methods give different recodings. These differences are annoying,
the fuzziness will have to be explained and settle down one day.
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
- (1) On DOS/Windows, stock shells do not know that apostrohes quote
+ (1) On DOS/Windows, stock shells do not know that apostrophes quote
special characters like `|', so one need to use double quotes instead
of apostrophes.
*************************
What is now `recode' evolved out, through many transformations
-really, from a set of programs which were originally written in Control
-Data Corporation's assembler (`COMPASS'), with bits in FORTRAN, and
-later, rewritten in CDC 6000 Pascal. The CDC heritage shows by the
+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
* Display Code:: Control Data's Display Code
* CDC-NOS:: ASCII 6/12 from NOS
-* Bang-Bang:: ASCII "bang bang"
+* Bang-Bang:: ASCII ``bang bang''
\1f
File: recode.info, Node: Display Code, Next: CDC-NOS, Prev: CDC, Up: CDC
are to be considered as part of the end of line and not interpreted as
`:'(1).
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
(1) This convention replaced an older one saying that up to 4
-immediately preceeding *pairs* of zero bytes, going backward, are to be
+immediately preceeding _pairs_ of zero bytes, going backward, are to be
considered as part of the end of line and not interpreted as `::'.
\1f
This charset is available in `recode' under the name `CDC-NOS', with
`NOS' as an acceptable alias.
- This is one of the charset in use on CDC Cyber NOS systems to
+ 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
-This is Info file recode.info, produced by Makeinfo version 1.68 from
-the input file recode.texi.
+This is recode.info, produced by makeinfo version 3.12n 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 charset is available in `recode' under the name `Bang-Bang'.
- This code, in use on Cybers at Universit'e de Montr'eal mainly,
+ 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 cod'e Display". This code is also known as
+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.
+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 `!'
Other micro-computer charsets
*****************************
- The `NeXT' charset, which use to be especially provided in releases
+ 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:
while ago by mere inspection of a printed chart of the Macintosh codes
and glyph.
- It has `LF' as its implied surface. This means that, if the original
+ 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/cl < INPUT > OUTPUT
+ recode ap..l2/cr < INPUT > OUTPUT
recode ap/..l2 < INPUT > OUTPUT
RFC 1345 brings into `recode' 2 other Macintosh charsets. You can
Even if these charsets were originally added to `recode' for
handling texts written in French, they find other uses. We did use them
-lot for writing French diacriticised texts in the past, so `recode'
+a lot for writing French diacriticised texts in the past, so `recode'
knows how to handle these particularly well for French texts.
* Menu:
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::.).
+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
* HTML 1.0 was never really documented.
* HTML 2.0 entities are listed in RFC 1866. Basically, there is an
- entity for each *alphabetical* character in the right part of
+ 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
`"'.
(`‌'), `‍' (`‍'), `‎' (`‎') and `‏'
(`‏').
- * HTML 3.2 (`http://www.w3.org/TR/REC-html32.html') took up the full
+ * 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 (`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
+ * 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.
When `recode' translates to HTML, the translation occurs according
to `http://www.w3.org/TR/REC-html40/sgml/entities.html'. It is also
assumed that RFC 1866 has an equivalent contents. When translating
-*from* HTML, `recode' accepts some alternative special sequences, to be
+_from_ HTML, `recode' accepts some alternative special sequences, to be
forgiving when files use older HTML tables.
- The `recode' program can be used to *normalise* an HTML file using
+ The `recode' program 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:
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::.).
+inhibited through the command option `-d' (*note Mixed::).
\1f
File: recode.info, Node: Texinfo, Next: African, Prev: LaTeX, Up: Miscellaneous
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 Qu'ebec originating from Universit'e de Montr'eal. In fact,
+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
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
+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.
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*
+ 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 (besaigu"e and cigu"e), or feminine words with
- a relative masculine(1) (aigu"e, ambigu"e, contigu"e, exigu"e,
- subaigu"e and suraigu"e). There are also words not ending in
+ 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"
- (cano"e) or ending by "u"(3) (Esa"u).
+ (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, b`esigue, bigue, bordigue,
+ 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 ----------
+ --------- Notes en bas de page ---------
(1) There are supposed to be seven words in this case. So, one is
missing.
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
+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.
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
+(*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
+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'ishi since 1993. When `Mule' got rewritten
+ 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
+`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
+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 ----------
+ --------- Notes en bas de page ---------
(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
+`_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)
All about surfaces
******************
- The "trivial surface" consists into using a fixed number of bits
+ 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
while the request `SURFACE..data' removes it.
We are only beginning to experiment with surfaces in `recode', but
-the concept opens the doors to many avenues, it is not clear yet which
+the concept opens the doors to many avenues; it is not clear yet which
ones are worth pursuing, and which should be abandoned. This chapter
presents all surfaces currently available.
* Dump:: Interpreted character dumps
* Debugging:: Artificial data
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
(1) These are mere examples to explain the concept, `recode' only
has `Base64' and `CR-LF', actually.
=========================
A permutation is a surface transformation which reorders groups of
-eight-bit bytes. A *21* permutation exchanges pairs of successive
+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
+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.
+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
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
+ 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
MIME contents encodings
=======================
- RFC 1521 defines two 7-bit surfaces, meant to prepare 8-bit messages
+ 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
`UCS-2' and nothing else. *Note UTF-7::.
A little historical note, also showing the three levels of
-acceptation of Internet standards. MIME changed from a "Proposed
-Standard" to a "Draft Standard" in 1993, and only became a "Full
-Standard" during 1996-12.
+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".
\1f
File: recode.info, Node: Dump, Next: Debugging, Prev: MIME, Up: Surfaces
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 do produce dumps by other means than through
+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.
- Despite the library might report reversibility errors, removing a
-dump surface is a rather forgiving process: one may mix bases, group
-more or less numbers per source line, or use shorter chunks elsewhere
-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.
+ 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.
\1f
File: recode.info, Node: Debugging, Prev: Dump, Up: Surfaces
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
+ 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.
+_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
+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.
having value 0, the second having value 1, and so forth until all
65536 values have been generated.
- For an example, the command `recode l5/test8..dump < /dev/null' is a
+ 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.
\1f
-File: recode.info, Node: Internals, Prev: Surfaces, Up: Top
+File: recode.info, Node: Internals, Next: Concept Index, Prev: Surfaces, Up: Top
Internal aspects
****************
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, it then
+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
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 6 steps. Of course, the *expected* number of steps is
+between 0 and 6 steps. Of course, the _expected_ number of steps is
affected by optimisation: it drops from 2.2 to 0.9.(1) 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
and the expected number of steps decreases by a lesser amount, going
from 2.2 to 1.3. This is still manageable.
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
(1) The above numbers were for `recode' version 3.4. After UCS
additions, it drops from 2.3 to 1.1.
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
+_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
-This is Info file recode.info, produced by Makeinfo version 1.68 from
-the input file recode.texi.
+This is recode.info, produced by makeinfo version 3.12n 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
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, while their system does
- not support any form of shared libraries, might end up with bulky
+ 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.
`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.
+ _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,
did it. Instead, we should try to stay opened 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 opened, but we should
- force them wider!
+ should. Not only the doors should stay open, but we should force
+ them wider!
- ---------- Footnotes ----------
+ --------- Notes en bas de page ---------
(1) If strict mapping is requested, another efficient device will be
used instead of a permutation.
+\1f
+File: recode.info, Node: Concept Index, Next: Option Index, Prev: Internals, Up: Top
+
+Concept Index
+*************
+
+* Menu:
+
+* abbreviated names for charsets and surfaces: Requests.
+* adding new charsets: New charsets.
+* adding new surfaces: New surfaces.
+* African charsets: African.
+* aliases: Requests.
+* alternate names for charsets and surfaces: Requests.
+* ambiguous output, error message: Errors.
+* ASCII table, recreating with recode: ASCII.
+* average number of recoding steps: Main flow.
+* bool data type: Outer level.
+* box-drawing characters: Recoding.
+* bug reports, where to send: Contributing.
+* byte order mark: UCS-2.
+* byte order swapping: Permutations.
+* caret ASCII code: CDC-NOS.
+* CDC charsets: CDC.
+* CDC Display Code, a table: Display Code.
+* chaining of charsets in a request: Requests.
+* character mnemonics, documentation: Tabular.
+* character streams, description: dump-with-names.
+* charset level functions: Charset level.
+* charset names, valid characters: Requests.
+* charset, default: Requests.
+* charset, pure: Surface overview.
+* charset, what it is: Introduction.
+* charsets for CDC machines: CDC.
+* charsets, aliases: Requests.
+* charsets, chaining in a request: Requests.
+* charsets, guessing: Listings.
+* charsets, overview: Charset overview.
+* chset tools: Tabular.
+* codepages: IBM and MS.
+* combining characters: UCS-2.
+* commutativity of surfaces: Requests.
+* contributing charsets: Contributing.
+* convert a subset of characters: Mixed.
+* convert strings and comments: Mixed.
+* copyright conditions, printing: Listings.
+* counting characters: count-characters.
+* CR surface, in Macintosh charsets: Apple-Mac.
+* CR-LF surface, in IBM-PC charsets: IBM-PC.
+* Ctrl-Z, discarding: End lines.
+* Cyrillic charsets: Cyrillic.
+* debugging surfaces: Debugging.
+* default charset: Requests.
+* description of individual characters: dump-with-names.
+* details about recoding: Recoding.
+* deviations from RFC 1345: Tabular.
+* diacritics and underlines, removing: flat.
+* diacritics, with ASCII-BS charset: ASCII-BS.
+* diaeresis: Recoding.
+* disable map filling: Reversibility.
+* double step: Main flow.
+* dumping characters: Dump.
+* dumping characters, with description: dump-with-names.
+* Easy French: Texte.
+* EBCDIC charsets: EBCDIC.
+* end of line format: End lines.
+* endiannes, changing: Permutations.
+* error handling: Errors.
+* error level threshold: Errors.
+* error messages: Errors.
+* error messages, suppressing: Reversibility.
+* file sequencing: Sequencing.
+* file time stamps: Recoding.
+* filter operation: Synopsis.
+* force recoding: Reversibility.
+* French description of charsets: Listings.
+* guessing charsets: Listings.
+* handling errors: Errors.
+* help page, printing: Listings.
+* HTML normalization: HTML.
+* IBM codepages: IBM and MS.
+* IBM graphics characters: Recoding.
+* iconv: Design.
+* identifying subsets in charsets: Listings.
+* ignore charsets: Recoding.
+* implied surfaces: Requests.
+* information about charsets: Listings.
+* initialisation functions, outer: Outer level.
+* initialisation functions, request: Request level.
+* initialisation functions, task: Task level.
+* intermediate charsets: Requests.
+* internal functions: Charset level.
+* internal recoding bug, error message: Errors.
+* internals: Internals.
+* invalid input, error message: Errors.
+* invocation of recode, synopsis: Synopsis.
+* irreversible recoding: Reversibility.
+* ISO 10646: Universal.
+* languages, programming: Listings.
+* LaTeX files: LaTeX.
+* Latin charsets: ISO 8859.
+* Latin-1 table, recreating with recode: ISO 8859.
+* letter case, in charset and surface names: Requests.
+* listing charsets: Listings.
+* Macintosh charset: Apple-Mac.
+* map filling: Reversibility.
+* map filling, disable: Reversibility.
+* memory sequencing: Sequencing.
+* MIME encodings: MIME.
+* misuse of recoding library, error message: Errors.
+* MS-DOS charsets: IBM-PC.
+* MULE, in Emacs: Mule.
+* multiplexed charsets: Mule.
+* names of charsets and surfaces, abbreviation: Requests.
+* new charsets, how to add: New charsets.
+* new surfaces, how to add: New surfaces.
+* NeXT charsets: Micros.
+* non canonical input, error message: Errors.
+* normilise an HTML file: HTML.
+* NOS 6/12 code: CDC-NOS.
+* outer level functions: Outer level.
+* partial conversion: Mixed.
+* permutations of groups of bytes: Permutations.
+* pipe sequencing: Sequencing.
+* program_name variable: Outer level.
+* programming language support: Listings.
+* pure charset: Surface overview.
+* quality of recoding: Recoding.
+* recode internals: Internals.
+* recode request syntax: Requests.
+* recode use, a tutorial: Tutorial.
+* recode version, printing: Listings.
+* recode, a Macintosh port: Apple-Mac.
+* recode, and RFC 1345: Tabular.
+* recode, main flow of operation: Main flow.
+* recode, operation as filter: Synopsis.
+* recode, synopsis of invocation: Synopsis.
+* recoding details: Recoding.
+* recoding library: Library.
+* recoding path, rejection: Recoding.
+* recoding steps, statistics: Main flow.
+* removing diacritics and underlines: flat.
+* reporting bugs: Contributing.
+* request level functions: Request level.
+* request, syntax: Requests.
+* reversibility of recoding: Reversibility.
+* RFC 1345: Tabular.
+* RFC 2045: MIME.
+* sequencing: Sequencing.
+* shared library implementation: Design.
+* silent operation: Reversibility.
+* single step: Main flow.
+* source file generation: Listings.
+* stdbool.h header: Outer level.
+* strict operation: Reversibility.
+* string and comments conversion: Mixed.
+* subsets in charsets: Listings.
+* super-charsets: Mule.
+* supported programming languages: Listings.
+* suppressing diagnostic messages: Reversibility.
+* surface, what it is <1>: Surfaces.
+* surface, what it is: Introduction.
+* surfaces, aliases: Requests.
+* surfaces, commutativity: Requests.
+* surfaces, implementation in recode: Surfaces.
+* surfaces, implied: Requests.
+* surfaces, overview: Surface overview.
+* surfaces, syntax: Requests.
+* system detected problem, error message: Errors.
+* task execution: Task level.
+* task level functions: Task level.
+* TeX files: LaTeX.
+* Texinfo files: Texinfo.
+* threshold for error reporting: Errors.
+* time stamps of files: Recoding.
+* trivial surface: Surfaces.
+* tutorial: Tutorial.
+* Unicode: UCS-2.
+* unknown charsets: Listings.
+* untranslatable input, error message: Errors.
+* valid characters in charset names: Requests.
+* verbose operation: Recoding.
+
+\1f
+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'.
+
+* Menu:
+
+* --colons: Recoding.
+* --copyright: Listings.
+* --diacritics: Mixed.
+* --find-subsets: Listings.
+* --force: Reversibility.
+* --graphics: Recoding.
+* --header: Listings.
+* --help: Listings.
+* --ignore: Recoding.
+* --known=: Listings.
+* --list: Listings.
+* --quiet: Reversibility.
+* --sequence: Sequencing.
+* --silent: Reversibility.
+* --source: Mixed.
+* --strict: Reversibility.
+* --touch: Recoding.
+* --verbose: Recoding.
+* --version: Listings.
+* -c: Recoding.
+* -C: Listings.
+* -d: Mixed.
+* -f: Reversibility.
+* -g: Recoding.
+* -h: Listings.
+* -i: Sequencing.
+* -k: Listings.
+* -l: Listings.
+* -p: Sequencing.
+* -q: Reversibility.
+* -S: Mixed.
+* -s: Reversibility.
+* -t: Recoding.
+* -T: Listings.
+* -v: Recoding.
+* -x: Recoding.
+
+\1f
+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.
+
+* Menu:
+
+* abort_level: Task level.
+* ascii_graphics: Request level.
+* byte_order_mark: Task level.
+* declare_step: New surfaces.
+* DEFAULT_CHARSET: Requests.
+* diacritics_only: Request level.
+* diaeresis_char: Request level.
+* error_so_far: Task level.
+* fail_level: Task level.
+* file_one_to_many: New charsets.
+* file_one_to_one: New charsets.
+* find_charset: Charset level.
+* LANG, when listing charsets: Listings.
+* LANGUAGE, when listing charsets: Listings.
+* list_all_charsets: Charset level.
+* list_concise_charset: Charset level.
+* list_full_charset: Charset level.
+* make_header_flag: Request level.
+* RECODE_AMBIGUOUS_OUTPUT: Errors.
+* recode_buffer_to_buffer: Request level.
+* recode_buffer_to_file: Request level.
+* recode_delete_outer: Outer level.
+* recode_delete_request: Request level.
+* recode_delete_task: Task level.
+* recode_file_to_buffer: Request level.
+* recode_file_to_file: Request level.
+* recode_filter_close: Task level.
+* recode_filter_close, not available: Request level.
+* recode_filter_open: Task level.
+* recode_filter_open, not available: Request level.
+* recode_format_table: Request level.
+* RECODE_INTERNAL_ERROR: Errors.
+* RECODE_INVALID_INPUT: Errors.
+* RECODE_MAXIMUM_ERROR <1>: Errors.
+* RECODE_MAXIMUM_ERROR: Task level.
+* recode_new_outer: Outer level.
+* recode_new_request: Request level.
+* recode_new_task: Task level.
+* RECODE_NO_ERROR: Errors.
+* RECODE_NOT_CANONICAL: Errors.
+* RECODE_OUTER structure: Outer level.
+* recode_perform_task: Task level.
+* recode_request structure: Request level.
+* RECODE_REQUEST structure: Request level.
+* recode_scan_request: Request level.
+* RECODE_SEQUENCE_IN_MEMORY: Task level.
+* RECODE_SEQUENCE_WITH_FILES: Task level.
+* RECODE_SEQUENCE_WITH_PIPE: Task level.
+* RECODE_STRATEGY_UNDECIDED: Task level.
+* recode_string: Request level.
+* recode_string_to_buffer: Request level.
+* recode_string_to_file: Request level.
+* RECODE_SYSTEM_ERROR: Errors.
+* RECODE_TASK structure: Task level.
+* RECODE_UNTRANSLATABLE: Errors.
+* RECODE_USER_ERROR: Errors.
+* strategy: Task level.
+* task_request structure: Task level.
+* verbose_flag: Request level.
--- /dev/null
+This is recode.info, produced by makeinfo version 3.12n 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' command, which has the purpose of
+converting files between various character sets and surfaces.
+
+ Copyright (C) 1990, 93, 94, 96, 97, 98, 99 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.
+
+\1f
+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.
+
+* Menu:
+
+* 037: Tabular.
+* 038: Tabular.
+* 1004: Tabular.
+* 1026: Tabular.
+* 1047: Tabular.
+* 10646: UCS-4.
+* 1250: Tabular.
+* 1251: Tabular.
+* 1252: Tabular.
+* 1253: Tabular.
+* 1254: Tabular.
+* 1255: Tabular.
+* 1256: Tabular.
+* 1257: Tabular.
+* 1345: Tabular.
+* 21-Permutation: Permutations.
+* 256: Tabular.
+* 273: Tabular.
+* 274: Tabular.
+* 275: Tabular.
+* 278: Tabular.
+* 280: Tabular.
+* 281: Tabular.
+* 284: Tabular.
+* 285: Tabular.
+* 290: Tabular.
+* 297: Tabular.
+* 367: Tabular.
+* 420: Tabular.
+* 423: Tabular.
+* 424: Tabular.
+* 4321-Permutation: Permutations.
+* 437: Tabular.
+* 500: Tabular.
+* 500V1: Tabular.
+* 64: MIME.
+* 819: Tabular.
+* 850: Tabular.
+* 851: Tabular.
+* 852: Tabular.
+* 855: Tabular.
+* 857: Tabular.
+* 860: Tabular.
+* 861: Tabular.
+* 862: Tabular.
+* 863: Tabular.
+* 864: Tabular.
+* 865: Tabular.
+* 868: Tabular.
+* 869: Tabular.
+* 870: Tabular.
+* 871: Tabular.
+* 875: Tabular.
+* 880: Tabular.
+* 891: Tabular.
+* 903: Tabular.
+* 904: Tabular.
+* 905: Tabular.
+* 912: Tabular.
+* 918: Tabular.
+* AFRFUL-102-BPI_OCIL, and aliases: African.
+* AFRFUL-103-BPI_OCIL, and aliases: African.
+* AFRL1-101-BPI_OCIL: African.
+* AFRLIN-104-BPI_OCIL: African.
+* AFRLIN-105-BPI_OCIL: African.
+* ANSI_X3.110-1983, not recognised by recode: Tabular.
+* ANSI_X3.4-1968, aliases and source: Tabular.
+* ANSI_X3.4-1968, and its aliases: ASCII.
+* ANSI_X3.4-1986: Tabular.
+* Apple-Mac: Apple-Mac.
+* arabic: Tabular.
+* arabic7: Tabular.
+* ASCII: Tabular.
+* ASCII, an alias for the ANSI_X3.4-1968 charset: ASCII.
+* ASCII-BS, and its aliases: ASCII-BS.
+* ASMO-708: Tabular.
+* ASMO_449, aliases and source: Tabular.
+* AtariST: AtariST.
+* b64: MIME.
+* baltic, aliases and source: Tabular.
+* bambara: African.
+* Bang-Bang: Bang-Bang.
+* Base64: MIME.
+* BMP: UCS-2.
+* bra: African.
+* BS, an alias for ASCII-BS charset: ASCII-BS.
+* BS_4730, aliases and source: Tabular.
+* BS_viewdata, aliases and source: Tabular.
+* ca: Tabular.
+* CDC-NOS, and its aliases: CDC-NOS.
+* cl: End lines.
+* cn: Tabular.
+* combined-UCS-2: UCS-2.
+* CORK: Cyrillic.
+* count-characters: count-characters.
+* cp-ar: Tabular.
+* cp-gr: Tabular.
+* cp-hu: Tabular.
+* cp-is: Tabular.
+* CP037: Tabular.
+* CP038: Tabular.
+* CP1004: Tabular.
+* CP1026: Tabular.
+* CP1047: Tabular.
+* CP1250, aliases and source: Tabular.
+* CP1251, aliases and source: Tabular.
+* CP1252, aliases and source: Tabular.
+* CP1253, aliases and source: Tabular.
+* CP1254, aliases and source: Tabular.
+* CP1255, aliases and source: Tabular.
+* CP1256, aliases and source: Tabular.
+* CP1257, aliases and source: Tabular.
+* CP256: Tabular.
+* CP273: Tabular.
+* CP274: Tabular.
+* CP275: Tabular.
+* CP278: Tabular.
+* CP280: Tabular.
+* CP281: Tabular.
+* CP284: Tabular.
+* CP285: Tabular.
+* CP290: Tabular.
+* CP297: Tabular.
+* cp367: ASCII.
+* CP367: Tabular.
+* CP420: Tabular.
+* CP423: Tabular.
+* CP424: Tabular.
+* CP437: Tabular.
+* CP500: Tabular.
+* CP819: Tabular.
+* CP850: Tabular.
+* CP851: Tabular.
+* CP852: Tabular.
+* CP855: Tabular.
+* CP857: Tabular.
+* CP860: Tabular.
+* CP861: Tabular.
+* CP862: Tabular.
+* CP863: Tabular.
+* CP864: Tabular.
+* CP865: Tabular.
+* CP868: Tabular.
+* CP869: Tabular.
+* CP870: Tabular.
+* CP871: Tabular.
+* CP875: Tabular.
+* CP880: Tabular.
+* CP891: Tabular.
+* CP903: Tabular.
+* CP904: Tabular.
+* CP905: Tabular.
+* CP912: Tabular.
+* CP918: Tabular.
+* CR, a surface: End lines.
+* CR-LF, a surface: End lines.
+* csa7-1: Tabular.
+* csa7-2: Tabular.
+* CSA_Z243.4-1985-1, aliases and source: Tabular.
+* CSA_Z243.4-1985-2, aliases and source: Tabular.
+* CSA_Z243.4-1985-gr, aliases and source: Tabular.
+* CSN_369103, aliases and source: Tabular.
+* cuba: Tabular.
+* CWI, aliases and source: Tabular.
+* CWI-2: Tabular.
+* cyrillic: Tabular.
+* d1: Dump.
+* d2: Dump.
+* d4: Dump.
+* data, a special charset: Surfaces.
+* de: Tabular.
+* dec: Tabular.
+* DEC-MCS, aliases and source: Tabular.
+* Decimal-1: Dump.
+* Decimal-2: Dump.
+* Decimal-4: Dump.
+* DIN_66003, aliases and source: Tabular.
+* dk: Tabular.
+* dk-us, not recognised by recode: Tabular.
+* dos: IBM-PC.
+* DS2089: Tabular.
+* DS_2089, aliases and source: Tabular.
+* dump-with-names: dump-with-names.
+* e13b: Tabular.
+* EBCDIC, a charset: EBCDIC.
+* EBCDIC-AT-DE, aliases and source: Tabular.
+* EBCDIC-AT-DE-A, aliases and source: Tabular.
+* EBCDIC-BE: Tabular.
+* EBCDIC-BR: Tabular.
+* EBCDIC-CA-FR, aliases and source: Tabular.
+* EBCDIC-CCC: EBCDIC.
+* ebcdic-cp-ar1: Tabular.
+* ebcdic-cp-ar2: Tabular.
+* ebcdic-cp-be: Tabular.
+* ebcdic-cp-ca: Tabular.
+* ebcdic-cp-ch: Tabular.
+* EBCDIC-CP-DK: Tabular.
+* ebcdic-cp-es: Tabular.
+* ebcdic-cp-fi: Tabular.
+* ebcdic-cp-fr: Tabular.
+* ebcdic-cp-gb: Tabular.
+* ebcdic-cp-gr: Tabular.
+* ebcdic-cp-he: Tabular.
+* ebcdic-cp-is: Tabular.
+* ebcdic-cp-it: Tabular.
+* ebcdic-cp-nl: Tabular.
+* EBCDIC-CP-NO: Tabular.
+* ebcdic-cp-roece: Tabular.
+* ebcdic-cp-se: Tabular.
+* ebcdic-cp-tr: Tabular.
+* ebcdic-cp-us: Tabular.
+* ebcdic-cp-wt: Tabular.
+* ebcdic-cp-yu: Tabular.
+* EBCDIC-Cyrillic: Tabular.
+* EBCDIC-DK-NO, aliases and source: Tabular.
+* EBCDIC-DK-NO-A, aliases and source: Tabular.
+* EBCDIC-ES, aliases and source: Tabular.
+* EBCDIC-ES-A, aliases and source: Tabular.
+* EBCDIC-ES-S, aliases and source: Tabular.
+* EBCDIC-FI-SE, aliases and source: Tabular.
+* EBCDIC-FI-SE-A, aliases and source: Tabular.
+* EBCDIC-FR, aliases and source: Tabular.
+* EBCDIC-Greek: Tabular.
+* EBCDIC-IBM: EBCDIC.
+* EBCDIC-INT: Tabular.
+* EBCDIC-INT1: Tabular.
+* EBCDIC-IS-FRISS, aliases and source: Tabular.
+* EBCDIC-IT, aliases and source: Tabular.
+* EBCDIC-JP-E: Tabular.
+* EBCDIC-JP-kana: Tabular.
+* EBCDIC-PT, aliases and source: Tabular.
+* EBCDIC-UK, aliases and source: Tabular.
+* EBCDIC-US, aliases and source: Tabular.
+* ECMA-113: Tabular.
+* ECMA-113:1986: Tabular.
+* ECMA-114: Tabular.
+* ECMA-118: Tabular.
+* ECMA-cyrillic, aliases and source: Tabular.
+* ELOT_928: Tabular.
+* ES, aliases and source: Tabular.
+* ES2, aliases and source: Tabular.
+* ewondo: African.
+* FI: Tabular.
+* flat, a charset: flat.
+* fr: Tabular.
+* friss: Tabular.
+* FSS_UTF: UTF-8.
+* fulfude: African.
+* gb: Tabular.
+* GB_1988-80, aliases and source: Tabular.
+* GB_2312-80, not recognised by recode: Tabular.
+* GOST_19768-74: Tabular.
+* GOST_19768-87, aliases and source: Tabular.
+* greek: Tabular.
+* greek-ccitt, aliases and source: Tabular.
+* greek7, aliases and source: Tabular.
+* greek7-old, aliases and source: Tabular.
+* greek8: Tabular.
+* hebrew: Tabular.
+* Hexadecimal-1: Dump.
+* Hexadecimal-2: Dump.
+* Hexadecimal-4: Dump.
+* hp-roman8, aliases and source: Tabular.
+* HTML, a charset: HTML.
+* hu: Tabular.
+* IBM-PC: IBM-PC.
+* IBM-PC charset, and CR-LF surface: Requests.
+* IBM037, aliases and source: Tabular.
+* IBM038, aliases and source: Tabular.
+* IBM1004, aliases and source: Tabular.
+* IBM1026, aliases and source: Tabular.
+* IBM1047, aliases and source: Tabular.
+* IBM256, aliases and source: Tabular.
+* IBM273, aliases and source: Tabular.
+* IBM274, aliases and source: Tabular.
+* IBM275, aliases and source: Tabular.
+* IBM277, aliases and source: Tabular.
+* IBM278, aliases and source: Tabular.
+* IBM280, aliases and source: Tabular.
+* IBM281, aliases and source: Tabular.
+* IBM284, aliases and source: Tabular.
+* IBM285, aliases and source: Tabular.
+* IBM290, aliases and source: Tabular.
+* IBM297, aliases and source: Tabular.
+* IBM367 <1>: ASCII.
+* IBM367: Tabular.
+* IBM420, aliases and source: Tabular.
+* IBM423, aliases and source: Tabular.
+* IBM424, aliases and source: Tabular.
+* ibm437: IBM-PC.
+* IBM437, aliases and source: Tabular.
+* IBM500, aliases and source: Tabular.
+* IBM819: Tabular.
+* IBM819, and CR-LF surface: IBM-PC.
+* IBM850, aliases and source: Tabular.
+* IBM851, aliases and source: Tabular.
+* IBM852, aliases and source: Tabular.
+* IBM855, aliases and source: Tabular.
+* IBM857, aliases and source: Tabular.
+* IBM860, aliases and source: Tabular.
+* IBM861, aliases and source: Tabular.
+* IBM862, aliases and source: Tabular.
+* IBM863, aliases and source: Tabular.
+* IBM864, aliases and source: Tabular.
+* IBM865, aliases and source: Tabular.
+* IBM868, aliases and source: Tabular.
+* IBM869, aliases and source: Tabular.
+* IBM870, aliases and source: Tabular.
+* IBM871, aliases and source: Tabular.
+* IBM875, aliases and source: Tabular.
+* IBM880, aliases and source: Tabular.
+* IBM891, aliases and source: Tabular.
+* IBM903, aliases and source: Tabular.
+* IBM904, aliases and source: Tabular.
+* IBM905, aliases and source: Tabular.
+* IBM912: Tabular.
+* IBM918, aliases and source: Tabular.
+* Icon-QNX, and aliases: Icon-QNX.
+* IEC_P27-1, aliases and source: Tabular.
+* INIS, aliases and source: Tabular.
+* INIS-8, aliases and source: Tabular.
+* INIS-cyrillic, aliases and source: Tabular.
+* INVARIANT, aliases and source: Tabular.
+* irv: Tabular.
+* ISO-10646-UCS-2, and aliases: UCS-2.
+* ISO-10646-UCS-4, and aliases: UCS-4.
+* ISO-8859-1, aliases and source: Tabular.
+* ISO-8859-10, aliases and source: Tabular.
+* ISO-8859-13, aliases and source: Tabular.
+* ISO-8859-14, aliases and source: Tabular.
+* ISO-8859-15, aliases and source: Tabular.
+* ISO-8859-2, aliases and source: Tabular.
+* ISO-8859-3, aliases and source: Tabular.
+* ISO-8859-4, aliases and source: Tabular.
+* ISO-8859-5, aliases and source: Tabular.
+* ISO-8859-6, aliases and source: Tabular.
+* ISO-8859-7, aliases and source: Tabular.
+* ISO-8859-8, aliases and source: Tabular.
+* ISO-8859-9, aliases and source: Tabular.
+* iso-baltic: Tabular.
+* iso-celtic: Tabular.
+* iso-ir-10: Tabular.
+* iso-ir-100: Tabular.
+* iso-ir-101: Tabular.
+* iso-ir-102: Tabular.
+* iso-ir-109: Tabular.
+* iso-ir-11: Tabular.
+* iso-ir-110: Tabular.
+* iso-ir-111: Tabular.
+* iso-ir-121: Tabular.
+* iso-ir-122: Tabular.
+* iso-ir-123: Tabular.
+* iso-ir-126: Tabular.
+* iso-ir-127: Tabular.
+* iso-ir-13: Tabular.
+* iso-ir-138: Tabular.
+* iso-ir-139: Tabular.
+* iso-ir-14: Tabular.
+* iso-ir-141: Tabular.
+* iso-ir-143: Tabular.
+* iso-ir-144: Tabular.
+* iso-ir-146: Tabular.
+* iso-ir-147: Tabular.
+* iso-ir-148: Tabular.
+* iso-ir-15: Tabular.
+* iso-ir-150: Tabular.
+* iso-ir-151: Tabular.
+* iso-ir-152: Tabular.
+* iso-ir-153: Tabular.
+* iso-ir-154: Tabular.
+* iso-ir-155: Tabular.
+* iso-ir-157: Tabular.
+* iso-ir-158: Tabular.
+* iso-ir-16: Tabular.
+* iso-ir-17: Tabular.
+* iso-ir-170: Tabular.
+* iso-ir-179: Tabular.
+* iso-ir-179a: Tabular.
+* iso-ir-18: Tabular.
+* iso-ir-19: Tabular.
+* iso-ir-199: Tabular.
+* iso-ir-2: Tabular.
+* iso-ir-203: Tabular.
+* iso-ir-21: Tabular.
+* iso-ir-25: Tabular.
+* iso-ir-27: Tabular.
+* iso-ir-37: Tabular.
+* iso-ir-4: Tabular.
+* iso-ir-47: Tabular.
+* iso-ir-49: Tabular.
+* iso-ir-50: Tabular.
+* iso-ir-51: Tabular.
+* iso-ir-54: Tabular.
+* iso-ir-55: Tabular.
+* iso-ir-57: Tabular.
+* iso-ir-6 <1>: ASCII.
+* iso-ir-6: Tabular.
+* iso-ir-60: Tabular.
+* iso-ir-61: Tabular.
+* iso-ir-69: Tabular.
+* iso-ir-8-1: Tabular.
+* iso-ir-8-2: Tabular.
+* iso-ir-84: Tabular.
+* iso-ir-85: Tabular.
+* iso-ir-86: Tabular.
+* iso-ir-88: Tabular.
+* iso-ir-89: Tabular.
+* iso-ir-9-1: Tabular.
+* iso-ir-9-2: Tabular.
+* iso-ir-90, not recognised by recode: Tabular.
+* iso-ir-93: Tabular.
+* iso-ir-94: Tabular.
+* iso-ir-95: Tabular.
+* iso-ir-96: Tabular.
+* iso-ir-98: Tabular.
+* ISO646-CA: Tabular.
+* ISO646-CA2: Tabular.
+* ISO646-CN: Tabular.
+* ISO646-CU: Tabular.
+* ISO646-DE: Tabular.
+* ISO646-DK: Tabular.
+* ISO646-ES: Tabular.
+* ISO646-ES2: Tabular.
+* ISO646-FI: Tabular.
+* ISO646-FR: Tabular.
+* ISO646-FR1: Tabular.
+* ISO646-GB: Tabular.
+* ISO646-HU: Tabular.
+* ISO646-IT: Tabular.
+* ISO646-JP: Tabular.
+* ISO646-JP-OCR-B: Tabular.
+* ISO646-KR: Tabular.
+* ISO646-NO: Tabular.
+* ISO646-NO2: Tabular.
+* ISO646-PT: Tabular.
+* ISO646-PT2: Tabular.
+* ISO646-SE: Tabular.
+* ISO646-SE2: Tabular.
+* ISO646-US: Tabular.
+* ISO646-YU: Tabular.
+* ISO_10367-box, aliases and source: Tabular.
+* ISO_10646: UCS-4.
+* ISO_2033-1983, aliases and source: Tabular.
+* ISO_5427, aliases and source: Tabular.
+* ISO_5427-ext, aliases and source: Tabular.
+* ISO_5427:1981: Tabular.
+* ISO_5428, aliases and source: Tabular.
+* ISO_5428:1980: Tabular.
+* ISO_646.basic, aliases and source: Tabular.
+* ISO_646.basic:1983: Tabular.
+* ISO_646.irv, aliases and source: Tabular.
+* ISO_646.irv:1983: Tabular.
+* ISO_646.irv:1991: Tabular.
+* ISO_6937-2-25, aliases and source: Tabular.
+* ISO_6937-2-add, not recognised by recode: Tabular.
+* ISO_8859-1: Tabular.
+* ISO_8859-10: Tabular.
+* ISO_8859-10:1993: Tabular.
+* ISO_8859-13: Tabular.
+* ISO_8859-13:1998: Tabular.
+* ISO_8859-14: Tabular.
+* ISO_8859-14:1998: Tabular.
+* ISO_8859-15: Tabular.
+* ISO_8859-15:1998: Tabular.
+* ISO_8859-1:1987: Tabular.
+* ISO_8859-2: Tabular.
+* ISO_8859-2:1987: Tabular.
+* ISO_8859-3: Tabular.
+* ISO_8859-3:1988: Tabular.
+* ISO_8859-4: Tabular.
+* ISO_8859-4:1988: Tabular.
+* ISO_8859-5: Tabular.
+* ISO_8859-5:1988: Tabular.
+* ISO_8859-6: Tabular.
+* ISO_8859-6:1987: Tabular.
+* ISO_8859-7: Tabular.
+* ISO_8859-7:1987: Tabular.
+* ISO_8859-8: Tabular.
+* ISO_8859-8:1988: Tabular.
+* ISO_8859-9: Tabular.
+* ISO_8859-9:1989: Tabular.
+* ISO_8859-supp, aliases and source: Tabular.
+* ISO_9036: Tabular.
+* isoir91: Tabular.
+* isoir92: Tabular.
+* IT, aliases and source: Tabular.
+* JIS_C6220-1969: Tabular.
+* JIS_C6220-1969-jp, aliases and source: Tabular.
+* JIS_C6220-1969-ro, aliases and source: Tabular.
+* JIS_C6226-1978, not recognised by recode: Tabular.
+* JIS_C6229-1984-a, aliases and source: Tabular.
+* JIS_C6229-1984-b, aliases and source: Tabular.
+* JIS_C6229-1984-b-add, aliases and source: Tabular.
+* JIS_C6229-1984-hand, aliases and source: Tabular.
+* JIS_C6229-1984-hand-add, aliases and source: Tabular.
+* JIS_C6229-1984-kana, aliases and source: Tabular.
+* JIS_X0201, aliases and source: Tabular.
+* JIS_X0212-1990, not recognised by recode: Tabular.
+* jp: Tabular.
+* jp-ocr-a: Tabular.
+* jp-ocr-b: Tabular.
+* jp-ocr-b-add: Tabular.
+* jp-ocr-hand: Tabular.
+* jp-ocr-hand-add: Tabular.
+* js: Tabular.
+* JUS_I.B1.002, aliases and source: Tabular.
+* JUS_I.B1.003-mac, aliases and source: Tabular.
+* JUS_I.B1.003-serb, aliases and source: Tabular.
+* Kamenicky: Cyrillic.
+* katakana: Tabular.
+* KEYBCS2: Cyrillic.
+* KOI-7, aliases and source: Tabular.
+* KOI-8, aliases and source: Tabular.
+* KOI-8_CS2: Cyrillic.
+* KOI-8_L2: Tabular.
+* KOI8-R, aliases and source: Tabular.
+* KOI8-RU, aliases and source: Tabular.
+* KOI8-U, aliases and source: Tabular.
+* koi8l2: Tabular.
+* KS_C_5601-1987, not recognised by recode: Tabular.
+* KSC5636, aliases and source: Tabular.
+* l1: Tabular.
+* l2: Tabular.
+* l3: Tabular.
+* l4: Tabular.
+* l5: Tabular.
+* l6: Tabular.
+* l7: Tabular.
+* l8: Tabular.
+* l9: Tabular.
+* lap: Tabular.
+* LaTeX, a charset: LaTeX.
+* Latin-1: ISO 8859.
+* latin-greek, aliases and source: Tabular.
+* Latin-greek-1, aliases and source: Tabular.
+* latin-lap: Tabular.
+* latin1: Tabular.
+* latin1-2-5: Tabular.
+* latin2: Tabular.
+* latin3: Tabular.
+* latin4: Tabular.
+* latin5: Tabular.
+* latin6: Tabular.
+* latin7: Tabular.
+* latin8: Tabular.
+* latin9: Tabular.
+* lin: African.
+* lingala: African.
+* ltex: LaTeX.
+* mac <1>: Apple-Mac.
+* mac: Tabular.
+* mac-is, aliases and source: Tabular.
+* macce <1>: Apple-Mac.
+* macce: Tabular.
+* macedonian: Tabular.
+* macintosh, a charset, and its aliases: Apple-Mac.
+* macintosh, aliases and source: Tabular.
+* macintosh_ce, aliases and source: Tabular.
+* macintosh_ce, and its aliases: Apple-Mac.
+* mnemonic, an alias for RFC1345 charset: Tabular.
+* ms-ansi: Tabular.
+* ms-arab: Tabular.
+* ms-cyrl: Tabular.
+* ms-ee: Tabular.
+* ms-greek: Tabular.
+* ms-hebr: Tabular.
+* ms-turk: Tabular.
+* MSDOS: IBM-PC.
+* MSZ_7795.3, aliases and source: Tabular.
+* Mule, a charset: Mule.
+* NATS-DANO, aliases and source: Tabular.
+* NATS-DANO-ADD, aliases and source: Tabular.
+* NATS-SEFI, aliases and source: Tabular.
+* NATS-SEFI-ADD, aliases and source: Tabular.
+* NC_NC00-10, aliases and source: Tabular.
+* NC_NC00-10:81: Tabular.
+* next: Tabular.
+* NeXTSTEP, aliases and source: Tabular.
+* NF_Z_62-010, aliases and source: Tabular.
+* NF_Z_62-010_(1973), aliases and source: Tabular.
+* no: Tabular.
+* no2: Tabular.
+* NOS: CDC-NOS.
+* NS_4551-1, aliases and source: Tabular.
+* NS_4551-2, aliases and source: Tabular.
+* o1: Dump.
+* o2: Dump.
+* o4: Dump.
+* Octal-1: Dump.
+* Octal-2: Dump.
+* Octal-4: Dump.
+* os2latin1: Tabular.
+* pc: IBM-PC.
+* pcl2: Tabular.
+* pclatin2: Tabular.
+* PT, aliases and source: Tabular.
+* PT2, aliases and source: Tabular.
+* QNX, an alias for a charset: Icon-QNX.
+* QP: MIME.
+* quote-printable: MIME.
+* Quoted-Printable: MIME.
+* r8: Tabular.
+* ref: Tabular.
+* RFC1345, a charset, and its aliases: Tabular.
+* roman8: Tabular.
+* rune: UCS-2.
+* sami, aliases and source: Tabular.
+* sango: African.
+* se: Tabular.
+* se2: Tabular.
+* SEN_850200_B, aliases and source: Tabular.
+* SEN_850200_C, aliases and source: Tabular.
+* serbian: Tabular.
+* SS636127: Tabular.
+* ST_SEV_358-88: Tabular.
+* swabytes: Permutations.
+* t-bambara: African.
+* t-bra: African.
+* t-ewondo: African.
+* t-fra: African.
+* t-francais: African.
+* t-fulfude: African.
+* t-lin: African.
+* t-lingala: African.
+* t-sango: African.
+* t-wolof: African.
+* T.101-G2, not recognised by recode: Tabular.
+* T.61-7bit, aliases and source: Tabular.
+* T.61-8bit, not recognised by recode: Tabular.
+* T1: Cyrillic.
+* test15: Debugging.
+* test16: Debugging.
+* test7: Debugging.
+* test8: Debugging.
+* texi: Texinfo.
+* Texinfo, a charset: Texinfo.
+* Texte: Texte.
+* TF-16: UTF-16.
+* TF-7: UTF-7.
+* TF-8: UTF-8.
+* ti: Texinfo.
+* txte: Texte.
+* u2: UCS-2.
+* u4: UCS-4.
+* u6: UTF-16.
+* u7: UTF-7.
+* u8: UTF-8.
+* UCS: Universal.
+* UCS-2: UCS-2.
+* UCS-4: UCS-4.
+* uk: Tabular.
+* Unicode, an alias for UTF-16: UTF-16.
+* UNICODE-1-1-UTF-7, and aliases: UTF-7.
+* us <1>: ASCII.
+* us: Tabular.
+* US-ASCII <1>: ASCII.
+* US-ASCII: Tabular.
+* us-dk, not recognised by recode: Tabular.
+* UTF-1: Universal.
+* UTF-16, and aliases: UTF-16.
+* UTF-7: UTF-7.
+* UTF-8: UTF-8.
+* UTF-8, aliases: UTF-8.
+* UTF-FSS: UTF-8.
+* WinBaltRim: Tabular.
+* windows-1250: Tabular.
+* windows-1251: Tabular.
+* windows-1252: Tabular.
+* windows-1253: Tabular.
+* windows-1254: Tabular.
+* windows-1255: Tabular.
+* windows-1256: Tabular.
+* windows-1257: Tabular.
+* wolof: African.
+* X0201: Tabular.
+* x0201-7: Tabular.
+* x1: Dump.
+* x2: Dump.
+* x4: Dump.
+* yu: Tabular.
+
+
-\input texinfo
+\input texinfo @c -*-texinfo-*- -*- coding: latin-1 -*-
@c %**start of header
@setfilename recode.info
@settitle The @code{recode} reference manual
+
+@c An index for command-line options
+@defcodeindex op
+@c Put variable and function names together
+@syncodeindex vr fn
@finalout
@c %**end of header
@include version.texi
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
+@dircategory Internationalization and character sets
+@direntry
* recode: (recode). Conversion between character sets and surfaces.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
+@end direntry
@ifinfo
This file documents the @code{recode} command, which has the purpose of
by the Foundation.
@end titlepage
-@ifinfo
+@ifnottex
@node Top, Tutorial, (dir), (dir)
@top @code{recode}
* Miscellaneous:: Various other charsets
* Surfaces:: All about surfaces
* Internals:: Internal aspects
+* Concept Index::
+* Option Index::
+* Library Index::
+* Charset and Surface Index::
@detailmenu
+
--- The Detailed Node Listing ---
Terminology and purpose
@end detailmenu
@end menu
-@end ifinfo
+@end ifnottex
@node Tutorial, Introduction, Top, Top
@chapter Quick Tutorial
+@cindex @code{recode} use, a tutorial
+@cindex tutorial
So, really, you just are in a hurry to use @code{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
On the other hand, it would not be efficient using paraphrases all the time,
so @code{recode} coins a few short words, which are explained below.
+@cindex charset, what it is
A @dfn{charset}, in the context of @code{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
while a MIME charset usually tries to specify them all. A MIME charset
might be the union of a few disjoint coded character sets.
+@cindex surface, what it is
A @dfn{surface} is a term used in @code{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
@node Charset overview, Surface overview, Introduction, Introduction
@section Overview of charsets
+@cindex charsets, overview
Recoding is currently possible between many charsets, the bulk of which
is described by @w{RFC 1345} tables. @xref{Tabular}. The @code{recode}
library also handles some charsets in some specialised ways. These are:
@itemize @bullet
-
@item
6-bit charsets based on CDC display code: 6/12 code from NOS; bang-bang
code from Universit@'e de Montr@'eal;
@item
16-bit or 31-bit universal characters, and their transfer encodings.
-
@end itemize
The introduction of @w{RFC 1345} in @code{recode} has brought with it a few
@node Surface overview, Contributing, Charset overview, Introduction
@section Overview of surfaces
+@cindex surfaces, overview
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
be useful for many unrelated charsets, and many surfaces can be used at
once over a single charset.
+@cindex pure charset
+@cindex charset, pure
So, @code{recode} has machinery to describe a combination of a charset with
surfaces used over it in a file. We would use the expression @dfn{pure
charset} for referring to a charset free of any surface, that is, the
@node Contributing, , Surface overview, Introduction
@section Contributions and bug reports
+@cindex contributing charsets
Even being the @code{recode} author and current maintainer, I am no
specialist in charset standards. I only made @code{recode} along the
years to solve my own needs, but felt it was applicable for the needs
time comes to make a new release, about what would go in it and what would
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
-Fran@,{c}ois Pinard@footnote{Use @email{pinard@@iro.umontreal.ca}
-to reach me}. Do not be afraid to report details, because this program
-is the mere aggregation of hundreds of details.
+@email{pinard@@iro.umontreal.ca}, Fran@,{c}ois Pinard. Do not be afraid
+to report details, because this program is the mere aggregation of
+hundreds of details.
@node Invoking recode, Library, Introduction, Top
@chapter How to use this program
@node Synopsis, Requests, Invoking recode, Invoking recode
@section Synopsis of @code{recode} call
+@cindex @code{recode}, synopsis of invocation
+@cindex invocation of @code{recode}, synopsis
The general format of the program call is one of:
@example
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@footnote{In previous versions or @code{recode}, a single
+merely looks like this@footnote{In previous versions or @code{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
will be recoded over itself so to use the charset @var{after}. If there
is no @var{file} on the @code{recode} command, the program rather acts
as a Unix filter and transforms standard input onto standard output.
+@cindex filter operation
+@cindex @code{recode}, operation as filter
The capability of recoding many files at once is very convenient.
For example, one could easily prepare a distribution from @w{Latin-1} to MSDOS,
@var{before}..@var{after}, then @var{before} and @var{after} specify the
start charset and the goal charset for the recoding.
+@cindex charset names, valid characters
+@cindex valid characters in charset names
For @code{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 allowable @var{request} allows for unusual
+@cindex request, syntax
+@cindex @code{recode} request syntax
+The complete syntax for a valid @var{request} allows for unusual
things, which might surprise at first. (Do not pay too much attention
-to these facilities on a first reading.) For example, @var{request}
-may also contain intermediary charsets, like in:
+to these facilities on first reading.) For example, @var{request}
+may also contain intermediate charsets, like in the following example:
@example
@var{before}..@var{interim1}..@var{interim2}..@var{after}
@end example
@noindent
+@cindex intermediate charsets
+@cindex chaining of charsets in a request
+@cindex charsets, chaining in a request
meaning that @code{recode} should internally produce the @var{interim1}
charset from the start charset, then work out of this @var{interim1}
charset to internally produce @var{interim2}, and from there towards the
@noindent
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 in the general case. One might wonder what would be the meaning
+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. These strange usages might have a
+recodings are chained in this way. Such a strange usage might have a
meaning and be useful for the @code{recode} expert, but they are quite
uncommon in practice.
+@cindex surfaces, syntax
More useful is the distinction between the concept of charset, and
the concept of surfaces. An encoded charset is represented by:
@end example
@noindent
+@cindex surfaces, commutativity
+@cindex commutativity of surfaces
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, @var{surface1} is first applied over the @var{pure-charset},
codes from charset @var{before} to charset @var{after}, prior to applying
@var{surface3} over the result.
+@cindex implied surfaces
+@cindex surfaces, implied
+@tindex IBM-PC charset, and CR-LF surface
Some charsets have one or more @emph{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
effectively defeats the automatic removal of surfaces for this charset.
So, empty surfaces are useful, indeed!
+@cindex aliases
+@cindex alternate names for charsets and surfaces
+@cindex charsets, aliases
+@cindex surfaces, aliases
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.
necessarily share the same implied surfaces. The charset and all its
aliases may each have its own different set of implied surfaces.
+@cindex abbreviated names for charsets and surfaces
+@cindex names of charsets and surfaces, abbreviation
Charset names, surface names, or their aliases may always be abbreviated
to any unambiguous prefix. Internally in @code{recode}, disambiguating
tables are kept separate for charset names and surface names.
+@cindex letter case, in charset and surface names
While recognising a charset name or a surface name (or aliases thereof),
@code{recode} ignores all characters besides letters and digits, so for
example, the hyphens and underlines being part of an official charset
One of the @var{before} or @var{after} keywords may be omitted. If the
double dot separator is omitted too, then the charset is interpreted as
the @var{before} charset.@footnote{Both @var{before} and @var{after} may
-be omitted, in which case the double dot separator may not. This would
-not be very meaningful, as the recoding reduces to a mere copy in that case.}
+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.}
+@cindex default charset
+@cindex charset, default
+@vindex DEFAULT_CHARSET
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 @code{recode} library uses an @emph{usual
+variable is not defined, the @code{recode} library uses the @dfn{usual
charset} which is installation dependent. When this variable is defined but
-has an empty value, charset names may just not be omitted. Unless overriden
-when @code{recode} was installed, this usual charset is @code{Latin-1} for
-Unix systems or @code{IBM-PC} for MS-DOS machines.
+has an empty value, charset names may not be omitted. Unless overriden
+when @code{recode} was installed, the usual charset is @code{Latin-1} for
+Unix systems or @code{IBM-PC} for MS-DOS/MS-Windows machines.
If the charset name is omitted but followed by surfaces, the surfaces
then qualify the usual or default charset. For example, the request
@table @samp
@item --version
+@opindex --version
+@cindex @code{recode} version, printing
The program merely prints its version numbers on standard output, and
exits without doing anything else.
@item --help
+@opindex --help
+@cindex help page, printing
The program merely prints a page of help on standard output, and exits
without doing any recoding.
@item -C
@itemx --copyright
+@opindex -C
+@opindex --copyright
+@cindex copyright conditions, printing
Given this option, all other parameters and options are ignored. The
program prints briefly the copyright and copying conditions. See the
file @file{COPYING} in the distribution for full statement of the
@item -h[@var{language}/][@var{name}]
@itemx --header[=[@var{language}/][@var{name}]]
+@opindex -h
+@opindex --header
+@cindex source file generation
+@cindex programming language support
+@cindex languages, programming
+@cindex supported programming languages
Instead of recoding files, @code{recode} writes a @var{language} source
file on standard output and exits. This source is meant to be included
in a regular program written in the same programming @var{language}:
But this is all fairly technical. Better try and see!
Beware that other options might affect the produced source tables, these
-are: @code{-d}, @code{-g} and, particularly, @code{-s}.
+are: @samp{-d}, @samp{-g} and, particularly, @samp{-s}.
@item -k @var{pairs}
@itemx --known=@var{pairs}
-
+@opindex -k
+@opindex --known=
+@cindex unknown charsets
+@cindex guessing charsets
+@cindex charsets, guessing
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.
@item -l[@var{format}]
@itemx --list[=@var{format}]
+@opindex -l
+@opindex --list
+@cindex listing charsets
+@cindex information about charsets
This option asks for information about all charsets, or about one
particular charset. No file will be recoded.
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 @code{-l} option is obeyed @emph{only} for
+This particular usage of the @samp{-l} option is obeyed @emph{only} for
charsets having a tabular style internal description (@pxref{Tabular}).
-Even if most charsets have this property, some do not, then option
-@code{-l} cannot be used to detail these particular charsets. For knowing
+Even if most charsets have this property, some do not, and the option
+@samp{-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 @var{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:
@table @samp
-
@item decimal
This format asks for the production on standard output of a concise
tabular display of the charset, in which character code values are
@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}
+@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.
-
@end table
-When option @code{-l} is used together with a @var{charset} argument,
+When option @samp{-l} is used together with a @var{charset} argument,
the @var{format} defaults to @code{decimal}.
@item -T
@itemx --find-subsets
-
+@opindex -T
+@opindex --find-subsets
+@cindex identifying subsets in charsets
+@cindex subsets in charsets
This option is a maintainer tool for evaluating the redundancy of those
charsets, in @code{recode}, which are internally represented by an @code{UCS-2}
data table. After the listing has been produced, the program exits
-without doing any recoding. The output of is meant to be sorted, like
+without doing any recoding. The output is meant to be sorted, like
this: @w{@samp{recode -T | sort}}. The option triggers @code{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 @code{-T} output:
+Consider these three sample lines from @samp{-T} output:
@example
[ 0] IBM891 == IBM903
but twelve characters are in @code{CSA_Z243.4-1985-1} without being in
@code{INVARIANT}. The whole output might most probably be reduced and
made more significant through a transitivity study.
-
@end table
@node Recoding, Reversibility, Listings, Invoking recode
@item -c
@itemx --colons
+@opindex -c
+@opindex --colons
+@cindex diaeresis
With @code{Texte} Easy French conventions, use the column @kbd{:}
instead of the double-quote @kbd{"} for marking diaeresis.
@xref{Texte}.
@item -g
@itemx --graphics
+@opindex -g
+@opindex --graphics
+@cindex IBM graphics characters
+@cindex box-drawing characters
This option is only meaningful while getting @emph{out} of the
@code{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 @code{-g} implies @code{-f}.
+the transformation irreversible. Option @samp{-g} implies @samp{-f}.
@item -t
@itemx --touch
+@opindex -t
+@opindex --touch
+@cindex time stamps of files
+@cindex file time stamps
The @emph{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
@item -v
@itemx --verbose
-Before doing any recoding, the program will first print on @file{stderr}
-the list of all intermediate charsets planned for recoding, starting
+@opindex -v
+@opindex --verbose
+@cindex verbose operation
+@cindex details about recoding
+@cindex recoding details
+@cindex quality of recoding
+Before doing any recoding, the program will first print on the @code{stderr}
+stream the list of all intermediate charsets planned for recoding, starting
with the @var{before} charset and ending with the @var{after} charset.
It also prints an indication of the recoding quality, as one of the word
@samp{reversible}, @samp{one to one}, @samp{one to many}, @samp{many to
many single steps by a new one.
This option also has a second effect. The program will print on
-@file{stderr} one message per @var{file} recoded, so to keep the user
+@code{stderr} one message per recoded @var{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
@end example
@noindent
-also using the fact that, in @code{recode}, an empty input file produces
+using the fact that, in @code{recode}, an empty input file produces
an empty output file.
@item -x @var{charset}
@itemx --ignore=@var{charset}
+@opindex -x
+@opindex --ignore
+@cindex ignore charsets
+@cindex recoding path, rejection
This option tells the program to ignore any recoding path through the
specified @var{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
requests offers a finer control, @pxref{Requests}).
@var{charset} may be abbreviated to any unambiguous prefix.
-
@end table
@node Reversibility, Sequencing, Recoding, Invoking recode
The following options are somewhat related to reversibility issues:
@table @samp
-
@item -f
@itemx --force
+@opindex -f
+@opindex --force
+@cindex force recoding
+@cindex irreversible recoding
With this option, irreversible or otherwise erroneous recodings are run
to completion, and @code{recode} does not exit with a non-zero status if
it would be only because irreversibility matters. @xref{Reversibility}.
@item -q
@itemx --quiet
@itemx --silent
+@opindex -q
+@opindex --quiet
+@opindex --silent
+@cindex suppressing diagnostic messages
+@cindex error messages, suppressing
+@cindex silent operation
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 @emph{not} prevent recodings to be aborted
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 @code{-p}.
+issued only once by the parent. See option @samp{-p}.
@item -s
@itemx --strict
+@opindex -s
+@opindex --strict
+@cindex strict operation
+@cindex map filling, disable
+@cindex disable map filling
By using this option, the user requests that @code{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 @code{recode} to fail, unless the option
-@code{-f} is also given as a kind of counter-measure.
+@samp{-f} is also given as a kind of counter-measure.
-Using @code{-s} without @code{-f} might render the @code{recode} program
-very susceptible to the slighest file abnormalities. Despite it might be
+Using @samp{-s} without @samp{-f} might render the @code{recode} program
+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.
-
@end table
-Even if @code{recode} tries hard at keeping the recodings reversible,
+@cindex reversibility of recoding
+Even if @code{recode} tries hard to keep the recodings reversible,
you should not develop an unconditional confidence in its ability to
do so. You @emph{ought} to keep only reasonable expectations about
reverse recodings. In particular, consider:
@itemize @bullet
-
@item
Most transformations are fully reversible for all inputs, but lose this
-property whenever @code{-s} is specified.
+property whenever @samp{-s} is specified.
@item
A few transformations are not meant to be reversible, by design.
could be recoded back and forth through another charset and become
@samp{\^@{\i@}}. Even if the resulting file is equivalent to the
original one, it is not identical.
-
@end itemize
-Unless option @code{-s} is used, @code{recode} automatically tries to
+@cindex map filling
+Unless option @samp{-s} is used, @code{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
As a consequence of this map filling, @code{recode} may sometimes produce
@emph{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 @code{-s}, which asks
+recoding. If you cannot stand these, use option @samp{-s}, which asks
for a very strict recoding.
This map filling sometimes has a few surprising consequences, which
@enumerate
@item
In some cases, @code{recode} seems to copy a file without recoding it.
-But in fact, it does. Consider you requested:
+But in fact, it does. Consider a request:
@example
recode l1..us < File-Latin1 > File-ASCII
@noindent
then @code{cmp} will not report any difference. This is quite normal.
-@w{Latin-1} gets correctly recoded to ASCII for charsets commonalities
+@w{@code{Latin-1}} gets correctly recoded to ASCII for charsets commonalities
(which are the first 128 characters, in this case). The remaining last
-128 @w{Latin-1} characters have no ASCII correspondent. Instead of losing
-them, recode elects to map them to unspecified characters of ASCII, so
+128 @w{@code{Latin-1}} characters have no ASCII correspondent. Instead
+of losing
+them, @code{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 @code{-s}. By doing so,
-@code{recode} will strictly map only those @w{Latin-1} characters which have
+care about reversibility, simply use option @samp{-s}. By doing so,
+@code{recode} will strictly map only those @w{@code{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.
@item
Recoding the wrong way could sometimes give the false impression that
-recoding has @emph{almost} been done properly. Consider you request:
+recoding has @emph{almost} been done properly. Consider the requests:
@example
recode 437..l1 < File-Latin1 > Temp1
@noindent
so declaring wrongly @file{File-Latin1} to be an IBM-PC file, and
-recoding to Latin1. This is surely ill defined and not meaningful.
+recoding to @code{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 @file{Temp2} are identical to those in
-@file{File-Latin1}. A few people try to discover how @code{recode}
+@file{File-Latin1}. Sometimes, people try to discover how @code{recode}
works by experimenting a little at random, rather than reading and
-understanding the documentation; such results are surely confusing,
-as they provide a feel to those people that they understood something.
+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
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.
-
@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
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.
@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
@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 cost of more system overhead.
+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 @code{-p} is equivalent to selecting
-option @code{-i}.
-
+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
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 easy.
+which charsets are encoded at various places is not always available.
The @code{recode} program is able to handle only a few simple cases
of mixed input.
@end ignore
@table @samp
-
@item -d
@itemx --diacritics
+@opindex -d
+@opindex --diacritics
+@cindex convert a subset of characters
+@cindex partial conversion
While converting to or from one of @code{HTML} or @code{LaTeX}
charset, limit conversion to some subset of all characters.
For @code{HTML}, limit conversion to the subset of all non-ASCII
@ignore
@item -M
@itemx --message
-Option -M would be for messages, it would ideally process @w{RFC 1522} inserts
+@opindex -M
+@opindex --message
+Option @samp{-M} would be for messages, it would ideally process @w{RFC
+1522} inserts
in ASCII headers, converting them to the goal code, rewriting some MIME
header line too, and stopping its special work at the first empty line.
A special combination of both capabilities would be for the recoding of
@item -S[@var{language}]
@itemx --source[=@var{language}]
+@opindex -S
+@opindex --source
+@cindex convert strings and comments
+@cindex string and comments conversion
The bulk of the input file is expected to be written in @code{ASCII},
except for parts, like comments and string constants, which are written
using another charset than @code{ASCII}. When @var{language} is @samp{c},
where the comment or string ends.
Even if @code{ASCII} is the usual charset for writing programs, some
-compilers are able to directly read other charsets, like @code{UTF-8} say.
+compilers are able to directly read other charsets, like @code{UTF-8}, say.
There is currently no provision in @code{recode} for reading mixed charset
sources which are not based on @code{ASCII}. It is probable that the need
for mixed recoding is not as pressing in such cases.
@noindent
file @file{@var{output}.po} holds a copy of @file{@var{input}.po} in which
-translator comments and the contents of @code{msgstr} strings @emph{only}
+@emph{only} translator comments and the contents of @code{msgstr} strings
have been recoded from the @code{IBM-PC} charset to pure @code{UTF-8},
without attempting conversion of end-of-lines. Machine generated comments
and original @code{msgid} strings are not to be touched by this recoding.
If @var{language} is not specified, @samp{c} is assumed.
-
@end table
@node Emacs, , Mixed, Invoking recode
The fact @code{recode} is a filter makes it quite easy to use from
within GNU Emacs. For example, recoding the whole buffer from
-the IBM-PC charset to current charset (@w{Latin-1} on Unix) is easily
-done with:
+the @code{IBM-PC} charset to current charset (@w{@code{Latin-1}} on
+Unix) is easily done with:
@example
C-x h C-u M-| recode ibmpc RET
@end example
@noindent
-The @samp{C-x h} selects the whole buffer, and @samp{C-u M-|} filters and
+@samp{C-x h} selects the whole buffer, and @samp{C-u M-|} filters and
replaces the current region through the given shell command. Here is
another example, binding the keys @w{@samp{C-c T}} to the recoding of
-the current region from Easy French to @w{Latin-1} (on Unix) and the key
-@w{@samp{C-u C-c T}} from @w{Latin-1} (on Unix) to Easy French:
+the current region from Easy French to @w{@code{Latin-1}} (on Unix) and the key
+@w{@samp{C-u C-c T}} from @w{@code{Latin-1}} (on Unix) to Easy French:
@example
(global-set-key "\C-cT" 'recode-texte)
@node Library, Universal, Invoking recode, Top
@chapter A recoding library
+@cindex recoding library
The program named @code{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
@node Outer level, Request level, Library, Library
@section Outer level functions
+@cindex 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 <stdbool.h>
#include <recode.h>
+const char *program_name;
+
int
-main ()
+main (int argc, char *const *argv)
@{
+ program_name = argv[0];
RECODE_OUTER outer = recode_new_outer (true);
recode_delete_outer (outer);
@end group
@end example
-The header file @file{<recode.h>} declares an opaque @code{RECODE_OUTER}
+@vindex RECODE_OUTER structure
+The header file @code{<recode.h>} declares an opaque @code{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 @samp{outer} variable is given as a first argument to
all outer level functions.
-The @file{<recode.h>} header file uses the Boolean type setup by the
-system header file @file{<stdbool.h>}. But this header file is still
+@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>}. But this header file is still
fairly new in C standards, and likely does not exist everywhere. If you
system does not offer this system header file yet, the proper compilation
-of the @file{<recode.h>} file could be guaranteed through the replacement
+of the @code{<recode.h>} file could be guaranteed through the replacement
of the inclusion line by:
@example
#include <recode.h>
+const char *program_name;
+
int
-main ()
+main (int argc, char *const *argv)
@{
+ program_name = argv[0];
RECODE_OUTER outer = recode_new_outer (true);
recode_term_outer (outer);
@itemize @bullet
@item Initialisation functions
+@cindex initialisation functions, outer
@example
RECODE_OUTER recode_new_outer (@var{auto_abort});
bool recode_delete_outer (@var{outer});
@end example
+@findex recode_new_outer
+@findex recode_delete_outer
The recoding library absolutely needs to be initialised before being used,
and @code{recode_new_outer} has to be called once, first. Besides the
@var{outer} it is meant to initialise, the function accepts a Boolean
aesthetic then useful, as all memory resources are automatically reclaimed
when the program ends. You may spare this terminating call if you prefer.
+@item The @code{program_name} declaration
+
+@cindex @code{program_name} variable
+As we just explained, the user may set the @code{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 @code{program_name} variable is needed: it
+may be used by the library @emph{when} the user sets it to diagnose itself.
@end itemize
@node Request level, Task level, Outer level, Library
@section Request level functions
+@cindex 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
#include <stdbool.h>
#include <recode.h>
+const char *program_name;
+
int
-main ()
+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;
@end group
@end example
-The header file @file{<recode.h>} declares a @code{RECODE_REQUEST} structure,
+@vindex RECODE_REQUEST structure
+The header file @code{<recode.h>} declares a @code{RECODE_REQUEST} structure,
which the programmer should use for allocating a variable in his program.
This @var{request} variable is given as a first argument to all request
level functions, and in most cases, may be considered as opaque.
@itemize @bullet
@item Initialisation functions
+@cindex initialisation functions, request
@example
RECODE_REQUEST recode_new_request (@var{outer});
bool recode_delete_request (@var{request});
@end example
+@findex recode_new_request
+@findex recode_delete_request
No @var{request} variable may not be used in other request level
functions of the recoding library before having been initialised by
@code{recode_new_request}. There may be many such @var{request}
prior to program termination, in the example above, may be left out.
@item Fields of @code{struct recode_request}
+@vindex recode_request structure
Here are the fields of a @code{struct recode_request} which may be
meaningfully changed, once a @var{request} has been initialised by
your programs if a new version of the recoding library gets installed.
@table @code
-
@item verbose_flag
+@vindex verbose_flag
This field is initially @code{false}. When set to @code{true}, the
library will echo to stderr the sequence of elementary recoding steps
needed to achieve the requested recoding.
@item diaeresis_char
+@vindex diaeresis_char
This field is initially the ASCII value of a double quote @kbd{"},
but it may also be the ASCII value of a colon @kbd{:}. In @code{texte}
charset, some countries use double quotes to mark diaeresis, while other
for the @code{texte} charset.
@item make_header_flag
+@vindex make_header_flag
This field is initially @code{false}. When set to @code{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,
will fail.
@item diacritics_only
+@vindex diacritics_only
This field is initially @code{false}. For @code{HTML} and @code{LaTeX}
charset, it is often convenient to recode the diacriticized characters
only, while just not recoding other HTML code using ampersands or angular
well as HTML or La@TeX{} directives.
@item ascii_graphics
+@vindex ascii_graphics
This field is initially @code{false}, and relate to characters 176 to
223 in the @code{ibmpc} charset, which are use to draw boxes. When set
to @code{true}, while getting out of @code{ibmpc}, ASCII characters are
selected so to graphically approximate these boxes.
-
@end table
@item Study of request strings
bool recode_scan_request (@var{request}, "@var{string}");
@end example
+@findex recode_scan_request
The main role of a @var{request} variable is to describe a set of
recoding transformations. Function @code{recode_scan_request} studies
the given @var{string}, and stores an internal representation of it into
-@var{request}. Note that @var{string} may be a full-fledge @code{recode}
+@var{request}. Note that @var{string} may be a full-fledged @code{recode}
request, possibly including surfaces specifications, intermediary
charsets, sequences, aliases or abbreviations (@pxref{Requests}).
recode_string (@var{request}, @var{string});
@end example
+@findex recode_string
The function @code{recode_string} recodes @var{string} according
to @var{request}, and directly returns the resulting recoded string
freshly allocated, or @code{NULL} if the recoding could not succeed for
the programmer to ensure that the memory used by the returned string is
later reclaimed.
+@findex recode_string_to_buffer
+@findex recode_string_to_file
+@findex recode_buffer_to_buffer
+@findex recode_buffer_to_file
+@findex recode_file_to_buffer
+@findex recode_file_to_file
@example
char *recode_string_to_buffer (@var{request},
@var{input_string},
@item file
+@findex recode_filter_open@r{, not available}
+@findex recode_filter_close@r{, not available}
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
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.
-
@end table
-
@end itemize
+@findex recode_format_table
The following special function is still subject to change:
@example
@node Task level, Charset level, Request level, Library
@section Task level functions
+@cindex task level functions
The task level functions are used internally by the request level
functions, they allow more explicit control over files and memory
#include <stdbool.h>
#include <recodext.h>
+const char *program_name;
+
int
-main ()
+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;
@end group
@end example
-The header file @file{<recode.h>} declares a @code{RECODE_TASK}
+@vindex RECODE_TASK structure
+The header file @code{<recode.h>} declares a @code{RECODE_TASK}
structure, which the programmer should use for allocating a variable in
-his program. This @samp{task} variable is given as a first argument to
+his program. This @code{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.
@itemize @bullet
-
@item Initialisation functions
+@cindex initialisation functions, task
+@findex recode_new_task
+@findex recode_delete_task
@example
RECODE_TASK recode_new_task (@var{request});
bool recode_delete_task (@var{task});
in some future version of the recoding library, it might become required.
@item Fields of @code{struct task_request}
+@vindex task_request structure
Here are the fields of a @code{struct task_request} which may be meaningfully
changed, once a @var{task} has been initialised by @code{recode_new_task}.
your programs if a new version of the recoding library gets installed.
@table @code
-
@item request
The field @code{request} points to the current recoding request, but may
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
@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
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
mark is to be expected at the beginning of any canonical @code{UCS-2}
or @code{UTF-16} text, and that such a byte order mark should be also
produced for these charsets.
@item fail_level
+@vindex fail_level
This field, which is of type @code{enum recode_error} (@pxref{Errors}),
sets the error level at which task level functions should report a failure.
If an error being detected is equal or greater than @code{fail_level},
@emph{any} error.
@item abort_level
+@vindex abort_level
+@vindex RECODE_MAXIMUM_ERROR
This field, which is of type @code{enum recode_error} (@pxref{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
another value, the library will never interrupt a recoding task.
@item error_so_far
+@vindex error_so_far
This field, which is of type @code{enum recode_error} (@pxref{Errors}),
maintains the maximum error level met so far while the recoding task
was proceeding. The preset value is @code{RECODE_NO_ERROR}.
-
@end table
@item Task execution
+@cindex task execution
+@findex recode_perform_task
+@findex recode_filter_open
+@findex recode_filter_close
@example
recode_perform_task (@var{task});
recode_filter_open (@var{task}, @var{file});
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.
-
@end itemize
@node Charset level, Errors, Task level, Library
@section Charset level functions
+@cindex charset level functions
+@cindex internal functions
Many functions are internal to the recoding library. Some of them
have been made external and available, for the @code{recode} program
had to retain all its previous functionality while being transformed
it would be convenient to document them as an API for handling charset
names and contents.
+@findex find_charset
+@findex list_all_charsets
+@findex list_concise_charset
+@findex list_full_charset
@example
RECODE_CHARSET find_charset (@var{name}, @var{cleaning-type});
bool list_all_charsets (@var{charset});
@node Errors, , Charset level, Library
@section Handling errors
+@cindex error handling
+@cindex handling errors
+@cindex error messages
The @code{recode} program, while using the @code{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
-about if the recoding should be abruptly interrupted when an error is
+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.
@table @code
-
@item RECODE_NO_ERROR
+@vindex RECODE_NO_ERROR
No error was met on previous library calls.
@item RECODE_NOT_CANONICAL
+@vindex RECODE_NOT_CANONICAL
+@cindex non canonical input, error message
The input text was using one of the many alternative codings for some
phenomenon, but not the one @code{recode} would have canonically generated.
For example, a @code{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 @samp{\^@{e@}} instead of @samp{\^e} is not canonical.
+which is coded as @samp{\^@{e@}} instead of @samp{\^e} is not canonical.
@item RECODE_AMBIGUOUS_OUTPUT
+@vindex RECODE_AMBIGUOUS_OUTPUT
+@cindex ambiguous output, error message
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,
problem to accomplish this detection, or to do it speedily.
@item RECODE_UNTRANSLATABLE
+@vindex RECODE_UNTRANSLATABLE
+@cindex untranslatable input, error message
One or more input character could not be recoded, because there is just
no representation for this character in the output charset.
represent Asian characters cannot be expressed in various Latin charsets.
@item RECODE_INVALID_INPUT
+@vindex RECODE_INVALID_INPUT
+@cindex invalid input, error message
-The input text does comply with the coding it is declared to hold. So,
+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 @code{recode} should never produce invalid output.
-Here are a few examples. In strict mode, @code{ASCII} text just may
-not contain characters with the eight bit set. @code{UTF-8} encodings
+Here are a few examples. In strict mode, @code{ASCII} text is not allowed
+to contain characters with the eight bit set. @code{UTF-8} encodings
ought to be minimal@footnote{The minimality of an @code{UTF-8} encoding
is guaranteed on output, but currently, it is not checked on input.}.
@item RECODE_SYSTEM_ERROR
+@vindex RECODE_SYSTEM_ERROR
+@cindex system detected problem, error message
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.)
@item RECODE_USER_ERROR
+@vindex RECODE_USER_ERROR
+@cindex misuse of recoding library, error message
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.)
@item RECODE_INTERNAL_ERROR
+@vindex RECODE_INTERNAL_ERROR
+@cindex internal recoding bug, error message
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 also, by un-initialised or overwritten arguments to
+library, or maybe due to un-initialised or overwritten arguments to
the API.
(This error symbol is currently unused in the library.)
@item RECODE_MAXIMUM_ERROR
+@vindex RECODE_MAXIMUM_ERROR
This error code should never be returned, it is only internally used as
-a sentinel over all possible error codes.
-
+a sentinel for the list of all possible error codes.
@end table
+@cindex error level threshold
+@cindex threshold for error reporting
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
while others are forgotten@footnote{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, fear it would be overkill.
+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.}. So, in case of an error,
the possible actions currently are:
@end itemize
@noindent
-@xref{Task level}, and particularly the description of fields
+@xref{Task level}, and particularly the description of the fields
@code{fail_level}, @code{abort_level} and @code{error_so_far}, for more
information about how errors are handled.
@node Universal, Tabular, Library, Top
@chapter The universal charset
+@cindex ISO 10646
Standard @w{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
(@math{2^31}).
+@tindex UCS
This charset was to become available in @code{recode} under the name
@code{UCS}, with many external surfaces for it. But in the current
version, only surfaces of @code{UCS} are offered, each presented as a
for the @code{UCS} charset, so it is not that useful to draw a line
between the surfaces and the only charset to which they may apply.
+@tindex UTF-1
@code{UCS} stands for Universal Character Set. @code{UCS-2} and
@code{UCS-4} are fixed length encodings, using two or four bytes per
character respectively. @code{UTF} stands for @code{UCS} Transformation
Format, and are variable length encodings dedicated to @code{UCS}.
@code{UTF-1} was based on @w{ISO 2022}, it did not succeed@footnote{It is not
-probable that @code{recode} will support @code{UTF-1} ever.}. @code{UTF-2}
+probable that @code{recode} will ever support @code{UTF-1}.}. @code{UTF-2}
replaced it, it has been called @code{UTF-FSS} (File System Safe) in
Unicode or Plan9 context, but is better known today as @code{UTF-8}.
To complete the picture, there is @code{UTF-16} based on 16 bits bytes,
Most often, one might see @code{UTF-8} used for external storage, and
@code{UCS-2} used for internal storage.
+@c FIXME: the manual never explains what the U+NNNN notation means!
When @code{recode} is producing any representation of @code{UCS},
it uses the replacement character @code{U+FFFD} for any @emph{valid}
character which is not representable in the goal charset@footnote{This
is when the goal charset allows for 16-bits. For shorter charsets,
-the @code{--strict} (@code{-s}) option decides what happens: either the
+the @samp{--strict} (@samp{-s}) option decides what happens: either the
character is dropped, or a reversible mapping is produced on the fly.}.
This happens, for example, when @code{UCS-2} is not capable to echo a
wide @code{UCS-4} character, or for a similar reason, an @code{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, @code{recode} just get rid of the noise, while taking note
-of the error its usual ways.
+In such cases, @code{recode} just gets rid of the noise, while taking note
+of the error in its usual ways.
Even if @code{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
@node UCS-2, UCS-4, Universal, Universal
@section Universal Character Set, 2 bytes
+@tindex UCS-2
+@cindex Unicode
One surface of @code{UCS} is usable for the subset defined by its first
sixty thousand characters (in fact, @math{31 * 2^11} codes), and uses
exactly two bytes per character. It is a mere dump of the internal
memory representation which is @emph{natural} for this subset and as such,
conveys with it endianness problems.
+@cindex byte order mark
A non-empty @code{UCS-2} file normally begins with a so called @dfn{byte
order mark}, having value @code{0xFEFF}. The value @code{0xFFFE} is not an
@code{UCS} character, so if this value is seen at the beginning of a file,
about non canonical input.
By default, when producing an @code{UCS-2} file, @code{recode} always
-output the high order byte before the low order byte. But this could be
-easily overridden through the @code{21-Permutation} surface. For example,
-the command:
+outputs the high order byte before the low order byte. But this could be
+easily overridden through the @code{21-Permutation} surface
+(@pxref{Permutations}). For example, the command:
@example
recode u8..u2/21 < @var{input} > @var{output}
asks for an @code{UTF-8} to @code{UCS-2} conversion, with swapped byte
output.
-Use it as a genuine charset. This charset is available in @code{recode}
-under the name @code{ISO-10646-UCS-2}. Accepted aliases are @code{UCS-2},
-@code{BMP}, @code{rune} and @code{u2}.
+@tindex ISO-10646-UCS-2, and aliases
+@tindex BMP
+@tindex rune
+@tindex u2
+Use @code{UCS-2} as a genuine charset. This charset is available in
+@code{recode} under the name @code{ISO-10646-UCS-2}. Accepted aliases
+are @code{UCS-2}, @code{BMP}, @code{rune} and @code{u2}.
+@tindex combined-UCS-2
+@cindex combining characters
The @code{recode} library is able to combine @code{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
@node UCS-4, UTF-7, UCS-2, Universal
@section Universal Character Set, 4 bytes
+@tindex UCS-4
Another surface of @code{UCS} uses exactly four bytes per character, and is
a mere dump of the internal memory representation which is @emph{natural}
for the whole charset and as such, conveys with it endianness problems.
+@tindex ISO-10646-UCS-4, and aliases
+@tindex ISO_10646
+@tindex 10646
+@tindex u4
Use it as a genuine charset. This charset is available in @code{recode}
under the name @code{ISO-10646-UCS-4}. Accepted aliases are @code{UCS},
@code{UCS-4}, @code{ISO_10646}, @code{10646} and @code{u4}.
@node UTF-7, UTF-8, UCS-4, Universal
@section Universal Transformation Format, 7 bits
-@code{UTF-7} comes from IETF rather than ISO, and is described by @w{RFC 1642},
-in the MIME series. The @code{UTF-7} encoding is meant to fit @code{UCS-2}
-over channels limited to seven bits per byte. It proceeds from a mix
-between the spirit of @code{Quoted-Printable} and methods of @code{Base64},
-adapted to Unicode contexts.
+@tindex UTF-7
+@code{UTF-7} comes from IETF rather than ISO, and is described by @w{RFC
+2152}, in the MIME series. The @code{UTF-7} encoding is meant to fit
+@code{UCS-2} over channels limited to seven bits per byte. It proceeds
+from a mix between the spirit of @code{Quoted-Printable} and methods of
+@code{Base64}, adapted to Unicode contexts.
+@tindex UNICODE-1-1-UTF-7, and aliases
+@tindex TF-7
+@tindex u7
This charset is available in @code{recode} under the name
@code{UNICODE-1-1-UTF-7}. Accepted aliases are @code{UTF-7}, @code{TF-7}
and @code{u7}.
@node UTF-8, UTF-16, UTF-7, Universal
@section Universal Transformation Format, 8 bits
+@tindex UTF-8
Even if @code{UTF-8} does not originally come from IETF, there is now
@w{RFC 2279} to describe it. In letters sent on 1995-01-21 and 1995-04-20,
Markus Kuhn writes:
@quotation
-@code{UTF-8} is an @code{ASCII} compatible multi-byte encoding of
-the @w{ISO 10646} universal character set (@code{UCS}). @code{UCS} is a
-31-bit superset of all other character set standards. The first 256
-characters of @code{UCS} are identical to those of @w{ISO 8859-1} (@w{Latin-1}).
-The @code{UCS-2} encoding of UCS is a sequence of bigendian 16-bit
-words, the @code{UCS-4} encoding is a sequence of bigendian 32-bit words.
-The @code{UCS-2} subset of @w{ISO 10646} is also known as ``Unicode''. As both
-@code{UCS-2} and @code{UCS-4} require heavy modifications to traditional
-@code{ASCII} oriented system designs (e.g. Unix), the @code{UTF-8}
-encoding has been designed for these applications.
+@code{UTF-8} is an @code{ASCII} compatible multi-byte encoding of the @w{ISO
+10646} universal character set (@code{UCS}). @code{UCS} is a 31-bit superset
+of all other character set standards. The first 256 characters of @code{UCS}
+are identical to those of @w{ISO 8859-1} (@w{Latin-1}). The @code{UCS-2}
+encoding of UCS is a sequence of bigendian 16-bit words, the @code{UCS-4}
+encoding is a sequence of bigendian 32-bit words. The @code{UCS-2} subset
+of @w{ISO 10646} is also known as ``Unicode''. As both @code{UCS-2}
+and @code{UCS-4} require heavy modifications to traditional @code{ASCII}
+oriented system designs (e.g. Unix), the @code{UTF-8} encoding has been
+designed for these applications.
In @code{UTF-8}, only @code{ASCII} characters are encoded using bytes
below 128. All other non-ASCII characters are encoded as multi-byte
@code{UTF-8} is the most common external surface of @code{UCS}, each
character uses from one to six bytes, and is able to encode all @math{2^31}
characters of the @code{UCS}. It is implemented as a charset, with the
-following properties.
+following properties:
@itemize @bullet
@item
first byte of a multi-byte character, and the initial @samp{10} bits of
all remaining bytes (so keeping 6 bits per byte for those), the remaining
bits concatenated are the UCS value.
-
@end itemize
@noindent
-These properties also have a few nice consequences.
+These properties also have a few nice consequences:
@itemize @bullet
@item
A sequence of @var{N} bytes can hold characters needing up to 2 + 5@var{N}
bits in their @code{UCS} representation. Here, @var{N} is a number between
1 and 6. So, @code{UTF-8} is most economical when mapping ASCII (1 byte),
-then @code{UCS-2} (1 to 3 bytes), then @code{UCS-4} (1 to 6 bytes).
+followed by @code{UCS-2} (1 to 3 bytes) and @code{UCS-4} (1 to 6 bytes).
@item
The lexicographic sorting order of @code{UCS} strings is preserved.
@item
Bytes with value 254 or 255 never appear, and because of that, these are
sometimes used when escape mechanisms are needed.
-
@end itemize
In some case, when little processing is done on a lot of strings, one may
in either direction. In most cases, it is faster and easier to convert
from @code{UTF-8} to @code{UCS-2} or @code{UCS-4} prior to processing.
+@tindex UTF-8, aliases
+@tindex UTF-FSS
+@tindex FSS_UTF
+@tindex TF-8
+@tindex u8
This charset is available in @code{recode} under the name @code{UTF-8}.
Accepted aliases are @code{UTF-2}, @code{UTF-FSS}, @code{FSS_UTF},
@code{TF-8} and @code{u8}.
@node UTF-16, count-characters, UTF-8, Universal
@section Universal Transformation Format, 16 bits
+@tindex UTF-16, and aliases
Another external surface of @code{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 (@math{17 * 2^16}) of @code{UCS}.
-Martin J. D@"urst writes (to @file{comp.std.internat}, on 1995-03-28):
+Martin J. D@"urst writes (to @uref{comp.std.internat}, on 1995-03-28):
@quotation
@code{UTF-16} is another method that reserves two times 1024 codepoints in
positions available, now that 2,000 are gone).
@end quotation
+@tindex Unicode, an alias for UTF-16
+@tindex TF-16
+@tindex u6
This charset is available in @code{recode} under the name @code{UTF-16}.
Accepted aliases are @code{Unicode}, @code{TF-16} and @code{u6}.
@node count-characters, dump-with-names, UTF-16, Universal
@section Frequency count of characters
+@tindex count-characters
+@cindex counting 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 @code{UCS-2}
value of the character and, when known, the @w{RFC 1345} mnemonic for that
@node dump-with-names, , count-characters, Universal
@section Fully interpreted UCS dump
+@tindex dump-with-names
+@cindex dumping characters, with description
+@cindex character streams, description
+@cindex description of individual characters
Another device may be used to get fully interpreted dumps of an @code{UCS-2}
stream of characters, with one @code{UCS-2} character displayed on a full
output line. Each line receives the @w{RFC 1345} mnemonic for the character
than a surface. This is surely debatable. The current implementation
allows for dumping charsets other than @code{UCS-2}. For example, the
command @w{@samp{recode l2..full < @var{input}}} implies a necessary
-conversion from @code{Latin-2} to @code{UCS-2}, as @code{full-dump}
+conversion from @code{Latin-2} to @code{UCS-2}, as @code{dump-with-names}
is only connected out from @code{UCS-2}. In such cases, @code{recode}
does not display the original @code{Latin-2} codes in the dump, only the
corresponding @code{UCS-2} values. To give a simpler example, the command
@end example
@noindent
-produces the following output.
+produces the following output:
@example
-Mne UCS2 Description
-
-H 0048 latin capital letter h
-e 0065 latin small letter e
-l 006C latin small letter l
-l 006C latin small letter l
-o 006F latin small letter o
-, 002C comma
-SP 0020 space
-w 0077 latin small letter w
-o 006F latin small letter o
-r 0072 latin small letter r
-l 006C latin small letter l
-d 0064 latin small letter d
-! 0021 exclamation mark
-LF 000A line feed (lf)
+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)
@end example
The descriptive comment is given in English and @code{ASCII},
@node Tabular, ASCII misc, Universal, Top
@chapter Tabular sources (@w{RFC 1345})
+@cindex RFC 1345
+@cindex character mnemonics, documentation
+@cindex @code{chset} tools
An important part of the tabular charset knowledge in @code{recode}
comes from @w{RFC 1345} or, alternatively, from the @code{chset} tools,
both maintained by Keld Simonsen. The @w{RFC 1345} document:
@end quotation
@noindent
+@cindex deviations from RFC 1345
defines many character mnemonics and character sets. The @code{recode}
library implements most of @w{RFC 1345}, however:
@itemize @bullet
@item
+@tindex dk-us@r{, not recognised by }recode
+@tindex us-dk@r{, not recognised by }recode
It does not recognise those charsets which overload character positions:
@code{dk-us} and @code{us-dk}. However, see @ref{Mixed}.
@item
+@tindex ANSI_X3.110-1983@r{, not recognised by }recode
+@tindex ISO_6937-2-add@r{, not recognised by }recode
+@tindex T.101-G2@r{, not recognised by }recode
+@tindex T.61-8bit@r{, not recognised by }recode
+@tindex iso-ir-90@r{, not recognised by }recode
It does not recognise those charsets which combine two characters for
representing a third: @code{ANSI_X3.110-1983}, @code{ISO_6937-2-add},
@code{T.101-G2}, @code{T.61-8bit}, @code{iso-ir-90} and
@code{videotex-suppl}.
@item
+@tindex GB_2312-80@r{, not recognised by }recode
+@tindex JIS_C6226-1978@r{, not recognised by }recode
+@tindex JIS_X0212-1990@r{, not recognised by }recode
+@tindex KS_C_5601-1987@r{, not recognised by }recode
It does not recognise 16-bits charsets: @code{GB_2312-80},
@code{JIS_C6226-1978}, @code{JIS_C6226-1983}, @code{JIS_X0212-1990} and
@code{KS_C_5601-1987}.
@item
+@tindex isoir91
+@tindex isoir92
It interprets the charset @code{isoir91} as @code{NATS-DANO} (alias
@code{iso-ir-9-1}), @emph{not} as @code{JIS_C6229-1984-a} (alias
@code{iso-ir-91}). It also interprets the charset @code{isoir92}
as @code{NATS-DANO-ADD} (alias @code{iso-ir-9-2}), @emph{not} as
@code{JIS_C6229-1984-b} (alias @code{iso-ir-92}). It might be better
just avoiding these two alias names.
-
@end itemize
Keld Simonsen @email{keld@@dkuug.dk} did most of @w{RFC 1345} himself, with
contributed. A number of people have checked the tables in various
ways. The RFC lists a number of people who helped.
+@cindex @code{recode}, and RFC 1345
Keld and the @code{recode} maintainer have an arrangement by which any new
discovered information submitted by @code{recode} users, about tabular
charsets, is forwarded to Keld, eventually merged into Keld's work,
we act otherwise. In a word, @code{recode} should be perceived as the
application of external references, but not as a reference in itself.
+@tindex RFC1345@r{, a charset, and its aliases}
+@tindex 1345
+@tindex mnemonic@r{, an alias for RFC1345 charset}
Internally, @w{RFC 1345} associates which each character an unambiguous
mnemonic of a few characters, taken from @w{ISO 646}, which is a minimal
ASCII subset of 83 characters. The charset made up by these mnemonics
@table @code
@include charset.texi
-
@end table
@node ASCII misc, IBM and MS, Tabular, Top
@node ASCII, ISO 8859, ASCII misc, ASCII misc
@section Usual ASCII
+@tindex ASCII@r{, an alias for the }ANSI_X3.4-1968@r{ charset}
+@tindex ANSI_X3.4-1968@r{, and its aliases}
+@tindex IBM367
+@tindex US-ASCII
+@tindex cp367
+@tindex iso-ir-6
+@tindex us
This charset is available in @code{recode} under the name @code{ASCII}.
In fact, it's true name is @code{ANSI_X3.4-1968} as per @w{RFC 1345},
accepted aliases being @code{ANSI_X3.4-1986}, @code{ASCII},
@code{US-ASCII}, @code{cp367}, @code{iso-ir-6} and @code{us}. The
shortest way of specifying it in @code{recode} is @code{us}.
+@cindex ASCII table, recreating with @code{recode}
This documentation used to include ASCII tables. They have been removed
since the @code{recode} program can now recreate these easily:
@node ISO 8859, ASCII-BS, ASCII, ASCII misc
@section ASCII extended by Latin Alphabets
+@cindex Latin charsets
There are many Latin charsets. The following has been written by Tim
Lasko @email{lasko@@video.dec.com}, a long while ago:
@quotation
-ISO @w{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 @w{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:
+ISO @w{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 @w{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:
@itemize @bullet
@item
@item
Latin-Hebrew alphabet (right half Hebrew + symbols - proposed).
@end itemize
-
@end quotation
+@tindex Latin-1
The ISO Latin Alphabet 1 is available as a charset in @code{recode} under
the name @code{Latin-1}. In fact, it's true name is @code{ISO_8859-1:1987}
as per @w{RFC 1345}, accepted aliases being @code{CP819}, @code{IBM819},
and @code{Latin-1}. The shortest way of specifying it in @code{recode}
is @code{l1}.
+@cindex Latin-1 table, recreating with @code{recode}
It is an eight-bit code which coincides with ASCII for the lower half.
This documentation used to include @w{Latin-1} tables. They have been removed
since the @code{recode} program can now recreate these easily:
@node ASCII-BS, flat, ISO 8859, ASCII misc
@section ASCII 7-bits, @kbd{BS} to overstrike
+@tindex ASCII-BS@r{, and its aliases}
+@tindex BS@r{, an alias for }ASCII-BS@r{ charset}
This charset is available in @code{recode} under the name
@code{ASCII-BS}, with @code{BS} as an acceptable alias.
+@cindex diacritics, with @code{ASCII-BS} charset
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 @kbd{BS}, the diacritic mark. We deviate slightly from this
@node flat, , ASCII-BS, ASCII misc
@section ASCII without diacritics nor underline
+@tindex flat@r{, a charset}
This charset is available in @code{recode} under the name @code{flat}.
+@cindex diacritics and underlines, removing
+@cindex removing diacritics and underlines
This code is ASCII expunged of all diacritics and underlines, as long as
they are applied using three character sequences, with @kbd{BS} in the
middle. Also, despite slightly unrelated, each control character is
@node IBM and MS, CDC, ASCII misc, Top
@chapter Some IBM or Microsoft charsets
+@cindex IBM codepages
+@cindex codepages
The @code{recode} program provides various IBM or Microsoft code pages
(@pxref{Tabular}). An easy way to find them all at once out of the
@code{recode} program itself is through the command:
@node EBCDIC, IBM-PC, IBM and MS, IBM and MS
@section EBCDIC code
+@cindex EBCDIC charsets
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 @code{recode} independently of @w{RFC 1345}:
@table @code
-
@item EBCDIC
+@tindex EBCDIC@r{, a charset}
In @code{recode}, the @code{us..ebcdic} conversion is identical to @samp{dd
conv=ebcdic} conversion, and @code{recode} @code{ebcdic..us} conversion is
identical to @samp{dd conv=ascii} conversion. This charset also represents
the way Control Data Corporation relates EBCDIC to 8-bits ASCII.
@item EBCDIC-CCC
+@tindex EBCDIC-CCC
In @code{recode}, the @code{us..ebcdic-ccc} or @code{ebcdic-ccc..us}
conversions represent the way Concurrent Computer Corporation (formerly
Perkin Elmer) relates EBCDIC to 8-bits ASCII.
@item EBCDIC-IBM
+@tindex EBCDIC-IBM
In @code{recode}, the @code{us..ebcdic-ibm} conversion is @emph{almost}
identical to the GNU @samp{dd conv=ibm} conversion. Given the exact
@samp{dd conv=ibm} conversion table, @code{recode} once said:
correction. In any case, I think that GNU @code{dd} should be amended.
@code{dd} and @code{recode} should ideally agree on the same correction.
So, this table might change once again.
-
@end table
@w{RFC 1345} brings into @code{recode} 15 other EBCDIC charsets, and 21 other
@node IBM-PC, Icon-QNX, EBCDIC, IBM and MS
@section IBM's PC code
+@tindex IBM-PC
+@cindex MS-DOS charsets
+@tindex MSDOS
+@tindex dos
+@tindex pc
This charset is available in @code{recode} under the name @code{IBM-PC},
with @code{dos}, @code{MSDOS} and @code{pc} as acceptable aliases.
The shortest way of specifying it in @code{recode} is @code{pc}.
@w{RFC 1345} brings into @code{recode} 44 @samp{IBM} charsets or code pages,
and also 8 other code pages. You can get a list of these all these by
-executing:@footnote{On DOS/Windows, stock shells do not know that apostrohes
+executing:@footnote{On DOS/Windows, stock shells do not know that apostrophes
quote special characters like @kbd{|}, so one need to use double quotes
instead of apostrophes.}
@end example
@noindent
+@cindex CR-LF surface, in IBM-PC charsets
+@tindex IBM819@r{, and CR-LF surface}
All charset or aliases beginning with letters @samp{CP} or @samp{IBM}
also have @code{CR-LF} as their implied surface. The same is true for a
purely numeric alias in the same family. For example, all of @code{819},
@code{ISO-8859-1} does @emph{not} imply a surface, despite it shares the
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
@node Icon-QNX, , IBM-PC, IBM and MS
@section Unisys' Icon code
+@tindex Icon-QNX@r{, and aliases}
+@tindex QNX@r{, an alias for a charset}
This charset is available in @code{recode} under the name
@code{Icon-QNX}, with @code{QNX} as an acceptable alias.
@node CDC, Micros, IBM and MS, Top
@chapter Charsets for CDC machines
+@cindex CDC charsets
+@cindex charsets for CDC machines
What is now @code{recode} evolved out, through many transformations
-really, from a set of programs which were originally written in Control
-Data Corporation's assembler (@code{COMPASS}), with bits in FORTRAN,
-and later, rewritten in CDC 6000 Pascal. The CDC heritage shows by the
+really, from a set of programs which were originally written in
+@dfn{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 @code{recode} author used to be familiar with CDC Scope-NOS/BE and
@node Display Code, CDC-NOS, CDC, CDC
@section Control Data's Display Code
+@cindex CDC Display Code, a table
This code is not available in @code{recode}, but repeated here for
reference. This is a 6-bit code used on CDC mainframes.
@node CDC-NOS, Bang-Bang, Display Code, CDC
@section ASCII 6/12 from NOS
+@tindex CDC-NOS@r{, and its aliases}
+@tindex NOS
This charset is available in @code{recode} under the name
@code{CDC-NOS}, with @code{NOS} as an acceptable alias.
-This is one of the charset in use on CDC Cyber NOS systems to represent
+@cindex NOS 6/12 code
+@cindex caret ASCII code
+This is one of the charsets in use on CDC Cyber NOS systems to represent
ASCII, sometimes named @dfn{NOS 6/12} code for coding ASCII. This code is
also known as @dfn{caret ASCII}. It is based on a six bits character set
in which small letters and control characters are coded using a @kbd{^}
@node Bang-Bang, , CDC-NOS, CDC
@section ASCII ``bang bang''
+@tindex Bang-Bang
This charset is available in @code{recode} under the name @code{Bang-Bang}.
This code, in use on Cybers at Universit@'e de Montr@'eal mainly, served
@node Micros, Miscellaneous, CDC, Top
@chapter Other micro-computer charsets
-The @code{NeXT} charset, which use to be especially provided in releases of
+@cindex NeXT charsets
+The @code{NeXT} charset, which used to be especially provided in releases of
@code{recode} before 3.5, has been integrated since as one @w{RFC 1345} table.
@menu
@node Apple-Mac, AtariST, Micros, Micros
@section Apple's Macintosh code
+@tindex Apple-Mac
+@cindex Macintosh charset
This charset is available in @code{recode} under the name @code{Apple-Mac}.
The shortest way of specifying it in @code{recode} is @code{ap}.
is fairly old in @code{recode}, its tables were produced a long while ago
by mere inspection of a printed chart of the Macintosh codes and glyph.
-It has @code{LF} as its implied surface. This means that, if the original
+@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/cl < @var{input} > @var{output}
+recode ap..l2/cr < @var{input} > @var{output}
recode ap/..l2 < @var{input} > @var{output}
@end example
@end example
@noindent
+@tindex macintosh@r{, a charset, and its aliases}
+@tindex macintosh_ce@r{, and its aliases}
+@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.
Both methods give different recodings. These differences are annoying,
the fuzziness will have to be explained and settle down one day.
+@cindex @code{recode}, a Macintosh port
As a side note, some people ask if there is a Macintosh port of the
@code{recode} program. 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?
@node AtariST, , Apple-Mac, Micros
@section Atari ST code
+@tindex AtariST
This charset is available in @code{recode} under the name @code{AtariST}.
This is the character set used on the Atari ST/TT/Falcon. This is similar
Even if these charsets were originally added to @code{recode} for
handling texts written in French, they find other uses. We did use them
-lot for writing French diacriticised texts in the past, so @code{recode}
+a lot for writing French diacriticised texts in the past, so @code{recode}
knows how to handle these particularly well for French texts.
@menu
@node HTML, LaTeX, Miscellaneous, Miscellaneous
@section World Wide Web representations
+@tindex HTML@r{, a charset}
This charset is available in @code{recode} under the name @code{HTML},
with @code{h4} as an acceptable alias.
@c FIXME - untrue
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 @code{-d}
+they may be specifically inhibited through the command option @samp{-d}
(@pxref{Mixed}).
Codes not having a mnemonic entity are output by @code{recode} using the
@item
@w{RFC 2070} (HTML-i18n) added entities to cover the whole right
part of @w{ISO 8859-1}. The list is conveniently accessible at
-@url{http://www.alis.com:8085/ietf/html/html-latin1.sgml}. In addition,
+@uref{http://www.alis.com:8085/ietf/html/html-latin1.sgml}. In addition,
four i18n-related entities were added: @samp{‌} (@samp{‌}),
@samp{‍} (@samp{‍}), @samp{‎} (@samp{‎}) and @samp{‏}
(@samp{‏}).
@item
-HTML 3.2 (@url{http://www.w3.org/TR/REC-html32.html}) took up the full
+@uref{http://www.w3.org/TR/REC-html32.html, HTML 3.2} took up the full
@w{Latin-1} list but not the i18n-related entities from @w{RFC 2070}.
@item
-HTML 4.0 (@url{http://www.w3.org/TR/REC-html40/}) has the whole @w{Latin-1} list,
+@uref{http://www.w3.org/TR/REC-html40/, HTML 4.0} has the whole
+@w{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 @w{RFC 2070} plus
some more.
-
@end itemize
When @code{recode} translates to HTML, the translation occurs according
-to @url{http://www.w3.org/TR/REC-html40/sgml/entities.html}.
+to @uref{http://www.w3.org/TR/REC-html40/sgml/entities.html}.
@c Previously: http://www.uni-passau.de/~ramsch/iso8859-1.html
It is also assumed that @w{RFC 1866} has an equivalent contents. When
translating @emph{from} HTML, @code{recode} accepts some alternative
special sequences, to be forgiving when files use older HTML tables.
+@cindex normilise an HTML file
+@cindex HTML normalization
The @code{recode} program can be used to @emph{normalise} an HTML file using
oldish conventions. For example, it accepts @samp{&AE;}, as this once was a
valid writing, somewhere. However, it should always produce @samp{Æ}
@node LaTeX, Texinfo, HTML, Miscellaneous
@section La@TeX{} macro calls
+@tindex LaTeX@r{, a charset}
+@tindex ltex
+@cindex La@TeX{} files
+@cindex @TeX{} files
This charset is available in @code{recode} under the name @code{LaTeX}
and has @code{ltex} as an alias. It is used for ASCII files coded to be
read by La@TeX{} or, in certain cases, by @TeX{}.
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 @samp{\backslash@{@}} can be rather inconvenient,
-it may be inhibited through the command option @code{-d} (@pxref{Mixed}).
+it may be inhibited through the command option @samp{-d} (@pxref{Mixed}).
@node Texinfo, African, LaTeX, Miscellaneous
@section GNU project documentation files
+@tindex Texinfo@r{, a charset}
+@tindex texi
+@tindex ti
+@cindex Texinfo files
This charset is available in @code{recode} under the name @code{Texinfo}
and has @code{texi} and @code{ti} for aliases. It is used by the GNU
project for its documentation. Texinfo files may be converted into Info
@node African, Cyrillic, Texinfo, Miscellaneous
@section African charsets
+@cindex 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.
+@tindex AFRFUL-102-BPI_OCIL@r{, and aliases}
+@tindex bambara
+@tindex bra
+@tindex ewondo
+@tindex fulfude
+@tindex AFRFUL-103-BPI_OCIL@r{, and aliases}
+@tindex t-bambara
+@tindex t-bra
+@tindex t-ewondo
+@tindex t-fulfude
One African charset is usable for Bambara, Ewondo and Fulfude, as well
as for French. This charset is available in @code{recode} under the name
@code{AFRFUL-102-BPI_OCIL}. Accepted aliases are @code{bambara}, @code{bra},
available under the name @code{AFRFUL-103-BPI_OCIL}. Accepted aliases
are @code{t-bambara}, @code{t-bra}, @code{t-ewondo} and @code{t-fulfude}.
+@tindex AFRLIN-104-BPI_OCIL
+@tindex lingala
+@tindex lin
+@tindex sango
+@tindex wolof
+@tindex AFRLIN-105-BPI_OCIL
+@tindex t-lingala
+@tindex t-lin
+@tindex t-sango
+@tindex t-wolof
Another African charset is usable for Lingala, Sango and Wolof, as well
as for French. This charset is available in @code{recode} under the
name @code{AFRLIN-104-BPI_OCIL}. Accepted aliases are @code{lingala},
are available under the name @code{AFRLIN-105-BPI_OCIL}. Accepted aliases
are @code{t-lingala}, @code{t-lin}, @code{t-sango} and @code{t-wolof}.
+@tindex AFRL1-101-BPI_OCIL
+@tindex t-francais
+@tindex t-fra
To ease exchange with @code{ISO-8859-1}, there is a charset conveying
transliterated forms for @w{Latin-1} in a way which is compatible with the other
African charsets in this series. This charset is available in @code{recode}
@node Cyrillic, Texte, African, Miscellaneous
@section Cyrillic charsets
+@cindex Cyrillic charsets
The following Cyrillic charsets are already available in @code{recode}
through @w{RFC 1345} tables: @code{CP1251} with aliases @code{1251}, @code{
ms-cyrl} and @code{windows-1251}; @code{CSN_369103} with aliases
@table @code
@item KEYBCS2
+@tindex KEYBCS2
+@tindex Kamenicky
This charset is available under the name @code{KEYBCS2}, with
@code{Kamenicky} as an accepted alias.
@item CORK
+@tindex CORK
+@tindex T1
This charset is available under the name @code{CORK}, with @code{T1}
as an accepted alias.
@item KOI-8_CS2
+@tindex KOI-8_CS2
This charset is available under the name @code{KOI-8_CS2}.
-
@end table
@node Texte, Mule, Cyrillic, Miscellaneous
@section Easy French conventions
+@tindex Texte
+@tindex txte
This charset is available in @code{recode} under the name @code{Texte}
and has @code{txte} for an alias. It is a seven bits code, identical
to @code{ASCII-BS}, save for French diacritics which are noted using a
fortunate. In a few mailing environments, and sadly enough, it still
happens that the eight bit is often willing-fully destroyed.
+@cindex Easy French
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 Qu@'ebec originating from Universit@'e de Montr@'eal. In fact,
French also uses tildes over @kbd{n} and @kbd{a}, but seldomly, and this
is not represented either. In some countries, @kbd{:} is used instead
of @kbd{"} to mark diaeresis. @code{recode} supports only one convention
-per call, depending on the @code{-c} option of the @code{recode} command.
+per call, depending on the @samp{-c} option of the @code{recode} command.
French quotes (sometimes called ``angle quotes'') are noted the same way
English quotes are noted in @TeX{}, @emph{id est} by @kbd{``} and @kbd{''}.
-No effort has been put to preserve Latin ligatures (@kbd{ae}, @kbd{oe})
+No effort has been put to preserve Latin ligatures (@kbd{@ae{}}, @kbd{@oe{}})
which are representable in several other charsets. So, these ligatures
may be lost through Easy French conventions.
contractions and suffix possessives could be mangled.
@item
-A double quote or colon, depending on @code{-c} option, which follows a
+A double quote or colon, depending on @samp{-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 @emph{end} with a diaeresis,
and the @code{recode} library is aware of them. There are words ending in
(aigu@"e, ambigu@"e, contigu@"e, exigu@"e, subaigu@"e and suraigu@"e).
There are also words not ending in ``igue'', but instead, either ending by
``i''@footnote{Look at one of the following sentences (the second has to
-be interpreted with the @code{-c} option):
+be interpreted with the @samp{-c} option):
@example
"Ai"e! Voici le proble`me que j'ai"
@ifinfo
ai",
@end ifinfo
+@c FIXME: why not use @dotless{} here? It works, AFAIK.
@ignore
a@"{@dotless{i}},
@end ignore
counter-examples (becfigue, b@`esigue, bigue, bordigue, bourdigue, brigue,
contre-digue, digue, d'intrigue, fatigue, figue, garrigue, gigue, igue,
intrigue, ligue, prodigue, sarigue and zigue).
-
@end enumerate
@node Mule, , Texte, Miscellaneous
@section Mule as a multiplexed charset
+@tindex Mule@r{, a charset}
+@cindex multiplexed charsets
+@cindex super-charsets
This version of @code{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.
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
@emph{e}nhancement to GNU Emacs}, it is the result of a collective
-effort orchestrated by Handa Ken'ishi since 1993. When @code{Mule} got
+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
it @code{MULE}, meaning @cite{@emph{mul}tilingual @emph{e}nvironment
in GNU Emacs}. Even if the charset @code{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,
-@code{Mule} comes with @code{leim}, which stands for @cite{@emph{l}ibraries
+@code{Mule} comes with @code{Leim}, which stands for @cite{@emph{l}ibraries
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
@node Surfaces, Internals, Miscellaneous, Top
@chapter All about surfaces
+@cindex surface, what it is
-The @dfn{trivial surface} consists into using a fixed number of bits
+@cindex trivial surface
+The @dfn{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
instead of as surfaces. This choice yields to cleaner syntax
and usage. @xref{Universal}.
+@cindex surfaces, implementation in @code{recode}
+@tindex data@r{, a special charset}
Surfaces are implemented within @code{recode} as special charsets 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
while the request @samp{@var{surface}..data} removes it.
We are only beginning to experiment with surfaces in @code{recode}, but
-the concept opens the doors to many avenues, it is not clear yet which
+the concept opens the doors to many avenues; it is not clear yet which
ones are worth pursuing, and which should be abandoned. This chapter
presents all surfaces currently available.
@node Permutations, End lines, Surfaces, Surfaces
@section Permuting groups of bytes
+@cindex permutations of groups of bytes
+@cindex byte order swapping
+@cindex endiannes, changing
A permutation is a surface transformation which reorders groups of
eight-bit bytes. A @emph{21} permutation exchanges pairs of successive
bytes. If the text contains an odd number of bytes, the last byte is
@table @code
@item 21
+@tindex 21-Permutation
+@tindex swabytes
This surface is available in @code{recode} under the name
@code{21-Permutation} and has @code{swabytes} for an alias.
@item 4321
+@tindex 4321-Permutation
This surface is available in @code{recode} under the name
@code{4321-Permutation}.
-
@end table
@node End lines, MIME, Permutations, Surfaces
@section Representation for end of lines
+@cindex end of line format
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
@table @code
@item CR
+@tindex CR@r{, a surface}
This convention is popular on Apple's Macintosh machines. When this
surface is applied, each line is terminated by @kbd{CR}, which has
@code{ASCII} value 13. Unless the library is operating in strict mode,
Macintosh related charsets.
@item CR-LF
+@tindex CR-LF@r{, a surface}
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 @kbd{CR} followed by one @kbd{LF},
in that order.
+@cindex Ctrl-Z, discarding
For compatibility with oldish MS-DOS systems, removing a @code{CR-LF}
surface will discard the first encountered @kbd{C-z}, which has
@code{ASCII} value 26, and everything following it in the text.
Adding this surface will not, however, append a @kbd{C-z} to the result.
+@tindex cl
This surface is available in @code{recode} under the name @code{CR-LF}
and has @code{cl} for an alias. This is the implied surface for the IBM
or Microsoft related charsets or code pages.
-
@end table
Some other charsets might have their own representation for an end of
@node MIME, Dump, End lines, Surfaces
@section MIME contents encodings
+@cindex MIME encodings
-@w{RFC 1521} defines two 7-bit surfaces, meant to prepare 8-bit messages for
+@cindex RFC 2045
+@w{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.
@table @code
+@tindex Base64
+@tindex b64
+@tindex 64
@item Base64
This surface is available in @code{recode} under the name @code{Base64},
with @code{b64} and @code{64} as acceptable aliases.
@item Quoted-Printable
+@tindex Quoted-Printable
+@tindex quote-printable
+@tindex QP
This surface is available in @code{recode} under the name
@code{Quoted-Printable}, with @code{quote-printable} and @code{QP} as
acceptable aliases.
-
@end table
Note that @code{UTF-7}, which may be also considered as a MIME surface,
is provided as a genuine charset instead, as it necessary relates to
@code{UCS-2} and nothing else. @xref{UTF-7}.
-A little historical note, also showing the three levels of acceptation of
-Internet standards. MIME changed from a ``Proposed Standard'' to a ``Draft
-Standard'' in 1993, and only became a ``Full Standard'' during 1996-12.
+A little historical note, also showing the three levels of acceptance of
+Internet standards. MIME changed from a ``Proposed Standard'' (@w{RFC
+1341--1344}, 1992) to a ``Draft Standard'' (@w{RFC 1521--1523}) in 1993,
+and was @emph{recycled} as a ``Draft Standard'' in 1996-11. It is not yet a
+``Full Standard''.
@node Dump, Debugging, MIME, Surfaces
@section Interpreted character dumps
+@cindex dumping characters
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
@table @code
@item Octal-1
+@tindex Octal-1
+@tindex o1
This surface corresponds to an octal expression of each input byte.
It is available in @code{recode} under the name @code{Octal-1},
with @code{o1} and @code{o} as acceptable aliases.
@item Octal-2
+@tindex Octal-2
+@tindex o2
This surface corresponds to an octal expression of each pair of
input bytes, except for the last pair, which may be short.
and has @code{o2} for an alias.
@item Octal-4
+@tindex Octal-4
+@tindex o4
This surface corresponds to an octal expression of each quadruple of
input bytes, except for the last quadruple, which may be short.
and has @code{o4} for an alias.
@item Decimal-1
+@tindex Decimal-1
+@tindex d1
This surface corresponds to an decimal expression of each input byte.
It is available in @code{recode} under the name @code{Decimal-1},
with @code{d1} and @code{d} as acceptable aliases.
@item Decimal-2
+@tindex Decimal-2
+@tindex d2
This surface corresponds to an decimal expression of each pair of
input bytes, except for the last pair, which may be short.
and has @code{d2} for an alias.
@item Decimal-4
+@tindex Decimal-4
+@tindex d4
This surface corresponds to an decimal expression of each quadruple of
input bytes, except for the last quadruple, which may be short.
and has @code{d4} for an alias.
@item Hexadecimal-1
+@tindex Hexadecimal-1
+@tindex x1
This surface corresponds to an hexadecimal expression of each input byte.
It is available in @code{recode} under the name @code{Hexadecimal-1},
with @code{x1} and @code{x} as acceptable aliases.
@item Hexadecimal-2
+@tindex Hexadecimal-2
+@tindex x2
This surface corresponds to an hexadecimal expression of each pair of
input bytes, except for the last pair, which may be short.
with @code{x2} for an alias.
@item Hexadecimal-4
+@tindex Hexadecimal-4
+@tindex x4
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 @code{recode} under the name @code{Hexadecimal-4},
with @code{x4} for an alias.
-
@end table
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 do produce dumps by other means than through @code{recode},
+case you want to produce dumps by other means than through @code{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.
-Despite the library might report reversibility errors, removing a dump
-surface is a rather forgiving process: one may mix bases, group more or
-less numbers per source line, or use shorter chunks elsewhere than at the
+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,
@code{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.
only useful in a few contexts, like for generating binary permutations
from the recoding or acting on them.
+@cindex debugging surfaces
Debugging surfaces, @emph{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
@table @code
@item test7
+@tindex 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.
@item test8
+@tindex 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.
@item test15
+@tindex 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 @code{UCS-2} values, like all codes from
and values known as invalid @code{UCS-2}.
@item test16
+@tindex 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.
-
@end table
-For an example, the command @samp{recode l5/test8..dump < /dev/null} is a
+As an example, the command @samp{recode l5/test8..dump < /dev/null} is a
convoluted way to produce an output similar to @samp{recode -lf l5}. It says
to generate all possible 256 bytes and interpret them as @code{ISO-8859-9}
codes, while converting them to @code{UCS-2}. Resulting @code{UCS-2}
characters are dumped one per line, accompanied with their explicative name.
-@node Internals, , Surfaces, Top
+@node Internals, Concept Index, Surfaces, Top
@chapter Internal aspects
+@cindex @code{recode} internals
+@cindex internals
The incoming explanations of the internals of @code{recode} should
help people who want to dive into @code{recode} sources for adding new
charsets. Adding new charsets does not require much knowledge about
@node Main flow, New charsets, Internals, Internals
@section Overall organisation
+@cindex @code{recode}, main flow of operation
The @code{recode} mechanics slowly evolved for many years, and it
would be tedious to explain all problems I met and mistakes I did all
to add new ones. The whole point of @code{recode}, as I see it, is
providing a comfortable nest for growing new charset conversions.
+@cindex single step
The main @code{recode} driver constructs, while initialising all
conversion modules, a table giving all the conversion routines
available (@dfn{single step}s) and for each, the starting charset and
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, @code{recode} looks for
-subsequences of conversions which are simple enough to be merged, it
+subsequences of conversions which are simple enough to be merged, and
then dynamically creates new single steps to represent these mergings.
+@cindex double step
A @dfn{double step} in @code{recode} is a special concept representing a
sequence of two single steps, the output of the first single step being the
special charset @code{UCS-2}, the input of the second single step being
also @code{UCS-2}. Special @code{recode} machinery dynamically produces
efficient, reversible, merge-able single steps out of these double steps.
+@cindex recoding steps, statistics
+@cindex average number of recoding 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 6 steps. Optimisation could
@node New charsets, New surfaces, Main flow, Internals
@section Adding new charsets
+@cindex adding new charsets
+@cindex new charsets, how to add
The main part of @code{recode} is written in C, as are most single
steps. A few single steps need to recognise sequences of multiple
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
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
a delayed initialisation to save it anyway, because @code{recode} option
-@code{-h} will take advantage of this information when available.
+@samp{-h} will take advantage of this information when available.
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
@node New surfaces, Design, New charsets, Internals
@section Adding new surfaces
+@cindex adding new surfaces
+@cindex new surfaces, how to add
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
the new surface, meant to apply the surface, the other from the new surface
to the predefined special charset @code{data}, meant to remove the surface.
+@findex declare_step
Internally in @code{recode}, function @code{declare_step} especially
recognises when a charset is so related to @code{data}, and then takes
appropriate actions so that charset gets indeed installed as a surface.
@itemize @bullet
@item Why a shared library?
+@cindex shared library implementation
There are many different approaches to reduce system requirements to
handle all tables needed in the @code{recode} library. One of them is to
package, and take advantage of the Automake interface to neatly turn the
non-shared library into a shared one.
-Sites linking with the @code{recode} library, while their system does not
+Sites linking with the @code{recode} library, whose system does not
support any form of shared libraries, might end up with bulky executables.
Surely, the @code{recode} library will have to be used statically, and
might not very nicely usable on such systems. It seems that progress
@item Why not @code{iconv}?
+@cindex @code{iconv}
The @code{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
we should try to stay opened to the difficulties of real life. There is
still a lot of complex needs for Asian people, say, that @code{recode}
does not currently address, while it should. Not only the doors should
-stay opened, but we should force them wider!
-
+stay open, but we should force them wider!
@end itemize
+@node Concept Index, Option Index, Internals, Top
+@unnumbered Concept Index
+
+@printindex cp
+
+@node Option Index, Library Index, Concept Index, Top
+@unnumbered Option Index
+
+This is an alphabetical list of all command-line options accepted by
+@code{recode}.
+
+@printindex op
+
+@node Library Index, Charset and Surface Index, Option Index, Top
+@unnumbered Library Index
+
+This is an alphabetical index of important functions, data structures,
+and variables in the @code{recode} library.
+
+@printindex fn
+
+@node Charset and Surface Index, , Library Index, Top
+@unnumbered Charset and Surface Index
+
+This is an alphabetical list of all the charsets and surfaces supported
+by @code{recode}, and their aliases.
+
+@printindex tp
+
@contents
@bye
-@set UPDATED 27 April 1999
-@set EDITION 3.5
-@set VERSION 3.5
+@set UPDATED 19 December 1999
+@set EDITION 3.5a
+@set VERSION 3.5a
+++ /dev/null
-#!/usr/bin/perl -w
-# Automatically derive `recode' table files from various sources.
-# Copyright © 1993, 1994, 1997, 1998, 1999 Free Software Foundation, Inc.
-# François Pinard <pinard@iro.umontreal.ca>, 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)
-# 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.
-
-use strict;
-
-# Generated file names.
-my $CHARNAME = 'charname.h';
-my $MNEMONIC = 'rfc1345.h';
-my $EXPLODE = 'explode.c';
-my $POOL = 'strip-pool.c';
-my $DATA = 'strip-data.c';
-my $TEXINFO = 'charset.texi';
-
-# Usage clause.
-my $USAGE = <<EOF;
-\`tables.pl\' derives \`recode\' table files from various sources.
-
-Usage: $0 [OPTION]... DATA-FILE...
-
- -e produce C source file for explode data ($EXPLODE)
- -m produce inclusion file for short mnemonics ($MNEMONIC)
- -n produce inclusion file for character names ($CHARNAME)
- -p produce C source files for strip data ($POOL and $DATA)
- -t produce inclusion file for Texinfo ($TEXINFO)
- -F produce French versions for -n or -t
-
-DATA-FILEs may be rfc1345.txt, mnemonic[.,]ds, Unicode maps, or .def files
-from Keld\'s chset* packages. The digesting order is usually important.
-When \`-F\' and \`-n\' are used, process Alain\'s tables.
-EOF
-
-# Generated copyright clause.
-my $OVERALL_HEADER = <<END_OF_TEXT;
-/* DO NOT MODIFY THIS FILE! It was generated by \`recode/doc/tables.pl\'. */
-
-/* Conversion of files between different charsets and surfaces.
- Copyright © 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by François Pinard <pinard\@iro.umontreal.ca>, 1993, 1997.
-
- The \`recode\' Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License
- as published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The \`recode\' Library is distributed in the hope that 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. */
-END_OF_TEXT
-
-# Ignore any mnemonic whose length is greater than $MAX_MNEMONIC_LENGTH.
-my $MAX_MNEMONIC_LENGTH = 3;
-
-# Character constants.
-my $REPLACEMENT_CHARACTER = 0xFFFD;
-my $NOT_A_CHARACTER = 0xFFFF;
-
-# Change STRIP_SIZE in `src/recode.h' if you change the value here.
-# See the accompanying documentation there, as needed.
-my $STRIP_SIZE = 8;
-\f
-# Argument decoding.
-
-my $French_option = 0;
-my $charname_option = 0;
-my $explode_option = 0;
-my $mnemonic_option = 0;
-my $strip_option = 0;
-my $texinfo_option = 0;
-
-while (@ARGV > 0 && $ARGV[0] =~ /^(-.*)/) {
- ($French_option = 1, shift, next) if $1 eq '-F';
- ($charname_option = 1, shift, next) if $1 eq '-n';
- ($explode_option = 1, shift, next) if $1 eq '-e';
- ($mnemonic_option = 1, shift, next) if $1 eq '-m';
- ($strip_option = 1, shift, next) if $1 eq '-p';
- ($texinfo_option = 1, shift, next) if $1 eq '-t';
- die $USAGE;
-}
-die $USAGE if @ARGV < 1;
-
-if ($explode_option) {
- &produce_explode_init ($EXPLODE);
-} elsif ($strip_option) {
- &produce_strip_init ($DATA);
-}
-
-# Prepare to read various tables.
-
-my $charset_ordinal = 0;
-my $discard_charset = 0;
-my $alias_count = 0;
-my $description = '';
-
-# Read all data tables.
-
-my $INPUT;
-foreach (@ARGV) {
- $INPUT = $_;
- open INPUT, $INPUT or die "Cannot read $INPUT\n";
- warn "Reading $INPUT\n";
- while (<INPUT>) {
- next if /^$/;
-
- if (/^\# Name:/) {
- &digest_unimap;
- last;
- }
-
- next if /^\#/;
-
- if (/^escape_char/) {
- &digest_mnemonics;
- last;
- }
-
- if (/^Network Working Group +K\. Simonsen$/) {
- if ($charname_option && ! $French_option) {
- $_ = <INPUT> until /^ 3rd field is the long descriptive/;
- &digest_rfc1345_names;
- }
- if ($explode_option || $strip_option) {
- $_ = <INPUT> until /^5\. CHARSET TABLES$/;
- &digest_rfc1345_tables;
- }
- last;
- }
-
- if (/^;Titre :/) {
- if ($charname_option && $French_option) {
- $_ = <INPUT> until /^; SOUSCRIT/;
- $_ = <INPUT> until /^ *$/;
- &digest_french_names;
- }
- last;
- }
-
- if (/^&referenceset$/) {
- $_ = <INPUT> until /^$/;
- &digest_rfc1345_tables;
- last;
- }
-
- if (/^ Repertoire according to ISO\/IEC 10646-1:1993$/) {
- $_ = <INPUT> until /^ Plane 000$/;
- &digest_iso10646_def;
- last;
- }
-
- die "$INPUT:$.: Data file with unknown contents\n";
- }
- close INPUT;
-}
-
-if ($explode_option) {
- &produce_explode_term ($EXPLODE);
-} elsif ($strip_option) {
- &produce_strip_term ($DATA, $POOL);
-}
-if ($charname_option) {
- &produce_charname ($French_option ? "fr-$CHARNAME" : $CHARNAME);
-}
-if ($mnemonic_option) {
- &produce_mnemonic ($MNEMONIC);
-}
-if ($texinfo_option) {
- &produce_texinfo ($French_option ? "fr-$TEXINFO" : $TEXINFO);
-}
-
-exit 0;
-\f
-# Data readers.
-
-## ----------------------------------------- ##
-## Read in Keld's list of 10646 characters. ##
-## ----------------------------------------- ##
-
-my $row;
-my $cell;
-
-sub digest_iso10646_def {
- my ($code, $mnemonic, $charname, $flag);
-
- while (<INPUT>) {
- next if /^$/;
-
- next if /^ $/; # happens three times
- next if /^ \.\.\./;
- next if /^ Presentation forms$/;
- next if /^ naming: first vertical /;
-
- if (/^ row ([0-9][0-9][0-9])$/ && $1 < 256) {
- $row = $1;
- $cell = 0;
- next;
- }
-
- if (/^ cell 00$/) {
- $cell = 0;
- next;
- }
-
- if (/^ cell ([0-9][0-9][0-9])$/ && $1 < 256) {
- $cell = $1;
- next;
- }
-
- if (/^ ([^ ]+)/) {
-# s/^ // unless /^ [A-Z][A-Z][A-Z]/;
- next unless /^ [A-Z][A-Z][A-Z]/;
- }
-
- if (/^ ([^ ].*)/) {
- warn "$INPUT:$.: Over 256 cells in row $row\n" if $cell == 256;
- $cell++;
- next;
- }
-
- if (/^([^ ]) ([^ ].*)/ || /^([^ ][^ ]+) ([^ ].*)/) {
- warn "$INPUT:$.: Over 256 cells in row $row\n" if $cell == 256;
- &declare_mnemonic ($1, 256*$row + $cell++);
- next;
- }
-
- warn "$INPUT:$.: Unrecognised line\n";
- }
-}
-
-## -------------------------- ##
-## Read in a mnemonics file. ##
-## -------------------------- ##
-
-sub digest_mnemonics {
- my ($mnemonic, $ucs2);
-
- while (<INPUT>) {
- if (/^<([^ \t\n]+)>\t<U(....)>/) {
- ($mnemonic, $ucs2) = ($1, hex $2);
- $mnemonic =~ s,/(.),$1,g;
- &declare_mnemonic ($mnemonic, $ucs2);
- }
- }
-}
-
-## ------------------------------------------------------------------- ##
-## Read the text of RFC 1345, saving all character names it declares. ##
-## ------------------------------------------------------------------- ##
-
-my %ucs2; # num. value of a character, given its mnemonic
-my %charname; # name of character, given its numerical value
-my %code; # frequency of each word, then its crypt code
-my $max_length; # maximum printable length of a character name
-
-sub digest_rfc1345_names {
- sub read_line {
- my $line;
-
- while (defined ($line = <INPUT>)) { # FIXME?
- next if $line =~ /^Simonsen/ .. $line =~ /^RFC 1345/;
- last if $line =~ /^4. CHARSETS/;
- next if $line =~ /^$/;
- if ($line =~ s/^ //) {
- chop $line;
- return $line;
- }
- }
- '';
- }
-
- $max_length = 0;
-
- # Read the character comments. Count words in charnames.
-
- my $next;
- for ($_ = &read_line; $_; $_ = $next) {
- # Look ahead one line and merge it if it should.
-
- $next = &read_line;
- if ($next =~ /^ *( .*)/) {
- $_ .= $1;
- $next = &read_line;
- }
-
- # Separate fields and save needed information.
-
- if (/([^ ]+) +[0-9a-f]+ +(.*)/) {
- my $mnemo = $1;
- my $text = lc $2;
-
- if (defined $ucs2{$mnemo}) {
- $charname{$ucs2{$mnemo}} = $text;
- if (length $text > $max_length) {
- $max_length = length $text;
- }
-
- my $word;
- foreach $word (split (/ /, $text)) {
- $code{$word}++;
- }
- } elsif (length $mnemo <= $MAX_MNEMONIC_LENGTH) {
- warn "$INPUT:$.: No known UCS-2 code for \`$mnemo'\n";
- }
- } elsif (!/ +e000/) {
- warn "$INPUT:$.: What about <<$_>>?\n";
- }
- }
-}
-
-sub digest_french_names {
- my $ucs;
- my $text;
-
- $max_length = 0;
-
- $ucs = 0x0000;
- foreach $text (('nul (nul)', # 0000
- 'début d\'en-tête (soh)', # 0001
- 'début de texte (stx)', # 0002
- 'fin de texte (etx)', # 0003
- 'fin de transmission (eot)', # 0004
- 'demande (enq)', # 0005
- 'accusé de réception positif (ack)', # 0006
- 'sonnerie (bel)', # 0007
- 'espace arrière (bs)', # 0008
- 'tabulation horizontale (ht)', # 0009
- 'interligne (lf)', # 000A
- 'tabulation verticale (vt)', # 000B
- 'page suivante (ff)', # 000C
- 'retour de chariot (cr)', # 000D
- 'hors code (so)', # 000E
- 'en code (si)', # 000F
- 'échappement transmission (dle)', # 0010
- 'commande d\'appareil un (dc1)', # 0011
- 'commande d\'appareil deux (dc2)', # 0012
- 'commande d\'appareil trois (dc3)', # 0013
- 'commande d\'appareil quatre (dc4)', # 0014
- 'accusé de réception négatif (nak)', # 0015
- 'synchronisation (syn)', # 0016
- 'fin de transmission de bloc (etb)', # 0017
- 'annulation (can)', # 0018
- 'fin de support (em)', # 0019
- 'caractère de substitution (sub)', # 001A
- 'échappement (esc)', # 001B
- 'séparateur de fichier (fs)', # 001C
- 'séparateur de groupe (gs)', # 001D
- 'séparateur d\'article (rs)', # 001E
- 'séparateur de sous-article (us)')) { # 001F
- $charname{$ucs++} = $text;
- if (length $text > $max_length) {
- $max_length = length $text;
- }
- foreach my $word (split (/ /, $text)) {
- $code{$word}++;
- }
- }
-
- $ucs = 0x007F;
- foreach $text (('suppression (del)', # 007F
- 'caractère de bourre (pad)', # 0080
- 'octet supérieur prédéfini (hop)', # 0081
- 'arrêt permis ici (bph)', # 0082
- 'aucun arrêt ici (nbh)', # 0083
- 'index (ind)', # 0084
- 'à la ligne (nel)', # 0085
- 'début de zone sélectionnée (ssa)', # 0086
- 'fin de zone sélectionnée (esa)', # 0087
- 'arrêt de tabulateur horizontal (hts)', # 0088
- 'tabulateur horizontal avec justification (htj)', # 0089
- 'arrêt de tabulateur vertical (vts)', # 008A
- 'interligne partiel vers le bas (pld)', # 008B
- 'interligne partiel vers le haut (plu)', # 008C
- 'index inversé (ri)', # 008D
- 'remplacement unique deux (ss2)', # 008E
- 'remplacement unique trois (ss3)', # 008F
- 'chaîne de commande d\'appareil (dcs)', # 0090
- 'usage privé un (pu1)', # 0091
- 'usage privé deux (pu2)', # 0092
- 'mise en mode transmission (sts)', # 0093
- 'annulation du caractère précédent (cch)', # 0094
- 'message en attente (mw)', # 0095
- 'début de zone protégée (sga)', # 0096
- 'fin de zone protégée (ega)', # 0097
- 'début de chaîne (sos)', # 0098
- 'introducteur de caractère graphique unique (sgci)',# 0099
- 'introducteur de caractère unique (sci)', # 009A
- 'introducteur de séquence de commande (csi)', # 009B
- 'fin de chaîne (st)', # 009C
- 'commande de système d\'exploitation (osc)', # 009D
- 'message privé (pm)', # 009E
- 'commande de progiciel (apc)')) { # 009F
- $charname{$ucs++} = $text;
- if (length $text > $max_length) {
- $max_length = length $text;
- }
- foreach my $word (split (/ /, $text)) {
- $code{$word}++;
- }
- }
-
- while (<INPUT>) {
- chomp;
- s/ +$//;
- if (/^([0-9A-F]{4}) ([^\(]+)( \(.*\))?$/) {
- $ucs = hex $1;
- ($text = $2) =~ tr/A-ZÀÂÇÈÉÊÎÏÑÔÖÛ/a-zàâçèéêîïñôöû/;
- $text =~ s/ +\*$//;
-
- $charname{$ucs} = $text;
- if (length $2 > $max_length) {
- $max_length = length $2;
- }
- foreach my $word (split (/ /, $text)) {
- $code{$word}++;
- }
- } else {
- warn "$INPUT:$.: What about $1 ?\n";
- }
- }
-}
-
-## ------------------------------------------------------------ ##
-## Read the text of RFC 1345, saving all charsets it declares. ##
-## UCS-2 mnemonics files should have been read in already. ##
-## ------------------------------------------------------------ ##
-
-my %used;
-my @table;
-my $codedim;
-my $code;
-my $list;
-my $body;
-
-my @declare_alias;
-my %implied_surface;
-my $charset;
-my $hashname;
-
-sub digest_rfc1345_tables {
- # Informal canonical order of presentation.
- my ($CHARSET, $REM, $ALIAS, $ESC, $BITS, $CODE) = (1, 2, 3, 4, 5, 6);
- my $status;
-
- while (<INPUT>) {
- next if /^Simonsen/ .. /^RFC 1345/;
- next if /^$/;
- last if /^ACKNOWLEDGEMENTS$/;
- next unless s/^ ?//;
-
- # Recognize `&charset'.
-
- if (/^&charset (.*)/) {
- # Before beginning a new charset, process the previous one.
- my $incoming_charset = $1;
- &complete_charset;
-
- $charset = $incoming_charset;
-
- # Prepare for processing a new charset: save the charset
- # name for further declaration; announce this charset in
- # the array initialization section; and initialize its
- # processing.
-
- warn sprintf (" %d) %s\n", $charset_ordinal + 1, $charset);
- $status = $CHARSET;
-
- $description = "\n/* $charset\n";
-
- $hashname = lc $charset;
- $hashname =~ s/[^a-z0-9]//g;
- if ($used{$hashname}) {
- warn "$INPUT:$.: Duplicate of $used{$hashname} (discarded)\n";
- $discard_charset = 1;
- next;
- }
- $used{$hashname} = $charset;
-
- $alias_count = 0;
- @table = ($NOT_A_CHARACTER) x 256;
- $codedim = 0;
- $code = 0;
- $list = '';
- $body = '';
-
- if ($charset =~ /^(CP|IBM)([0-9]+)$/) {
- $implied_surface{$2} = 'crlf';
- $implied_surface{"CP$2"} = 'crlf';
- $implied_surface{"IBM$2"} = 'crlf';
- push (@declare_alias, "$charset,$charset");
- $alias_count++;
-#FIXME } elsif ($charset =~ /^windows-([0-9]+)$/) {
-#FIXME $implied_surface{$1} = 'crlf';
-#FIXME $implied_surface{"CP$1"} = 'crlf';
-#FIXME $implied_surface{"IBM$1"} = 'crlf';
-#FIXME push (@declare_alias, "$charset,$charset");
-#FIXME $alias_count++;
- } elsif ($charset =~ /^macintosh(_ce)?$/) {
- $implied_surface{$charset} = 'cr';
- push (@declare_alias, "$charset,$charset");
- $alias_count++;
- }
- next;
- }
-
- # Recognize other `&' directives.
-
- if (/^&rem (.*)/ && ! /^&rem &alias/) {
- # Keld now prefers `&rem' to be allowed everywhere.
- #warn "$INPUT:$.: \`&rem' out of sequence\n" if $status > $REM;
- #$status = $REM;
-
- if ($texinfo_option) {
- # Save C comments for Texinfo.
-
- my $string = $1;
- $string = (uc $1) . $2 if $string =~ /^([a-z])(.*)/;
- $string .= '.' if $string !~ /\.$/;
- $string =~ s/@/@@/g;
- $body .= $string . "\n";
- }
- next;
- }
-
- if (/^(&rem )?&alias (.*)/) {
- warn "$INPUT:$.: \`&alias' out of sequence\n" if $status > $ALIAS;
- $status = $ALIAS;
-
- # Save synonymous charset names for later declarations.
-
- my $alias = $2;
- if ($alias =~ s/ +$//) {
- warn "$INPUT:$.: Spurious trailing whitespace\n";
- }
- $description .= " $alias\n";
-
- $hashname = lc $alias;
- $hashname =~ s/[^a-z0-9]//g;
- if ($used{$hashname} && $used{$hashname} ne $charset) {
- warn "$INPUT:$.: Duplicate of $used{$hashname}\n";
- next;
- }
- $used{$hashname} = $charset;
-
- $list .= ',' if $list;
- $list .= $alias;
-
- if ($alias =~ /^(CP|IBM)([0-9]+)$/) {
- $implied_surface{$2} = 'crlf';
- $implied_surface{"CP$2"} = 'crlf';
- $implied_surface{"IBM$2"} = 'crlf';
- } elsif ($alias =~ /^mac(ce)?$/) {
- $implied_surface{$alias} = 'cr';
- }
- push (@declare_alias, "$alias,$charset");
- $alias_count++;
- next;
- }
-
- if (/^&g[0-4]esc/) {
- warn "$INPUT:$.: \`&esc' out of sequence\n" if $status > $ESC;
- $status = $ESC;
-
- next;
- }
-
- if (/^&bits ([0-9]+)$/) {
- warn "$INPUT:$.: \`&bits' out of sequence\n" if $status > $BITS;
- $status = $BITS;
-
- if ($1 > 8) {
- warn "$INPUT:$.: \`&bits $1' not accepted (charset discarded)\n";
- $discard_charset = 1;
- }
- next;
- }
-
- if (/^&code (.*)/) {
- warn "$INPUT:$.: \`&code' out of sequence\n" if $status > $CODE;
- $status = $CODE;
-
- # Save the code position.
-
- $code = $1;
- next;
- }
-
- # Other lines cause the charset to be discarded.
-
- if (/^&([^ ]+)/) {
- unless ($discard_charset) {
- warn "$INPUT:$.: \`&$1' not accepted (charset discarded)\n";
- $discard_charset = 1;
- }
- }
-
- next if $discard_charset;
-
- # Save all other tokens into the double table.
-
- if ($explode_option || $strip_option) {
- my $token;
- foreach $token (split) {
- if ($token eq '??') {
- $table[$code] = $NOT_A_CHARACTER;
- } elsif ($token eq '__') {
- $table[$code] = $REPLACEMENT_CHARACTER;
- } elsif (defined $ucs2{$token}) {
- $table[$code] = $ucs2{$token};
- if (length $token > $codedim) {
- $codedim = length $token;
- }
- } else {
- warn "$INPUT:$.: Unknown mnemonic for $code: $token\n";
- $table[$code] = $REPLACEMENT_CHARACTER;
- }
- $code++;
- }
- }
- }
-
- # Push the last charset out.
- &complete_charset;
-}
-
-## ---------------------------------------------------------------- ##
-## Read a Unicode map, as found in ftp://ftp.unicode.com/MAPPINGS. ##
-## ---------------------------------------------------------------- ##
-
-sub digest_unimap {
- my @name;
-
- if (/^\# +Name: +([^ ]+) to Unicode table$/) {
- @name = split (/_/, $1);
- $charset = shift @name;
- $description = "\n/* $charset\n";
-
- $hashname = lc $charset;
- $hashname =~ s/[^a-z0-9]//g;
- if ($used{$hashname}) {
- warn "$INPUT:$.: \`$hashname' duplicates \`$used{$hashname}'"
- . " (charset discarded)\n";
- $discard_charset = 1;
- next;
- }
- $used{$hashname} = $charset;
-
- $alias_count = 0;
- @table = ($NOT_A_CHARACTER) x 256;
- $codedim = 0;
- $code = 0;
- $list = '';
- $body = '';
- }
- return if $discard_charset;
-
- my $alias;
- while ($alias = shift @name) {
- $description .= " $alias\n";
-
- $hashname = lc $alias;
- $hashname =~ s/[^a-z0-9]//g;
- if ($used{$hashname} && $used{$hashname} ne $charset) {
- warn "$INPUT:$.: \`$hashname' duplicates \`$used{$hashname}'\n";
- next;
- }
- $used{$hashname} = $charset;
-
- $list .= ',' if $list;
- $list .= $alias;
- push (@declare_alias, "$alias,$charset");
- $alias_count++;
- }
-
- while (<INPUT>) {
- next if /^$/;
- next if /^\#/;
- next if /^0x([0-9A-F]+)\t\t\#UNDEFINED$/;
- last if /\032/; # old MS-DOS C-Z !! :-)
-
- if (/^0x([0-9A-F]+)\t0x([0-9A-F]+)\t\#/) {
- $table[hex $1] = hex $2;
- } else {
- warn "$INPUT:$.: Unrecognised input line\n";
- }
- }
-
- &complete_charset;
-}
-\f
-# Reader services.
-
-## ---------------------------------------------------------------- ##
-## Declare a correspondence between a mnemonic and an UCS-2 value. ##
-## ---------------------------------------------------------------- ##
-
-my $table_length = 0;
-my %mnemonic;
-
-sub declare_mnemonic {
- my ($mnemonic, $ucs2) = @_;
-
- return if length $mnemonic > $MAX_MNEMONIC_LENGTH;
-
- if ($mnemonic_option) {
- if (defined $mnemonic{$ucs2}) {
- if ($mnemonic{$ucs2} ne $mnemonic) {
- warn sprintf ("$INPUT:$.: U+%04X \`%s' known as \`%s'\n",
- $ucs2, $mnemonic, $mnemonic{$ucs2});
- $mnemonic{$ucs2} = $mnemonic
- if length $mnemonic < length $mnemonic{$ucs2};
- }
- } else {
- $mnemonic{$ucs2} = $mnemonic;
- $table_length++;
- }
- }
-
- if ($charname_option || $explode_option || $strip_option) {
- if (defined $ucs2{$mnemonic}) {
- if ($ucs2{$mnemonic} ne $ucs2) {
- warn sprintf ("$INPUT:$.: `%s' U+%04X known as U+%04X\n",
- $mnemonic, $ucs2, $ucs2{$mnemonic});
- $cell = $ucs2{$mnemonic} - 256*$row;
- }
- } else {
- $ucs2{$mnemonic} = $ucs2;
- }
- }
-}
-
-## ---------------------------------------------------------- ##
-## Print all accumulated information for the charset. If the ##
-## charset should be discarded, adjust tables. ##
-## ---------------------------------------------------------- ##
-
-my %list;
-my %body;
-my @declare_charset;
-my @strip;
-
-sub complete_charset {
- my $count;
-
- if ($discard_charset) {
- while ($alias_count-- > 0) {
- pop @declare_alias;
- }
- $discard_charset = 0;
- $description = '';
- }
- return unless $description;
-
- if ($texinfo_option) {
- # Save the documentation.
-
- $list{$charset} = $list;
- $body{$charset} = $body;
- }
-
- if ($explode_option) {
- # Make introductory C comments.
-
- print OUTPUT $description;
- print OUTPUT "*/\n";
-
- # Make the table for this charset.
-
- print OUTPUT "\n";
- print OUTPUT
- "static const unsigned short data_$charset_ordinal\[\] =\n";
- print OUTPUT " {\n";
- for ($code = 0; $code < 256; $code++) {
- if ($code != $table[$code]) {
- printf OUTPUT
- " %3d, 0x%.4X, DONE,\n", $code, $table[$code];
- }
- }
- print OUTPUT " DONE\n";
- print OUTPUT " };\n";
-
- # Register the table.
-
- push (@declare_charset, $charset);
- }
-
- if ($strip_option) {
- # Make introductory C comments.
-
- print OUTPUT $description;
- print OUTPUT "*/\n";
-
- # Make the table for this charset.
-
- print OUTPUT "\n";
- print OUTPUT
- "static struct strip_data data_$charset_ordinal =\n";
- print OUTPUT " {\n";
- print OUTPUT " ucs2_data_pool,\n";
- print OUTPUT " {\n";
- $count = 0;
- for ($code = 0; $code < 256; $code += $STRIP_SIZE) {
- if ($count % 12 == 0) {
- print OUTPUT ",\n" if $count != 0;
- print OUTPUT ' ';
- } else {
- print OUTPUT ', ';
- }
-
- @strip = @table[$code .. $code + $STRIP_SIZE - 1];
- printf OUTPUT '%4d', &pool_index;
- $count++;
- }
- print OUTPUT "\n";
- print OUTPUT " }\n";
- print OUTPUT " };\n";
-
- # Register the table.
-
- push (@declare_charset, $charset);
- }
-
- $charset_ordinal++;
- $description = '';
-}
-
-## ---------------------------------------------------------------- ##
-## Return the pool index for @strip. Add to the pool as required. ##
-## ---------------------------------------------------------------- ##
-
-my %pool;
-my $pool;
-my $pool_refs;
-my $pool_size;
-
-sub pool_index {
- my $strip = join ('', map (sprintf ('%04X', $_), @strip));
-
- $pool_refs++;
-
- if (! defined $pool{$strip}) {
- $pool{$strip} = $pool_size;
- $pool .= $strip;
- $pool_size += @strip;
- }
- $pool{$strip};
-}
-\f
-# Table writers.
-
-## -------------------------------------------- ##
-## Write a compressed list of character names. ##
-## -------------------------------------------- ##
-
-sub produce_charname {
- my ($output_name) = @_;
- my (@word, @ucs2, $count, $singles, $char1, $char2, $word, $ucs2, $code);
-
- open OUTPUT, ">$output_name" or die "Cannot write $output_name\n";
- warn "Writing $output_name\n";
- print OUTPUT $OVERALL_HEADER;
-
- # Establish a mild compression scheme. Words @word[0] to
- # @word[$singles-1] will be represented by a single byte running from
- # 1 to $singles. All remaining words will be represented by two
- # bytes, the first one running slowly from $singles+1 to 255, the
- # second cycling faster from 1 to 255.
-
- print STDERR ' sorting words...';
- @word = sort descending keys %code;
- printf STDERR " %d of them\n", 0 + @word;
- $count = 0 + @word;
- $singles = int ((255 * 255 - $count) / 254);
-
- # Transmit a few values for further usage by the C code.
-
- print STDERR ' sorting names...';
- @ucs2 = sort { $a <=> $b } keys %charname;
- printf STDERR " %d of them\n", 0 + @ucs2;
-
- print OUTPUT "\n";
- printf OUTPUT "#define NUMBER_OF_SINGLES %d\n", $singles;
- printf OUTPUT "#define MAX_CHARNAME_LENGTH %d\n", $max_length;
- printf OUTPUT "#define NUMBER_OF_CHARNAMES %d\n", (0 + @ucs2);
-
- # Establish a mild compression scheme (one or two bytes per word).
-
- warn " writing words\n";
- print OUTPUT "\n";
- print OUTPUT "static const char *const word[$count] =\n";
- print OUTPUT " {\n";
-
- $char1 = 1;
- $char2 = 1;
-
- my $counter;
- for ($counter = 0; $counter < $singles; $counter++) {
- $word = $word[$counter];
- $word =~ s/\"/\\\"/;
- printf OUTPUT " %-28s/* \\%0.3o */\n", "\"$word\",", $char1;
- $code{$word[$counter]} = $char1;
- $char1++;
- }
-
- for (; $counter < $count; $counter++) {
- $word = $word[$counter];
- $word =~ s/\"/\\\"/;
- printf OUTPUT
- " %-28s/* \\%0.3o\\%0.3o */\n", "\"$word\",", $char1, $char2;
- $code{$word[$counter]} = 256 * $char1 + $char2;
- if ($char2 == 255) {
- $char1++;
- $char2 = 1;
- } else {
- $char2++;
- }
- }
- print OUTPUT " };\n";
-
- warn " writing names\n";
- print OUTPUT "\n";
- print OUTPUT "struct charname\n";
- print OUTPUT " {\n";
- print OUTPUT " recode_ucs2 code;\n";
- print OUTPUT " const char *crypted;\n";
- print OUTPUT " };\n";
-
- print OUTPUT "\n";
- print OUTPUT
- "static const struct charname charname[NUMBER_OF_CHARNAMES] =\n";
- print OUTPUT " {\n";
-
- foreach $ucs2 (@ucs2) {
- printf OUTPUT " {0x%04X, \"", $ucs2;
- foreach $word (split (' ', $charname{$ucs2})) {
- $code = $code{$word};
- print "??? $word\n" unless defined $code;
- if ($code < 256) {
- printf OUTPUT "\\%0.3o", $code;
- } else {
- printf OUTPUT "\\%0.3o\\%0.3o", int ($code / 256), $code % 256;
- }
- }
- print OUTPUT "\"},\n";
- }
-
- print OUTPUT " };\n";
- close OUTPUT;
-}
-
-## ------------------------------------------- ##
-## Write an UCS-2 to RFC 1345 mnemonic table. ##
-## ------------------------------------------- ##
-
-sub produce_mnemonic {
- my ($output_name) = @_;
- my ($count, $ucs2, $string, %inverse);
-
- open OUTPUT, ">$output_name" or die "Cannot create $output_name\n";
- warn "Writing $output_name\n";
-
- print OUTPUT $OVERALL_HEADER;
- print OUTPUT "\n";
- print OUTPUT "#define TABLE_LENGTH $table_length\n";
- print OUTPUT "#define MAX_MNEMONIC_LENGTH $MAX_MNEMONIC_LENGTH\n";
- print OUTPUT "\n";
- print OUTPUT "struct entry\n";
- print OUTPUT " {\n";
- print OUTPUT " recode_ucs2 code;\n";
- print OUTPUT " const char *rfc1345;\n";
- print OUTPUT " };\n";
- print OUTPUT "\n";
- print OUTPUT "static const struct entry table[TABLE_LENGTH] =\n";
- print OUTPUT " {\n";
- $count = 0;
- foreach $ucs2 (sort {$a <=> $b} keys %mnemonic) {
- $string = $mnemonic{$ucs2};
- $inverse{$string} = $count;
- $string =~ s/([\"])/\\$1/g;
- printf OUTPUT
- " /* %4d */ {0x%04X, \"%s\"},\n", $count, $ucs2, $string;
- $count++;
- }
- print OUTPUT " };\n";
- print OUTPUT "\n";
- print OUTPUT "static const unsigned short inverse[TABLE_LENGTH] =\n";
- print OUTPUT ' {';
- $count = 0;
- foreach $string (sort keys %inverse) {
- if ($count % 10 == 0) {
- print OUTPUT ',' if $count != 0;
- printf OUTPUT "\n /* %4d */ ", $count;
- } else {
- print OUTPUT ', ';
- }
- printf OUTPUT '%4d', $inverse{$string};
- $count++;
- }
- print OUTPUT "\n";
- print OUTPUT " };\n";
-
- close OUTPUT;
-}
-
-## ------------------------------- ##
-## Write the explode source file. ##
-## ------------------------------- ##
-
-sub produce_explode_init {
- my ($output_name) = @_;
-
- # Prepare the production of tables.
-
- open OUTPUT, ">$output_name";
- warn "Starting $output_name\n";
- print OUTPUT $OVERALL_HEADER;
- print OUTPUT "\n";
- print OUTPUT "#include \"common.h\"\n";
-}
-
-# [...] Table fragments will be produced while reading data tables.
-
-sub produce_explode_term {
- my ($output_name) = @_;
- my ($count, $string);
-
- # Print the collectable initialization function.
-
- warn "Completing $output_name\n";
- print OUTPUT "\n";
- print OUTPUT "bool\n";
- printf OUTPUT "module_explodes (struct recode_outer *outer)\n";
- print OUTPUT "{\n";
- $count = 0;
- while ($string = shift @declare_charset) {
- print OUTPUT
- " if (!declare_explode_data (outer, &data_$count, \"$string\"))\n";
- print OUTPUT " return false;\n";
- $count++;
- }
- print OUTPUT "\n";
- while ($string = shift @declare_alias) {
- $string =~ s/,/", "/;
- print OUTPUT " if (!declare_alias (outer, \"$string\"))\n";
- print OUTPUT " return false;\n";
- }
- print OUTPUT "\n";
- print OUTPUT " return true;\n";
- print OUTPUT "}\n";
- close OUTPUT;
-}
-
-## --------------------------------- ##
-## Write the pool and index tables. ##
-## --------------------------------- ##
-
-sub produce_strip_init {
- my ($output_name) = @_;
-
- # Prepare the production of tables.
-
- $pool_size = 0;
- $pool_refs = 0;
- %pool = ();
- $pool = '';
-
- open OUTPUT, ">$output_name";
- warn "Starting $output_name\n";
- print OUTPUT $OVERALL_HEADER;
- print OUTPUT "\n";
- print OUTPUT "#include \"common.h\"\n";
-}
-
-# [...] Table fragments will be produced while reading data tables.
-
-sub produce_strip_term {
- my ($output_name, $pool_name) = @_;
- my ($count, $string);
-
- # Give memory statistics.
-
- warn sprintf ("Table memory = %d bytes (pool %d, refs %d)\n",
- $pool_size * 2 + $pool_refs * 2,
- $pool_size * 2, $pool_refs * 2);
-
- # Print the collectable initialization function.
-
- warn "Completing $output_name\n";
- print OUTPUT "\n";
- print OUTPUT "bool\n";
- printf OUTPUT "module_strips (struct recode_outer *outer)\n";
- print OUTPUT "{\n";
- print OUTPUT " RECODE_SYMBOL symbol;\n";
- print OUTPUT "\n";
- $count = 0;
- while ($string = shift @declare_charset) {
- print OUTPUT
- " if (!declare_strip_data (outer, &data_$count, \"$string\"))\n";
- print OUTPUT " return false;\n";
- $count++;
- }
- print OUTPUT "\n";
- while ($string = shift @declare_alias) {
- my ($alias, $charset) = $string =~ /^(.*),(.*)$/;
- if (defined $implied_surface{$alias}) {
- print OUTPUT " if (symbol = declare_alias (outer, \"$alias\", \"$charset\"), !symbol)\n";
- print OUTPUT " return false;\n";
- print OUTPUT " if (!declare_implied_surface (outer, symbol, outer->$implied_surface{$alias}_surface))\n";
- print OUTPUT " return false;\n";
- } else {
- print OUTPUT " if (!declare_alias (outer, \"$alias\", \"$charset\"))\n";
- print OUTPUT " return false;\n";
- }
- }
- print OUTPUT "\n";
- print OUTPUT " return true;\n";
- print OUTPUT "}\n";
- close OUTPUT;
-
- # Write the pool file.
-
- open OUTPUT, ">$pool_name" or die "Cannot create $pool_name\n";
- warn "Writing $pool_name\n";
- print OUTPUT $OVERALL_HEADER;
- print OUTPUT "\n";
- print OUTPUT "#include \"common.h\"\n";
- print OUTPUT "\n";
- print OUTPUT "const recode_ucs2 ucs2_data_pool[$pool_size] =\n";
- print OUTPUT ' {';
- for ($count = 0; $count < $pool_size; $count++) {
- if ($count % 8 == 0) {
- print OUTPUT ',' if $count != 0;
- printf OUTPUT "\n /* %4d */ ", $count;
- } else {
- print OUTPUT ', ';
- }
- print OUTPUT '0x', substr ($pool, $count * 4, 4);
- }
- print OUTPUT "\n";
- print OUTPUT " };\n";
- close OUTPUT;
-}
-
-## ------------------------------ ##
-## Write the documentation file. ##
-## ------------------------------ ##
-
-sub produce_texinfo {
- my ($output_name) = @_;
- my ($charset, @list, $string);
-
- open OUTPUT, ">$output_name" or die "Cannot create $output_name\n";
- warn "Writing $output_name\n";
- for $charset (sort keys %body) {
- print OUTPUT "\n\@item $charset\n";
- @list = sort (split (/,/, $list{$charset}));
- if (@list == 1) {
- print OUTPUT
- '@code{', $list[0], "} is an alias for this charset.\n";
- } elsif (@list > 0) {
- $string = '@code{' . join ('}, @code{', @list) . '}';
- $string =~ s/,([^,]+)$/ and$1/;
- print OUTPUT $string, " are aliases for this charset.\n";
- }
- print OUTPUT $body{$charset};
- }
- close OUTPUT;
-}
-\f
-# Writer services.
-
-# Comparison routine for descending sort on frequencies.
-
-sub descending {
- my $result = $code{$b} - $code{$a};
-
- $result == 0 ? $a cmp $b : $result;
-}
--- /dev/null
+#!/usr/bin/python
+# -*- coding: latin-1 -*-
+# Automatically derive `recode' table files from various sources.
+# Copyright © 1993, 1994, 1997, 1998, 1999 Free Software Foundation, Inc.
+# François Pinard <pinard@iro.umontreal.ca>, 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)
+# 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.
+
+"""\
+`tables.py' derives `recode' table files from various sources.
+
+Usage: python tables.py [OPTION]... DATA-FILE...
+
+ -e produce C source file for explode data (explode.c)
+ -m produce inclusion file for short mnemonics (rfc1345.h)
+ -n produce inclusion file for character names (charname.h)
+ -p produce C source files for strip data (strip-pool.c and strip-data.c)
+ -t produce inclusion file for Texinfo (charset.texi)
+ -F produce French versions for -n or -t
+
+DATA-FILEs may be rfc1345.txt, mnemonic[.,]ds, Unicode maps, or .def files
+from Keld's chset* packages. The digesting order is usually important.
+When `-F' and `-n' are used, process Alain's tables.
+"""
+
+import re, string, sys
+
+# Generated file names.
+CHARNAME = 'charname.h'
+MNEMONIC = 'rfc1345.h'
+EXPLODE = 'explode.c'
+POOL = 'strip-pool.c'
+DATA = 'strip-data.c'
+TEXINFO = 'charset.texi'
+
+# Generated copyright clause.
+OVERALL_HEADER = """\
+/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.py'. */
+
+/* Conversion of files between different charsets and surfaces.
+ Copyright © 1999 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
+
+ The `recode' Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License
+ as published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The `recode' Library is distributed in the hope that 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. */
+"""
+
+# Ignore any mnemonic whose length is greater than MAX_MNEMONIC_LENGTH.
+MAX_MNEMONIC_LENGTH = 3
+
+# Character constants.
+REPLACEMENT_CHARACTER = 0xFFFD
+NOT_A_CHARACTER = 0xFFFF
+
+# Change STRIP_SIZE in `src/recode.h' if you change the value here.
+# See the accompanying documentation there, as needed.
+STRIP_SIZE = 8
+\f
+# Main driver.
+
+def warn(format, *args):
+ sys.stderr.write('%s:%s: %s\n' % (input_name, line_count, format % args))
+
+def die(format, *args):
+ sys.stderr.write('%s:%s: %s\n' % (input_name, line_count, format % args))
+ raise 'Fatal'
+
+def main(*arguments):
+ global input_name
+ global line_count
+ global input
+
+ global alias_count
+ global charset_ordinal
+ global comment
+ global discard_charset
+
+ global charname_option
+ global explode_option
+ global mnemonic_option
+ global strip_option
+ global texinfo_option
+
+ import getopt
+
+ # Argument decoding.
+ French_option = 0
+ charname_option = 0
+ explode_option = 0
+ mnemonic_option = 0
+ strip_option = 0
+ texinfo_option = 0
+ options, arguments = getopt.getopt(arguments, 'Femnpt')
+ for option, value in options:
+ if option == '-F': French_option = 1
+ elif option == '-e': explode_option = 1
+ elif option == '-m': mnemonic_option = 1
+ elif option == '-n': charname_option = 1
+ elif option == '-p': strip_option = 1
+ elif option == '-t': texinfo_option = 1
+ if not arguments:
+ raise __doc__
+
+ if explode_option:
+ produce_explode_init(EXPLODE)
+ elif strip_option:
+ produce_strip_init(DATA)
+
+ # Prepare to read various tables.
+
+ charset_ordinal = 0
+ discard_charset = 0
+ alias_count = 0
+ comment = ''
+
+ # Read all data tables.
+
+ for input_name in arguments:
+ input = open(input_name)
+ line_count = 0
+ sys.stderr.write("Reading %s\n" % input_name)
+ while 1:
+ line = input.readline()
+ line_count = line_count + 1
+ if not line:
+ break
+ if re.match('$', line):
+ continue
+
+ if re.match('\# Name:', line):
+ digest_unimap()
+ break
+
+ if re.match('\#', line):
+ continue
+
+ if re.match('escape_char', line):
+ digest_mnemonics()
+ break
+
+ if re.match('Network Working Group +K\. Simonsen$', line):
+ if charname_option and not French_option:
+ while not re.match(' 3rd field is the long descriptive',
+ line):
+ line = input.readline()
+ line_count = line_count + 1
+ digest_rfc1345_names()
+ if explode_option or strip_option:
+ while not re.match('5\. CHARSET TABLES$', line):
+ line = input.readline()
+ line_count = line_count + 1
+ digest_rfc1345_tables()
+ break
+
+ if re.match(';Titre :', line):
+ if charname_option and French_option:
+ while not re.match('; SOUSCRIT', line):
+ line = input.readline()
+ line_count = line_count + 1
+ while not re.match(' *$', line):
+ line = input.readline()
+ line_count = line_count + 1
+ digest_french_names()
+ break
+
+ if re.match('&referenceset$', line):
+ while not re.match('$', line):
+ line = input.readline()
+ line_count = line_count + 1
+ digest_rfc1345_tables()
+ break
+
+ if re.match(' Repertoire according to ISO/IEC 10646-1:1993$',
+ line):
+ while not re.match(' Plane 000$', line):
+ line = input.readline()
+ line_count = line_count + 1
+ digest_iso10646_def()
+ break
+
+ die("Data file with unknown contents")
+
+ input.close()
+
+ if explode_option:
+ produce_explode_term(EXPLODE)
+ elif strip_option:
+ produce_strip_term(DATA, POOL)
+ if charname_option:
+ if French_option:
+ produce_charname('fr-%s' % CHARNAME)
+ else:
+ produce_charname(CHARNAME)
+ if mnemonic_option:
+ produce_mnemonic(MNEMONIC)
+ if texinfo_option:
+ if French_option:
+ produce_texinfo('fr-%s' % TEXINFO)
+ else:
+ produce_texinfo(TEXINFO)
+\f
+# Data readers.
+
+## ----------------------------------------- ##
+## Read in Keld's list of 10646 characters. ##
+## ----------------------------------------- ##
+
+def digest_iso10646_def():
+ global line_count
+ global row, cell
+
+ while 1:
+ line = input.readline()
+ line_count = line_count + 1
+ if not line:
+ break
+ if re.match('$', line):
+ continue
+ if re.match(' $', line):
+ continue # happens three times
+ if re.match(' \.\.\.', line):
+ continue
+ if re.match(' Presentation forms$', line):
+ continue
+ if re.match(' naming: first vertical ', line):
+ continue
+
+ match = re.match(' row ([0-9][0-9][0-9])$', line)
+ if match and int(match.group(1)) < 256:
+ row = int(match.group(1))
+ cell = 0
+ continue
+
+ if re.match(' cell 00$', line):
+ cell = 0
+ continue
+
+ match = re.match(' cell ([0-9][0-9][0-9])$', line)
+ if match and int(match.group(1)) < 256:
+ cell = int(match.group(1))
+ continue
+
+ match = re.match(' ([^ ]+)', line)
+ if match: # FIXME: $1 n'a pas de sens!
+ # s/^ // unless /^ [A-Z][A-Z][A-Z]/;
+ if not re.match(' [A-Z][A-Z][A-Z]', line):
+ continue
+
+ match = re.match(' ([^ ].*)', line)
+ if match: # FIXME: $1 n'a pas de sens!
+ if cell == 256:
+ warn("Over 256 cells in row %d", row)
+ cell = cell + 1
+ continue
+
+ match = (re.match('([^ ]) ([^ ].*)', line)
+ or re.match('([^ ][^ ]+) ([^ ].*)', line))
+ if match: # FIXME: $2 n'a pas de sens!
+ if cell == 256:
+ warn("Over 256 cells in row %d", row)
+ declare_mnemonic(match.group(1), 256*row + cell)
+ cell = cell + 1
+ continue
+
+ warn("Unrecognised line")
+
+## -------------------------- ##
+## Read in a mnemonics file. ##
+## -------------------------- ##
+
+def digest_mnemonics():
+ global line_count
+
+ while 1:
+ line = input.readline()
+ line_count = line_count + 1
+ if not line:
+ break
+ match = re.match('<([^ \t\n]+)>\t<U(....)>', line)
+ if match:
+ mnemonic = re.sub('/(.)', r'\1', match.group(1))
+ ucs2 = string.atoi(match.group(2), 16)
+ declare_mnemonic(mnemonic, ucs2)
+
+## ------------------------------------------------------------------- ##
+## Read the text of RFC 1345, saving all character names it declares. ##
+## ------------------------------------------------------------------- ##
+
+# Numeric value of a character, given its mnemonic.
+ucs2_map = {}
+
+# Name of character, given its numerical value.
+charname_map = {}
+
+# Frequency of each word, then its crypt code.
+code_map = {}
+
+# Maximum printable length of a character name.
+max_length = 0
+
+def digest_rfc1345_names():
+ global max_length
+
+ def read_line():
+ global line_count
+
+ skip = 0
+ while 1:
+ line = input.readline()
+ line_count = line_count + 1
+ if not line:
+ break
+ if re.match('Simonsen', line):
+ skip = 1
+ continue
+ if skip:
+ if re.match('RFC 1345', line):
+ skip = 0
+ continue
+ if re.match('4. CHARSETS', line):
+ break
+ if re.match('$', line):
+ continue
+ if line[0] == ' ':
+ return string.lstrip(line[:-1])
+ return None
+
+ max_length = 0
+
+ # Read the character descriptions. Count words in charnames.
+
+ line = read_line()
+ while line:
+ # Look ahead one line and merge it if it should.
+
+ next = read_line()
+ while next:
+ match = re.match(' *( .*)', next)
+ if not match:
+ break
+ line = line + match.group(1)
+ next = read_line()
+
+ # Separate fields and save needed information.
+
+ match = re.search('([^ ]+) +[0-9a-f]+ +(.*)', line)
+ if match:
+ mnemo = match.group(1)
+ text = string.lower(match.group(2))
+
+ if ucs2_map.has_key(mnemo):
+ charname_map[ucs2_map[mnemo]] = text
+ if len(text) > max_length:
+ max_length = len(text)
+ for word in string.split(text):
+ if code_map.has_key(word):
+ code_map[word] = code_map[word] + 1
+ else:
+ code_map[word] = 1
+ elif len(mnemo) <= MAX_MNEMONIC_LENGTH:
+ warn("No known UCS-2 code for `%s'", mnemo)
+ elif not re.search(' +e000', line):
+ warn("What about `%s'?", line)
+
+ line = next
+
+def digest_french_names():
+ global line_count
+ global max_length
+
+ max_length = 0
+ ucs = 0x0000
+
+ for text in (
+ "nul (nul)", # 0000
+ "début d'en-tête (soh)", # 0001
+ "début de texte (stx)", # 0002
+ "fin de texte (etx)", # 0003
+ "fin de transmission (eot)", # 0004
+ "demande (enq)", # 0005
+ "accusé de réception positif (ack)", # 0006
+ "sonnerie (bel)", # 0007
+ "espace arrière (bs)", # 0008
+ "tabulation horizontale (ht)", # 0009
+ "interligne (lf)", # 000A
+ "tabulation verticale (vt)", # 000B
+ "page suivante (ff)", # 000C
+ "retour de chariot (cr)", # 000D
+ "hors code (so)", # 000E
+ "en code (si)", # 000F
+ "échappement transmission (dle)", # 0010
+ "commande d'appareil un (dc1)", # 0011
+ "commande d'appareil deux (dc2)", # 0012
+ "commande d'appareil trois (dc3)", # 0013
+ "commande d'appareil quatre (dc4)", # 0014
+ "accusé de réception négatif (nak)", # 0015
+ "synchronisation (syn)", # 0016
+ "fin de transmission de bloc (etb)", # 0017
+ "annulation (can)", # 0018
+ "fin de support (em)", # 0019
+ "caractère de substitution (sub)", # 001A
+ "échappement (esc)", # 001B
+ "séparateur de fichier (fs)", # 001C
+ "séparateur de groupe (gs)", # 001D
+ "séparateur d'article (rs)", # 001E
+ "séparateur de sous-article (us)", # 001F
+ ):
+ charname_map[ucs] = text
+ ucs = ucs + 1
+ if len(text) > max_length:
+ max_length = len(text)
+ for word in string.split(text):
+ if code_map.has_key(word):
+ code_map[word] = code_map[word] + 1
+ else:
+ code_map[word] = 1
+
+ ucs = 0x007F
+ for text in (
+ "suppression (del)", # 007F
+ "caractère de bourre (pad)", # 0080
+ "octet supérieur prédéfini (hop)", # 0081
+ "arrêt permis ici (bph)", # 0082
+ "aucun arrêt ici (nbh)", # 0083
+ "index (ind)", # 0084
+ "à la ligne (nel)", # 0085
+ "début de zone sélectionnée (ssa)", # 0086
+ "fin de zone sélectionnée (esa)", # 0087
+ "arrêt de tabulateur horizontal (hts)", # 0088
+ "tabulateur horizontal avec justification (htj)", # 0089
+ "arrêt de tabulateur vertical (vts)", # 008A
+ "interligne partiel vers <= bas (pld)", # 008B
+ "interligne partiel vers <= haut (plu)", # 008C
+ "index inversé (ri)", # 008D
+ "remplacement unique deux (ss2)", # 008E
+ "remplacement unique trois (ss3)", # 008F
+ "chaîne de commande d'appareil (dcs)", # 0090
+ "usage privé un (pu1)", # 0091
+ "usage privé deux (pu2)", # 0092
+ "mise en mode transmission (sts)", # 0093
+ "annulation du caractère précédent (cch)", # 0094
+ "message en attente (mw)", # 0095
+ "début de zone protégée (sga)", # 0096
+ "fin de zone protégée (ega)", # 0097
+ "début de chaîne (sos)", # 0098
+ "introducteur de caractère graphique unique (sgci)",# 0099
+ "introducteur de caractère unique (sci)", # 009A
+ "introducteur de séquence de commande (csi)", # 009B
+ "fin de chaîne (st)", # 009C
+ "commande de système d'exploitation (osc)", # 009D
+ "message privé (pm)", # 009E
+ "commande de progiciel (apc)", # 009F
+ ):
+ charname_map[ucs] = text
+ ucs = ucs + 1
+ if len(text) > max_length:
+ max_length = len(text)
+ for word in string.split(text):
+ if code_map.has_key(word):
+ code_map[word] = code_map[word] + 1
+ else:
+ code_map[word] = 1
+
+ fold_table = range(256)
+ for before, after in map(None,
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZÀÂÇÈÉÊÎÏÑÔÖÛ',
+ 'abcdefghijklmnopqrstuvwxyzàâçèéêîïñôöû'):
+ fold_table[ord(before)] = ord(after)
+ folding = string.join(map(chr, fold_table), '')
+
+ while 1:
+ line = input.readline()
+ line_count = line_count + 1
+ if not line:
+ break
+ if line[-1] == '\n':
+ line = line[:-1]
+ line = string.rstrip(line)
+ match = re.match('([0-9A-F]{4}) ([^\(]+)( \(.*\))?$', line)
+ if match:
+ ucs = string.atoi(match.group(1), 16)
+ text = string.translate(match.group(2), folding)
+
+ charname_map[ucs] = re.sub(r' +\*$', '', text, 1)
+ if len(match.group(2)) > max_length:
+ max_length = len(match.group(2))
+ for word in string.split(text):
+ if code_map.has_key(word):
+ code_map[word] = code_map[word] + 1
+ else:
+ code_map[word] = 1
+ else:
+ warn("What about `%s'?", line)
+
+## ------------------------------------------------------------ ##
+## Read the text of RFC 1345, saving all charsets it declares. ##
+## UCS-2 mnemonics files should have been read in already. ##
+## ------------------------------------------------------------ ##
+
+used_map = {}
+table = []
+
+#codedim
+#code
+#list
+
+declare_alias = []
+implied_surface = {}
+#hashname
+
+def digest_rfc1345_tables():
+ global alias_count
+ global aliases
+ global charset
+ global line_count
+ global comment
+ global discard_charset
+ global remark
+ global table
+
+ # Informal canonical order of presentation.
+ CHARSET, REM, ALIAS, ESC, BITS, CODE = range(6)
+
+ skip = 0
+ while 1:
+ line = input.readline()
+ line_count = line_count + 1
+ if not line:
+ break
+ if re.match('Simonsen', line):
+ skip = 1
+ continue
+ if skip:
+ if re.match('RFC 1345', line):
+ skip = 0
+ continue
+ if re.match('$', line):
+ continue
+ if re.match('ACKNOWLEDGEMENTS$', line):
+ break
+
+ line, count = re.subn('^ ?', '', line)
+ if not count:
+ continue
+
+ # Recognize `&charset'.
+
+ match = re.match('&charset (.*)', line)
+ if match:
+ # Before beginning a new charset, process the previous one.
+ complete_charset()
+ charset = match.group(1)
+
+ # Prepare for processing a new charset: save the charset
+ # name for further declaration; announce this charset in
+ # the array initialization section; and initialize its
+ # processing.
+
+ sys.stderr.write(" %d) %s\n" % (charset_ordinal + 1, charset))
+ status = CHARSET
+
+ comment = '\n/* %s\n' % charset
+
+ hashname = re.sub('[^a-z0-9]', '', string.lower(charset))
+ if used_map.has_key(hashname):
+ warn("Duplicate of %s (discarded)", used_map[hashname])
+ discard_charset = 1
+ continue
+ used_map[hashname] = charset
+
+ alias_count = 0
+ table = [NOT_A_CHARACTER] * 256
+ codedim = 0
+ code = 0
+ aliases = []
+ remark = []
+
+ match = re.match('(CP|IBM)([0-9]+)$', charset)
+ if match:
+ implied_surface[match.group(2)] = 'crlf'
+ implied_surface['CP' + match.group(2)] = 'crlf'
+ implied_surface['IBM' + match.group(2)] = 'crlf'
+ declare_alias.append((charset, charset))
+ alias_count = alias_count + 1
+ continue
+
+#FIXME: match = re.match('windows-([0-9]+)$', charset)
+#FIXME: if match:
+#FIXME: implied_surface[match.group(1)] = 'crlf'
+#FIXME: implied_surface['CP' + match.group(1)] = 'crlf'
+#FIXME: implied_surface['IBM' + match.group(1)] = 'crlf'
+#FIXME: declare_alias.append((charset, charset))
+#FIXME: alias_count = alias_count + 1
+#FIXME: continue
+
+ match = re.match('macintosh(_ce)?$', charset)
+ if match:
+ implied_surface[charset] = 'cr'
+ declare_alias.append((charset, charset))
+ alias_count = alias_count + 1
+ continue
+
+ continue
+
+ # Recognize other `&' directives.
+
+ match = re.match('&rem (.*)', line)
+ if match and not re.match('&rem &alias', line):
+ # Keld now prefers `&rem' to be allowed everywhere.
+ #if status > REM:
+ # warn("`&rem' out of sequence")
+ #status = REM;
+
+ if texinfo_option:
+ # Save remarks for Texinfo.
+ text = match.group(1)
+ remark.append(text)
+ continue
+
+ match = re.match('(&rem )?&alias (.*)', line)
+ if match:
+ if status > ALIAS:
+ warn("`&alias' out of sequence")
+ status = ALIAS
+
+ # Save synonymous charset names for later declarations.
+
+ alias = match.group(2)
+ if alias[-1] == ' ':
+ warn("Spurious trailing whitespace")
+ alias = string.rstrip(alias)
+ comment = comment + ' %s\n' % alias
+
+ hashname = re.sub('[^a-z0-9]', '', string.lower(alias))
+ if used_map.has_key(hashname) and used_map[hashname] != charset:
+ warn("Duplicate of %s", used_map[hashname])
+ continue
+ used_map[hashname] = charset
+
+ aliases.append(alias)
+
+ match = re.match('(CP|IBM)([0-9]+)$', alias)
+ if match:
+ implied_surface[match.group(2)] = 'crlf'
+ implied_surface['CP' + match.group(2)] = 'crlf'
+ implied_surface['IBM' + match.group(2)] = 'crlf'
+ elif re.match('mac(ce)?$', alias):
+ implied_surface[alias] = 'cr'
+ declare_alias.append((alias, charset))
+ alias_count = alias_count + 1
+ continue
+
+ if re.match('&g[0-4]esc', line):
+ if status > ESC:
+ warn("`&esc' out of sequence")
+ status = ESC
+ continue
+
+ match = re.match('&bits ([0-9]+)$', line)
+ if match:
+ if status > BITS:
+ warn("`&bits' out of sequence")
+ status = BITS
+
+ if int(match.group(1)) > 8:
+ warn("`&bits %s' not accepted (charset discarded)",
+ match.group(1))
+ discard_charset = 1
+ continue
+
+ match = re.match('&code (.*)', line)
+ if match:
+ if status > CODE:
+ warn("`&code' out of sequence")
+ status = CODE
+
+ # Save the code position.
+
+ code = int(match.group(1))
+ continue
+
+ # Other lines cause the charset to be discarded.
+
+ match = re.match('&([^ ]+)', line)
+ if match:
+ if not discard_charset:
+ warn("`&%s' not accepted (charset discarded)", match.group(1))
+ discard_charset = 1
+
+ if discard_charset:
+ continue
+
+ # Save all other tokens into the double table.
+
+ if explode_option or strip_option:
+ for token in string.split(line):
+ if token == '??':
+ table[code] = NOT_A_CHARACTER
+ elif token == '__':
+ table[code] = REPLACEMENT_CHARACTER
+ elif ucs2_map.has_key(token):
+ table[code] = ucs2_map[token]
+ if len(token) > codedim:
+ codedim = len(token)
+ else:
+ warn("Unknown mnemonic for code: %s", token)
+ table[code] = REPLACEMENT_CHARACTER
+ code = code + 1
+
+ # Push the last charset out.
+ complete_charset()
+
+## ---------------------------------------------------------------- ##
+## Read a Unicode map, as found in ftp://ftp.unicode.com/MAPPINGS. ##
+## ---------------------------------------------------------------- ##
+
+def digest_unimap():
+ global alias_count
+ global aliases
+ global charset
+ global comment
+ global discard_charset
+ global line_count
+ global remark
+ global table
+
+ match = re.match('# +Name: +([^ ]+) to Unicode table$', line)
+ if match:
+ name = string.split(match.group(1))
+ charset = name[0]
+ del name[0]
+ comment = '\n/* %s\n' % charset
+
+ hashname = re.sub('[^a-z0-9]', '', string.lower(charset))
+ if used_map[hashname]:
+ warn("`%s' duplicates `%s' (charset discarded)",
+ hashname, used_map[hashname])
+ discard_charset = 1
+ return
+ used_map[hashname] = charset
+
+ alias_count = 0
+ table = [NOT_A_CHARACTER] * 256
+ codedim = 0
+ code = 0
+ aliases = []
+ remark = []
+ if discard_charset:
+ return
+
+ for alias in name:
+ comment = comment + ' %s\n' % alias
+
+ hashname = re.sub('[^a-z0-9]', '', string.lower(alias))
+ if used_map[hashname] and used_map[hashname] != charset:
+ warn("`%s' duplicates `%s'", hashname, used_map[hashname])
+ continue
+ used_map[hashname] = charset
+
+ aliases.append(alias)
+ declare_alias.append((alias, charset))
+ alias_count = alias_count + 1
+
+ while 1:
+ line = input.readline()
+ line_count = line_count + 1
+ if not line:
+ break
+ if re.match('$', line):
+ continue
+ if re.match('#', line):
+ continue
+ if re.match('0x([0-9A-F]+)\t\t#UNDEFINED$', line):
+ continue
+ if re.search('\032', line):
+ # Old MS-DOS C-z !!
+ break
+
+ match = re.match('0x([0-9A-F]+)\t0x([0-9A-F]+)\t\#', line)
+ if match:
+ table[string.atoi(match.group(1), 16)] \
+ = string.atoi(match.group(2), 16)
+ else:
+ warn("Unrecognised input line")
+
+ complete_charset()
+\f
+# Reader services.
+
+## ---------------------------------------------------------------- ##
+## Declare a correspondence between a mnemonic and an UCS-2 value. ##
+## ---------------------------------------------------------------- ##
+
+table_length = 0
+mnemonic_map = {}
+
+def declare_mnemonic(mnemonic, ucs2):
+ global table_length
+
+ if len(mnemonic) > MAX_MNEMONIC_LENGTH:
+ return
+
+ if mnemonic_option:
+ if mnemonic_map.has_key(ucs2):
+ if mnemonic_map[ucs2] != mnemonic:
+ warn("U+%04X `%s' known as `%s'",
+ ucs2, mnemonic, mnemonic_map[ucs2])
+ if len(mnemonic) < len(mnemonic_map[ucs2]):
+ mnemonic_map[ucs2] = mnemonic
+
+ else:
+ mnemonic_map[ucs2] = mnemonic
+ table_length = table_length + 1
+
+ if charname_option or explode_option or strip_option:
+ if ucs2_map.has_key(mnemonic):
+ if ucs2_map[mnemonic] != ucs2:
+ warn("`%s' U+%04X known as U+%04X",
+ mnemonic, ucs2, ucs2_map[mnemonic])
+ #FIXME: ??? cell = ucs2_map[mnemonic] - 256*row
+ else:
+ ucs2_map[mnemonic] = ucs2
+
+## ---------------------------------------------------------- ##
+## Print all accumulated information for the charset. If the ##
+## charset should be discarded, adjust tables. ##
+## ---------------------------------------------------------- ##
+
+aliases_map = {}
+remark_map = {}
+declare_charset = []
+
+def complete_charset():
+ global alias_count
+ global charset_ordinal
+ global comment
+ global discard_charset
+
+ if discard_charset:
+ while alias_count > 0:
+ del declare_alias[-1]
+ alias_count = alias_count - 1
+ discard_charset = 0
+ comment = ''
+ if not comment:
+ return
+
+ if texinfo_option:
+
+ # Save the documentation.
+ aliases.sort()
+ aliases_map[charset] = aliases
+ remark_map[charset] = remark
+
+ if explode_option:
+ write = output.write
+
+ # Make introductory C comments.
+ write(comment)
+ write('*/\n')
+
+ # Make the table for this charset.
+ write('\n')
+ write('static const unsigned short data_%d[] =\n' % charset_ordinal)
+ write(' {\n')
+ for code in range(256):
+ if code != table[code]:
+ write(' %3d, 0x%.4X, DONE,\n' % (code, table[code]))
+ write(' DONE\n')
+ write(' };\n')
+
+ # Register the table.
+ declare_charset.append(charset)
+
+ if strip_option:
+ write = output.write
+
+ # Make introductory C comments.
+ write(comment)
+ write('*/\n')
+
+ # Make the table for this charset.
+ write('\n')
+ write('static struct strip_data data_%d =\n' % charset_ordinal)
+ write(' {\n')
+ write(' ucs2_data_pool,\n')
+ write(' {\n')
+ count = 0
+ for code in range(0, 256, STRIP_SIZE):
+ if count % 12 == 0:
+ if count != 0:
+ write(',\n')
+ write(' ')
+ else:
+ write(', ')
+ write('%4d' % pool_index(table[code:code+STRIP_SIZE]))
+ count = count + 1
+ write('\n')
+ write(' }\n')
+ write(' };\n')
+
+ # Register the table.
+ declare_charset.append(charset)
+
+ charset_ordinal = charset_ordinal + 1
+ comment = ''
+
+## --------------------------------------------------------------- ##
+## Return the pool index for strip. Add to the pool as required. ##
+## --------------------------------------------------------------- ##
+
+def pool_index(strip):
+ global strips
+ global pool_refs
+ global pool_size
+
+ def format(item):
+ return '%04X' % item
+
+ pool_refs = pool_refs + 1
+ text = string.join (map(format, strip), '')
+ if not strip_map.has_key(text):
+ strip_map[text] = pool_size
+ pool_size = pool_size + STRIP_SIZE
+ strips.append(text)
+ return strip_map[text]
+\f
+# Table writers.
+
+## -------------------------------------------- ##
+## Write a compressed list of character names. ##
+## -------------------------------------------- ##
+
+def produce_charname(output_name):
+ global output
+
+ output = open(output_name, 'w')
+ sys.stderr.write("Writing %s\n" % output_name)
+
+ write = output.write
+ write(OVERALL_HEADER)
+
+ # Establish a mild compression scheme. Words word[0:singles] will be
+ # represented by a single byte running from 1 to singles. All remaining
+ # words will be represented by two bytes, the first one running slowly
+ # from singles+1 to 255, the second cycling faster from 1 to 255.
+
+ def presort_word(word):
+ return -code_map[word], word
+
+ def postsort_word(pair):
+ return pair[1]
+
+ sys.stderr.write(' sorting words...')
+ pairs = map(presort_word, code_map.keys())
+ pairs.sort()
+ words = map(postsort_word, pairs)
+ pairs = None
+ sys.stderr.write(' %d of them\n' % len(words))
+
+ count = len(words)
+ singles = (255 * 255 - count) / 254
+
+ # Transmit a few values for further usage by the C code.
+
+ sys.stderr.write(' sorting names...')
+ ucs2_table = charname_map.keys()
+ ucs2_table.sort()
+ sys.stderr.write(' %d of them\n' % len(ucs2_table))
+
+ write('\n')
+ write('#define NUMBER_OF_SINGLES %d\n' % singles)
+ write('#define MAX_CHARNAME_LENGTH %d\n' % max_length)
+ write('#define NUMBER_OF_CHARNAMES %d\n' % len(ucs2_table))
+
+ # Establish a mild compression scheme (one or two bytes per word).
+
+ sys.stderr.write(" writing words\n")
+ write('\n')
+ write('static const char *const word[%d] =\n' % count)
+ write(' {\n')
+
+ char1 = 1
+ char2 = 1
+
+ for counter in range(singles):
+ word = words[counter]
+ write(' %-28s/* \\%0.3o */\n'
+ % ('"%s",' % re.sub('"', r'\"', word), char1))
+ code_map[words[counter]] = char1
+ char1 = char1 + 1
+
+ for counter in range(singles, count):
+ word = words[counter]
+ write(' %-28s/* \\%0.3o\\%0.3o */\n'
+ % ('"%s",' % re.sub('"', r'\"', word, 1), char1, char2))
+ code_map[words[counter]] = 256 * char1 + char2
+ if char2 == 255:
+ char1 = char1 + 1
+ char2 = 1
+ else:
+ char2 = char2 + 1
+ write(' };\n')
+
+ sys.stderr.write(" writing names\n")
+ write('\n')
+ write('struct charname\n')
+ write(' {\n')
+ write(' recode_ucs2 code;\n')
+ write(' const char *crypted;\n')
+ write(' };\n')
+
+ write('\n')
+ write('static const struct charname charname[NUMBER_OF_CHARNAMES] =\n')
+ write(' {\n')
+
+ for ucs2 in ucs2_table:
+ write(' {0x%04X, "' % ucs2)
+ for word in string.split(charname_map[ucs2]):
+ if code_map.has_key(word):
+ code = code_map[word]
+ if code < 256:
+ write('\\%0.3o' % code)
+ else:
+ write('\\%0.3o\\%0.3o' % (code / 256, code % 256))
+ else:
+ sys.stderr.write('??? %s\n' % word)
+ write('"},\n')
+
+ write(' };\n')
+ output.close()
+
+## ------------------------------------------- ##
+## Write an UCS-2 to RFC 1345 mnemonic table. ##
+## ------------------------------------------- ##
+
+def produce_mnemonic(output_name):
+ global output
+
+ inverse_map = {}
+
+ output = open(output_name, 'w')
+ sys.stderr.write("Writing %s\n" % output_name)
+
+ write = output.write
+ write(OVERALL_HEADER)
+ write('\n')
+ write('#define TABLE_LENGTH %d\n' % table_length)
+ write('#define MAX_MNEMONIC_LENGTH %d\n' % MAX_MNEMONIC_LENGTH)
+ write('\n')
+ write('struct entry\n')
+ write(' {\n')
+ write(' recode_ucs2 code;\n')
+ write(' const char *rfc1345;\n')
+ write(' };\n')
+
+ write('\n')
+ write('static const struct entry table[TABLE_LENGTH] =\n')
+ write(' {\n')
+ count = 0
+ indices = mnemonic_map.keys()
+ indices.sort()
+ for ucs2 in indices:
+ text = mnemonic_map[ucs2]
+ inverse_map[text] = count
+ write(' /* %4d */ {0x%04X, "%s"},\n'
+ % (count, ucs2, re.sub(r'([\"])', r'\\\1', text)))
+ count = count + 1
+ write(' };\n')
+
+ write('\n')
+ write('static const unsigned short inverse[TABLE_LENGTH] =\n')
+ write(' {')
+ count = 0
+ keys = inverse_map.keys()
+ keys.sort()
+ for text in keys:
+ if count % 10 == 0:
+ if count != 0:
+ write(',')
+ write('\n /* %4d */ ' % count)
+ else:
+ write(', ')
+ write('%4d' % inverse_map[text])
+ count = count + 1
+ write('\n')
+ write(' };\n')
+
+ output.close()
+
+## ------------------------------- ##
+## Write the explode source file. ##
+## ------------------------------- ##
+
+def produce_explode_init(output_name):
+ global output
+
+ # Prepare the production of tables.
+ output = open(output_name, 'w')
+ sys.stderr.write("Starting %s\n" % output_name)
+
+ write = output.write
+ write(OVERALL_HEADER)
+
+ write('\n')
+ write('#include "common.h"\n')
+
+ # Table fragments will be produced while reading data tables.
+
+def produce_explode_term(output_name):
+
+ # Print the collectable initialization function.
+ sys.stderr.write("Completing %s\n" % output_name)
+
+ write = output.write
+ write('\n')
+ write('bool\n')
+ write('module_explodes (struct recode_outer *outer)\n')
+ write('{\n')
+ count = 0
+ while declare_charset:
+ write(' if (!declare_explode_data (outer, &data_%d, "%s"))\n'
+ % (count, declare_charset[0]))
+ write(' return false;\n')
+ del declare_charset[0]
+ count = count + 1
+ write('\n')
+ while declare_alias:
+ write(' if (!declare_alias (outer, "%s", "%s"))\n' % declare_alias[0])
+ write(' return false;\n')
+ del declare_alias[0]
+ write('\n')
+ write(' return true;\n')
+ write('}\n')
+
+ output.close()
+
+## --------------------------------- ##
+## Write the pool and index tables. ##
+## --------------------------------- ##
+
+def produce_strip_init(output_name):
+ global output
+ global pool_refs
+ global pool_size
+ global strips
+ global strip_map
+
+ # Prepare the production of tables.
+ pool_size = 0
+ pool_refs = 0
+ strip_map = {}
+ strips = []
+
+ output = open(output_name, 'w')
+ sys.stderr.write("Starting %s\n" % output_name)
+
+ write = output.write
+ write(OVERALL_HEADER)
+ write('\n')
+ write('#include \"common.h\"\n')
+
+ # Table fragments will be produced while reading data tables.
+
+def produce_strip_term(output_name, pool_name):
+ global output
+
+ # Give memory statistics.
+ sys.stderr.write('Table memory = %d bytes (pool %d, refs %d)\n'
+ % (pool_size * 2 + pool_refs * 2,
+ pool_size * 2,
+ pool_refs * 2))
+
+ # Print the collectable initialization function.
+ sys.stderr.write("Completing %s\n" % output_name)
+ write = output.write
+
+ write('\n')
+ write('bool\n')
+ write('module_strips (struct recode_outer *outer)\n')
+ write('{\n')
+ write(' RECODE_SYMBOL symbol;\n')
+ write('\n')
+ count = 0
+ while declare_charset:
+ write(' if (!declare_strip_data (outer, &data_%d, "%s"))\n'
+ % (count, declare_charset[0]))
+ write(' return false;\n')
+ del declare_charset[0]
+ count = count + 1
+ write('\n')
+ while declare_alias:
+ alias, charset = declare_alias[0]
+ if implied_surface.has_key(alias):
+ write(' if (symbol = declare_alias (outer, "%s", "%s"), !symbol)\n'
+ % declare_alias[0])
+ write(' return false;\n')
+ write(' if (!declare_implied_surface (outer, symbol, outer->%s_surface))\n'
+ % implied_surface[alias])
+ write(' return false;\n')
+ else:
+ write(' if (!declare_alias (outer, "%s", "%s"))\n'
+ % declare_alias[0])
+ write(' return false;\n')
+ del declare_alias[0]
+ write('\n')
+ write(' return true;\n')
+ write('}\n')
+
+ output.close()
+
+ # Write the pool file.
+
+ output = open(pool_name, 'w')
+ sys.stderr.write("Writing %s\n" % pool_name)
+
+ write = output.write
+ write(OVERALL_HEADER)
+ write('\n')
+ write('#include \"common.h\"\n')
+ write('\n')
+ write('const recode_ucs2 ucs2_data_pool[%d] =\n' % pool_size)
+ write(' {')
+ count = 0
+ for strip in strips:
+ for pos in range(0, STRIP_SIZE * 4, 4):
+ if count % 8 == 0:
+ if count != 0:
+ write(',')
+ write('\n /* %4d */ ' % count)
+ else:
+ write(', ')
+ write('0x' + strip[pos:pos+4])
+ count = count + 1
+ write('\n')
+ write(' };\n')
+
+ output.close()
+
+## ------------------------------ ##
+## Write the documentation file. ##
+## ------------------------------ ##
+
+def produce_texinfo(output_name):
+ global output
+
+ output = open(output_name, 'w')
+ sys.stderr.write("Writing %s\n" % output_name)
+ write = output.write
+
+ charsets = remark_map.keys()
+ charsets.sort()
+ for charset in charsets:
+ write('\n@item %s\n' % charset)
+ write('@tindex %s@r{, aliases and source}\n' % charset)
+ aliases = aliases_map[charset]
+ if aliases:
+ if len(aliases) == 1:
+ if aliases[0]: # FIXME: pourquoi parfois vide ??
+ write('@tindex %s\n' % aliases[0])
+ write('@code{%s} is an alias for this charset.\n'
+ % aliases[0])
+ else:
+ for alias in aliases:
+ write('@tindex %s\n' % alias)
+ write('@code{%s} and @code{%s} are aliases for this charset.\n'
+ % (string.join(aliases[:-1], '}, @code{'), aliases[-1]))
+ for line in remark_map[charset]:
+ match = re.match('([a-z])(.*)', line)
+ if match:
+ line = string.upper(match.group(1)) + match.group(2)
+ write(re.sub('@', '@@', line))
+ if line[-1] != '.':
+ write('.')
+ write('\n')
+
+ output.close()
+
+if __name__ == '__main__':
+ apply(main, tuple(sys.argv[1:]))
-@set UPDATED 27 April 1999
-@set EDITION 3.5
-@set VERSION 3.5
+@set UPDATED 19 December 1999
+@set EDITION 3.5a
+@set VERSION 3.5a
-1999-06-01 Fran\e.A\8eçois Pinard <pinard@iro.umontreal.ca>
+1999-12-14 Fran\e.A\8eçois Pinard <pinard@iro.umontreal.ca>
+
+ * Makefile.am: New file.
+ * Makefile.in.in, POTFILES.in, cat-id-tbl.c, stamp-cat-id: Deleted.
+
+1999-12-13 Fran\8eçois Pinard <pinard@iro.umontreal.ca>
+
+ * de.po, pl.po, sv.po: Updated.
+
+1999-11-27 Fran\8eçois Pinard <pinard@iro.umontreal.ca>
+
+ * it.po: New file.
+
+1999-06-22 Fran\8eçois Pinard <pinard@iro.umontreal.ca>
+
+ * el.po: New file.
+
+1999-06-14 Fran\8eçois Pinard <pinard@iro.umontreal.ca>
+
+ * de.po: Updated.
+\f
+1999-06-01 Fran\8eçois Pinard <pinard@iro.umontreal.ca>
* da.po, es.po, fr.po: Updated.
--- /dev/null
+# Makefile for PO directories.
+# François Pinard <pinard@iro.umontreal.ca>, 1998.
+
+AUTOMAKE_OPTIONS = gnits
+
+localedir = $(prefix)/share/locale
+
+ALL_POFILES = @ALL_POFILES@
+ALL_MOFILES = @ALL_MOFILES@
+MOFILES = @MOFILES@
+
+EXTRA_DIST = $(PACKAGE).pot $(ALL_POFILES) $(ALL_MOFILES)
+
+MSGFMT = msgfmt
+MSGMERGE = msgmerge
+XGETTEXT = xgettext
+
+SUFFIXES = .po .pox .mo
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+ file=$(srcdir)/`echo $* | sed 's,.*/,,'`.mo \
+ && rm -f $$file && $(MSGFMT) -o $$file $<
+
+all: $(ALL_MOFILES)
+
+install-data-local: $(MOFILES)
+if USE_NLS
+ files='$(MOFILES)'; \
+ for file in $$files; do \
+ base=`basename $$file`; \
+ langdir=$(localedir)/`echo $$base | sed 's/\.mo$$//'`/LC_MESSAGES; \
+ $(mkinstalldirs) $$langdir; \
+ echo " $(INSTALL_DATA) $(srcdir)/$$file $$langdir/$(PACKAGE).mo"; \
+ $(INSTALL_DATA) $(srcdir)/$$file $$langdir/$(PACKAGE).mo; \
+ done
+endif
+
+uninstall-local:
+if USE_NLS
+ files='$(MOFILES)'; \
+ for file in $$files; do \
+ base=`basename $$file`; \
+ langdir=$(localedir)/`echo $$base | sed 's/\.mo$$//'`/LC_MESSAGES; \
+ rm -f $$langdir/$(PACKAGE).mo; \
+ done
+endif
+
+MAINTAINER_CLEAN = $(PACKAGE).pot $(MOFILES)
+
+$(srcdir)/$(PACKAGE).pot: $(top_srcdir)/stamp-pot
+ $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --add-comments --keyword=_ --keyword=N_ `cat $(top_srcdir)/stamp-pot`
+ test ! -f $(PACKAGE).po || ( rm -f $@ && mv $(PACKAGE).po $@ )
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ files='$(ALL_MOFILES)'; \
+ for file in $$files; do \
+ base=`basename $$file`; \
+ lang=`echo $$base | sed 's/\.mo$$//'`; \
+ mv $(srcdir)/$$lang.po $(srcdir)/$$lang.old.po; \
+ echo "$$lang:"; \
+ cd $(srcdir) \
+ && if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$file failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
--- /dev/null
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 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.
+
+# Makefile for PO directories.
+# François Pinard <pinard@iro.umontreal.ca>, 1998.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AT_TESTPATH = @AT_TESTPATH@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CPP = @CPP@
+DATADIRNAME = @DATADIRNAME@
+DLLTOOL = @DLLTOOL@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+LEX = @LEX@
+LIBOBJS = @LIBOBJS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+U = @U@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+l = @l@
+
+AUTOMAKE_OPTIONS = gnits
+
+localedir = $(prefix)/share/locale
+
+ALL_POFILES = @ALL_POFILES@
+ALL_MOFILES = @ALL_MOFILES@
+MOFILES = @MOFILES@
+
+EXTRA_DIST = $(PACKAGE).pot $(ALL_POFILES) $(ALL_MOFILES)
+
+MSGFMT = msgfmt
+MSGMERGE = msgmerge
+XGETTEXT = xgettext
+
+SUFFIXES = .po .pox .mo
+
+MAINTAINER_CLEAN = $(PACKAGE).pot $(MOFILES)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .mo .po .pox
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps i18n/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = i18n
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-data-local
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-local
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-local install-data-am install-data install-am install \
+uninstall-local uninstall-am uninstall all-redirect all-am all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+ file=$(srcdir)/`echo $* | sed 's,.*/,,'`.mo \
+ && rm -f $$file && $(MSGFMT) -o $$file $<
+
+all: $(ALL_MOFILES)
+
+install-data-local: $(MOFILES)
+@USE_NLS_TRUE@ files='$(MOFILES)'; \
+@USE_NLS_TRUE@ for file in $$files; do \
+@USE_NLS_TRUE@ base=`basename $$file`; \
+@USE_NLS_TRUE@ langdir=$(localedir)/`echo $$base | sed 's/\.mo$$//'`/LC_MESSAGES; \
+@USE_NLS_TRUE@ $(mkinstalldirs) $$langdir; \
+@USE_NLS_TRUE@ echo " $(INSTALL_DATA) $(srcdir)/$$file $$langdir/$(PACKAGE).mo"; \
+@USE_NLS_TRUE@ $(INSTALL_DATA) $(srcdir)/$$file $$langdir/$(PACKAGE).mo; \
+@USE_NLS_TRUE@ done
+
+uninstall-local:
+@USE_NLS_TRUE@ files='$(MOFILES)'; \
+@USE_NLS_TRUE@ for file in $$files; do \
+@USE_NLS_TRUE@ base=`basename $$file`; \
+@USE_NLS_TRUE@ langdir=$(localedir)/`echo $$base | sed 's/\.mo$$//'`/LC_MESSAGES; \
+@USE_NLS_TRUE@ rm -f $$langdir/$(PACKAGE).mo; \
+@USE_NLS_TRUE@ done
+
+$(srcdir)/$(PACKAGE).pot: $(top_srcdir)/stamp-pot
+ $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --add-comments --keyword=_ --keyword=N_ `cat $(top_srcdir)/stamp-pot`
+ test ! -f $(PACKAGE).po || ( rm -f $@ && mv $(PACKAGE).po $@ )
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ files='$(ALL_MOFILES)'; \
+ for file in $$files; do \
+ base=`basename $$file`; \
+ lang=`echo $$base | sed 's/\.mo$$//'`; \
+ mv $(srcdir)/$$lang.po $(srcdir)/$$lang.old.po; \
+ echo "$$lang:"; \
+ cd $(srcdir) \
+ && if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$file failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+# 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:
#
msgid ""
msgstr ""
-"Project-Id-Version: recode 3.4l\n"
+"Project-Id-Version: recode 3.5\n"
"POT-Creation-Date: 1999-05-18 08:46-0400\n"
-"PO-Revision-Date: 1999-01-10 21:49+01:00\n"
+"PO-Revision-Date: 1999-09-14 22:51+01:00\n"
"Last-Translator: Daniel Naber <dnaber@mini.gt.owl.de>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
#. Dump all characters.
#: src/debug.c:287
-msgid ""
-"UCS2 Mne Description\n"
-"\n"
-msgstr ""
+msgid "UCS2 Mne Description\n\n"
+msgstr "UCS2 Mne Beschreibung\n\n"
#: src/main.c:140
msgid "No error"
#: src/main.c:146
msgid "Ambiguous output"
-msgstr "Nicht-eindeutiges Format"
+msgstr "Mehrdeutige Ausgabe"
#: src/main.c:149
-#, fuzzy
msgid "Untranslatable input"
msgstr "Nicht übersetzbare Eingabe"
#: src/main.c:152
msgid "Invalid input"
-msgstr "Ungültiges Format"
+msgstr "Ungültige Eingabe"
#: src/main.c:155
msgid "System detected problem"
msgstr "Interner Umkodierungsfehler"
#: src/main.c:206
-#, fuzzy
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"
"\"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"
+"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"
msgstr "`%s %s' zeigt weitere Informationen.\n"
#: src/main.c:235
-msgid ""
-"Free `recode' converts files between various character sets and surfaces.\n"
+msgid "Free `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:239
#, c-format
-msgid ""
-"\n"
-"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr ""
-"\n"
-"Aufruf: %s [OPTION]... [ [ZEISATZ] | ANFRAGE [DATEI]... ]\n"
+msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr "\nAufruf: %s [OPTION]... [ [ZEISATZ] | ANFRAGE [DATEI]... ]\n"
#: src/main.c:242
msgid ""
"\n"
"Listings:\n"
" -l, --list[=FORMAT] list one or all known charsets\n"
-" -k, --known=PAIRS restrict charsets according to known PAIRS "
-"list\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"
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"
+" -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"
+" -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"
msgstr ""
"\n"
"Funktionsmodi:\n"
-" -v, --verbose Reihenfolge der Umkodierungsschritte und "
-"Fortschritt\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"
+" -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:273
msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n"
-msgstr ""
-" -p, --sequence=pipe benutze \"pipe\" für Abarbeitung der Schritte\n"
+msgstr " -p, --sequence=pipe benutze \"pipe\" für Abarbeitung der Schritte\n"
#: src/main.c:278
msgid " -p, --sequence=pipe same as -i (on this system)\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, --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"
+" -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"
+" -g, --graphics 'Linienzeichen' des IBMPC-Zeichensatzes durch ähnliche\n"
" ASCII-Zeichen darstellen\n"
-" -x, --ignore=ZEISATZ ZEISATZ bei der Wahl der Kodierungsschritte "
-"ignorieren\n"
+" -x, --ignore=ZEISATZ ZEISATZ bei der Wahl der Kodierungsschritte ignorieren\n"
#: src/main.c:294
-#, fuzzy
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), für ZEISATZ wird die Voreinstellung "
-"`%s'\n"
-"benutzt\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
#, c-format
-msgid ""
-"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
msgstr ""
+"Wenn die Umgebungsvariable DEFAULT_CHARSET nicht gesetzt ist,\n"
+"gilt für ZEISATZ ist die Voreinstellung `%s'.\n"
#: src/main.c:308
msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
msgstr ""
+"Für ZEISATZ existiert keine Voreinstellung, bitte die Umgebungsvariable\n"
+"DEFAULT_CHARSET setzen.\n"
#: src/main.c:313
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"
+"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"
+"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:318
-#, fuzzy
-msgid ""
-"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+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' oder `perl', wobei `c' die\n"
+"LN ist eine Programmiersprache, z.B. `c', `perl' oder `po', wobei `c' die\n"
"Voreinstellung ist.\n"
#: src/main.c:321
-#, fuzzy
msgid ""
"\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
-"ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
-"BEFORE..AFTER,\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"
+"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"
+"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 heisst, dass kein Format "
-"angenommen\n"
+"angenommen; ein / ohne Angabe eines Formats heisst, dass kein Format angenommen\n"
"wird. Siehe Anleitung.\n"
#: src/main.c:329
"Standardausgabe ausgegeben.\n"
#: src/main.c:335
-msgid ""
-"\n"
-"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr ""
-"\n"
-"Berichte über Programmfehler bitte an <recode-bugs@iro.umontreal.ca>.\n"
+msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr "\nBerichte über Programmfehler bitte an <recode-bugs@iro.umontreal.ca>.\n"
#: src/main.c:431
#, c-format
msgid "Ambiguous sequence `%s'"
-msgstr "Nicht eindeutige Folge `%s'"
+msgstr "Mehrdeutige Folge `%s'"
#: src/main.c:435
#, c-format
#: src/main.c:561
#, c-format
msgid "Ambiguous format `%s'"
-msgstr "Nicht eindeutiges Format `%s'"
+msgstr "Mehrdeutiges Format `%s'"
#: src/main.c:565
#, c-format
msgstr "Unbekanntes Format `%s'"
#: src/main.c:622
-#, fuzzy
-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, 1997 Free Software Foundation, Inc.\n"
+msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
#: src/main.c:626
msgid ""
"Nutzbarkeit oder Tauglichkeit zu einem anderen Zweck.\n"
#: src/main.c:630
-msgid ""
-"\n"
-"Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr ""
-"\n"
-"Geschrieben von Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr "\nGeschrieben von Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
#: src/main.c:775
#, c-format
msgid "Deprecated syntax, please prefer `%s'"
-msgstr "Veralteter Syntax, bitte `%s' benutzen"
+msgstr "Veraltete Syntax, bitte `%s' benutzen"
#: src/main.c:781
#, c-format
#: src/main.c:954
#, c-format
msgid "%s in %s..%s"
-msgstr "%s in %s..%s"
+msgstr "%s bei %s..%s"
#: src/names.c:317
#, c-format
msgid "Charset %s already exists and is not %s"
-msgstr "Zeichensatz `%s' existiert bereits und ist nicht `%s'"
+msgstr "Zeichensatz %s existiert bereits und ist nicht %s"
#: src/names.c:819
#, c-format
msgid "Cannot list `%s', no names available for this charset"
msgstr ""
-"Kann `%s' nicht anzeigen, keine \"10646\"-Namen für diesen Zeichensatz\n"
+"Kann `%s' nicht anzeigen, keine Namen für diesen Zeichensatz\n"
" verfügbar"
#. code counter
#. insert a while line before printing
#. Print the long table according to explode data.
#: src/names.c:974 src/names.c:1020
-#, fuzzy, c-format
+#, c-format
msgid "Dec Oct Hex UCS2 Mne %s\n"
-msgstr "Dec Oct Hex Mne UCS2 %s\n"
+msgstr "Dec Oct Hex UCS2 Mne %s\n"
#: src/names.c:1039
#, c-format
msgid "Sorry, no names available for `%s'"
-msgstr "Tut mir leid, aber es sind für `%s' keine \"10646\"-Namen verfügbar"
+msgstr "Tut mir leid, aber es sind für `%s' keine Namen verfügbar"
#: src/outer.c:95
#, c-format
msgid "Resurfacer set more than once for `%s'"
-msgstr ""
+msgstr "`Resurfacer' für `%s' mehr als einmal gesetzt."
#: src/outer.c:102
#, c-format
msgid "Unsurfacer set more than once for `%s'"
-msgstr ""
+msgstr "`Unsurfacer' für `%s' mehr als einmal gesetzt."
#: src/recode.c:115 src/recode.c:127
msgid "Virtual memory exhausted"
#: 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'"
+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"
+msgstr "Kein Zeichen wird zu %3d umkodiert"
#: src/recode.c:170
msgid "Cannot invert given one-to-one table"
#: 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"
+msgstr "Kann die Tabelle aus der Menge der bekannten Paare nicht vervollständigen"
#: src/recode.c:492
msgid "Identity recoding, not worth a table"
#. Print the header of the header file.
#: src/recode.c:531
-#, fuzzy, c-format
+#, c-format
msgid "%sConversion table generated mechanically by Free `%s' %s"
-msgstr " Konvertierung automatisch generiert von »GNU %s %s«.\n"
+msgstr "%sKonvertierung automatisch generiert von »GNU %s %s«"
#: src/recode.c:533
-#, fuzzy, c-format
+#, c-format
msgid "%sfor sequence %s.%s"
-msgstr "Unbekannte Folge '%s'"
+msgstr "%sfür Folge %s.%s"
#: src/recode.c:724
msgid "No table to print"
#: src/request.c:35
msgid "reversible"
-msgstr ""
+msgstr "umkehrbar"
#: src/request.c:37
-#, fuzzy, c-format
+#, c-format
msgid "%s to %s"
-msgstr "%s in %s..%s"
+msgstr "%s nach %s"
#: src/request.c:38 src/request.c:40
msgid "byte"
-msgstr ""
+msgstr "byte"
#: src/request.c:39 src/request.c:41
msgid "ucs2"
-msgstr ""
+msgstr "ucs2"
#: src/request.c:39 src/request.c:41
msgid "variable"
-msgstr ""
+msgstr "variabel"
#: src/request.c:112
msgid "*Unachievable*"
-msgstr ""
+msgstr "*unmöglich*"
#: src/request.c:114
msgid "*mere copy*"
-msgstr ""
+msgstr "*einface Kopie*"
#: src/request.c:244
-#, fuzzy
msgid "Virtual memory exhausted!"
-msgstr "Virtueller Speicher voll"
+msgstr "Virtueller Speicher voll!"
#: src/request.c:263
msgid "Step initialisation failed"
-msgstr ""
+msgstr "Schrittinitialisierung fehlgeschlagen"
#: src/request.c:270
msgid "Step initialisation failed (unprocessed options)"
-msgstr ""
+msgstr "Schrittinitialisierung fehlgeschlagen (nichtbeachtete Optionen)"
#: src/request.c:566
#, c-format
msgid "Request: %s\n"
-msgstr ""
+msgstr "Anfrage: %s\n"
#: src/request.c:702
#, c-format
msgid "Shrunk to: %s\n"
-msgstr ""
+msgstr "Geschrumpft zu: %s\n"
#: src/request.c:806 src/request.c:912
#, c-format
msgid "Unrecognised surface name `%s'"
-msgstr ""
+msgstr "Unbekannter `surface' Name `%s'"
#: src/request.c:884
#, c-format
msgid "No way to recode from `%s' to `%s'"
-msgstr ""
+msgstr "Keine Möglichkeit, von `%s' nach `%s' umzukodieren"
#: src/request.c:992
msgid "Expecting `..' in request"
-msgstr ""
+msgstr "In der Anfrage wird `..' erwartet"
#: src/task.c:751 src/task.c:915
#, c-format
msgid "Child process wait status is 0x%0.2x"
-msgstr ""
+msgstr "Wartezustand des Kindprozesses ist 0x%0.2x"
--- /dev/null
+# Greek messages for GNU recode
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Simos Xenitellis <S.Xenitellis@rhbnc.ac.uk>, 1999.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU recode 3.4r\n"
+"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"PO-Revision-Date: 1999-06-13 01:30+0000\n"
+"Last-Translator: Simos Xenitellis <S.Xenitellis@rhbnc.ac.uk>\n"
+"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-7\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+# src/debug.c:287
+#. Dump all characters.
+msgid "UCS2 Mne Description\n\n"
+msgstr "UCS2 Mne ÐåñéãñáöÞ\n\n"
+
+# src/main.c:157
+msgid "No error"
+msgstr "ÊáíÝíá óöÜëìá"
+
+# src/main.c:160
+msgid "Non canonical input"
+msgstr "Ìç êáíïíéêïðïéçìÝíç åßóïäïò"
+
+# src/main.c:163
+msgid "Ambiguous output"
+msgstr "ÁóáöÞò Ýîïäïò"
+
+# src/main.c:166
+msgid "Untranslatable input"
+msgstr "Ìç ìåôáöñÜóéìç åßóïäïò"
+
+# src/main.c:169
+msgid "Invalid input"
+msgstr "Ìç Ýãêõñç åßóïäïò"
+
+# src/main.c:172
+msgid "System detected problem"
+msgstr "Ôï óýóôçìá äéáðßóôùóå ðñüâëçìá"
+
+# src/main.c:175
+msgid "Misuse of recoding library"
+msgstr "ÊáêÞ ÷ñÞóç ôçò âéâëéïèÞêçò recode"
+
+# src/main.c:178
+msgid "Internal recoding bug"
+msgstr "Åóùôåñéêü óöÜëìá (recoding)"
+
+# src/main.c:454
+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
+#, c-format
+msgid "Try `%s %s' for more information.\n"
+msgstr "ÄïêéìÜóôå `%s %s' ãéá ðåñéóóüôåñåò ðëçñïöïñßåò.\n"
+
+# src/main.c:483
+msgid "Free `recode' converts files between various character sets and surfaces.\n"
+msgstr "Ôï åëåýèåñï `recode' ìåôáôñÝðåé áñ÷åßá ìåôáîý ðïéêßëùí óõíüëùí ÷áñáêôÞñùí êáé åðéöáíåéþí.\n"
+
+# src/main.c:486
+#, c-format
+msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr "\n×ñÞóç: %s [ÅÐÉËÏÃÇ]... [ [ÓÕÍÏËÏ×ÁÑÁÊÔ¹ÑÙÍ] | ÁÉÔÇÓÇ [ÁÑ×ÅÉÏ]...\n"
+
+# src/main.c:489
+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
+msgid ""
+"\n"
+"Listings:\n"
+" -l, --list[=FORMAT] list one or all known charsets\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
+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
+msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n"
+msgstr " -p, --sequence=pipe ÷ñÞóç óùëÞíùóçò óôá äéáäï÷éêÜ ðåñÜóìáôá\n"
+
+# src/main.c:521
+msgid " -p, --sequence=pipe same as -i (on this system)\n"
+msgstr " -p, --sequence=pipe ôï ßäéï ìå -i (óå áõôü ôï óýóôçìá)\n"
+
+# src/main.c:525
+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
+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
+#, c-format
+msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+msgstr ""
+"Åêôüò êáé áí Ý÷åé ïñéóôåß ç ìåôáâëçôÞ ðåñéâÜëëïíôïò DEFAULT_CHARSET,\n"
+"ï ðßíáêáò ÷áñáêôÞñùí (CHARSET) åßíáé åî'ïñéóìïý `%s'.\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:540
+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
+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
+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
+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
+msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr "\nÁíáöÝñáôå óöÜëìáôá óôï <recode-bugs@iro.umontreal.ca>.\n"
+
+# src/main.c:659
+#, c-format
+msgid "Ambiguous sequence `%s'"
+msgstr "ÁóáöÞò óõìâïëïóåéñÜ `%s'"
+
+# src/main.c:663
+#, c-format
+msgid "Unknown sequence `%s'"
+msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
+
+# src/main.c:693 src/main.c:747
+#, c-format
+msgid "Ambiguous language `%s'"
+msgstr "ÁóáöÞò ãëþóóá `%s'"
+
+# src/main.c:697 src/main.c:751
+#. -1
+#, c-format
+msgid "Unknown language `%s'"
+msgstr "¶ãíùóôç ãëþóóá `%s'"
+
+# src/main.c:785
+#, c-format
+msgid "Ambiguous format `%s'"
+msgstr "ÁóáöÞò ìïñöÞ `%s'"
+
+# src/main.c:789
+#, c-format
+msgid "Unknown format `%s'"
+msgstr "¶ãíùóôç ìïñöÞ `%s'"
+
+# src/main.c:622
+msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+
+# src/main.c:850
+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:854
+msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr "\nÃñáììÝíï áðü ôïí Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+
+# src/main.c:999
+#, c-format
+msgid "Deprecated syntax, please prefer `%s'"
+msgstr "Ìç óõíéóôþìåíç óýíôáîç, ðáñáêáëþ ðñïôéìßóôå `%s'"
+
+# src/main.c:1005
+#, c-format
+msgid "Erroneous request `%s'"
+msgstr "ÅóöáëìÝíç áßôçóç `%s'"
+
+# src/main.c:1098
+#, c-format
+msgid "Recoding %s..."
+msgstr "ÌåôáôñïðÞ ôïõ %s..."
+
+# src/main.c:1108
+msgid " done\n"
+msgstr " Ýãéíå\n"
+
+# src/main.c:1142
+#, c-format
+msgid " failed: %s in %s..%s\n"
+msgstr " áðÝôõ÷å: %s óå %s..%s\n"
+
+# src/main.c:1149
+#, c-format
+msgid "%s failed: %s in %s..%s"
+msgstr "%s áðÝôõ÷å: %s óå %s..%s"
+
+# src/main.c:1172
+#, c-format
+msgid "%s in %s..%s"
+msgstr "%s óå %s..%s"
+
+# src/names.c:259
+#, c-format
+msgid "Charset %s already exists and is not %s"
+msgstr "Ï ðßíáêáò ÷áñáêôÞñùí %s õðÜñ÷åé Þäç êáé äåí åßíáé ôï %s"
+
+# src/names.c:754
+#, c-format
+msgid "Cannot list `%s', no names available for this charset"
+msgstr "Áäõíáìßá åìöÜíéóçò ôïõ `%s', äåí õðÜñ÷ïõí ïíüìáôá äéáèÝóéìá ãéá áõôüí ôïí ðßíáêá ÷áñáêôÞñùí"
+
+# src/names.c:974 src/names.c:1020
+#. code counter
+#. expected value for code counter
+#. UCS-2 translation
+#. insert a while line before printing
+#. Print the long table according to explode data.
+#, c-format
+msgid "Dec Oct Hex UCS2 Mne %s\n"
+msgstr "Dec Oct Hex UCS2 Mne %s\n"
+
+# src/names.c:847
+#, c-format
+msgid "Sorry, no names available for `%s'"
+msgstr "Óõãíþìç, äåí õðÜñ÷ïõí äéáèÝóéìá ïíüìáôá ãéá ôï `%s'"
+
+# src/outer.c:95
+#, c-format
+msgid "Resurfacer set more than once for `%s'"
+msgstr "Ï åðáíáôïðïèåôçôÞò åðéöÜíåéáò Ý÷åé ôåèåß ðåñéóóüôåñï áðü ìéá öïñÜ ãéá ôï `%s'"
+
+# src/outer.c:102
+#, c-format
+msgid "Unsurfacer set more than once for `%s'"
+msgstr "Ï áíôéôïðïèåôçôÞò åðéöÜíåéáò Ý÷åé ôåèåß ðåñéóóüôåñï áðü ìéá öïñÜ ãéá ôï `%s'"
+
+# src/recode.c:117 src/recode.c:129
+msgid "Virtual memory exhausted"
+msgstr "Ç éäåáôÞ ìíÞìç åîáíôëÞèçêå"
+
+# src/recode.c:157
+#, c-format
+msgid "Codes %3d and %3d both recode to %3d"
+msgstr "Êáé ïé äýï êùäéêïß %3d êáé %3d ìåôáôñÝðïíôáé óå %3d"
+
+# src/recode.c:171
+#, c-format
+msgid "No character recodes to %3d"
+msgstr "ÊáíÝíáò ÷áñáêôÞñáò äåí ìåôáôñÝðåôáé óå %3d"
+
+# src/recode.c:172
+msgid "Cannot invert given one-to-one table"
+msgstr "Áäõíáìßá áíôéóôñïöÞò äïèÝíôïò 1-1 ðßíáêá"
+
+# src/recode.c:226 src/recode.c:238
+#, c-format
+msgid "Following diagnostics for `%s' to `%s'"
+msgstr "Áêïëïõèïýí äéáãíùóôéêÜ ãéá `%s' óå `%s'"
+
+# src/recode.c:231 src/recode.c:243
+#, c-format
+msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>"
+msgstr "Áñéèì. æåýãïõò %d: <%3d, %3d> óõãêñïýåôáé ìå <%3d, %3d>"
+
+# src/recode.c:274
+msgid "Cannot complete table from set of known pairs"
+msgstr "Áäõíáìßá óõìðëÞñùóçò ðßíáêá áðü ôï óýíïëï ãíùóôþí æåõãþí"
+
+# src/recode.c:504
+msgid "Identity recoding, not worth a table"
+msgstr "ÌçäáìçíÞ ìåôáôñïðÞ, äåí ÷ñåéÜæåôáé ðßíáêá"
+
+# src/recode.c:512
+msgid "Recoding is too complex for a mere table"
+msgstr "Ç ìåôáôñïðÞ åßíáé ðïëý ðåñßðëïêç ãéá Ýíá ìüíï ðßíáêá"
+
+# src/recode.c:544
+#. Print the header of the header file.
+#, c-format
+msgid "%sConversion table generated mechanically by Free `%s' %s"
+msgstr "%sÐßíáêáò ìåôáôñïðÞò äçìéïõñãÞèçêå ìç÷áíéêÜ áðü ôï Åëåýèåñï `%s' %s"
+
+# src/recode.c:546
+#, c-format
+msgid "%sfor sequence %s.%s"
+msgstr "%sãéá äéáäï÷Þ %s.%s"
+
+# src/recode.c:736
+msgid "No table to print"
+msgstr "ÊáíÝíáò ðßíáêáò ãéá åêôýðùóç"
+
+# src/request.c:35
+msgid "reversible"
+msgstr "áíôéóôñåðôü"
+
+# src/request.c:37
+#, c-format
+msgid "%s to %s"
+msgstr "%s óå %s"
+
+# src/request.c:38 src/request.c:40
+msgid "byte"
+msgstr "byte"
+
+# src/request.c:39 src/request.c:41
+msgid "ucs2"
+msgstr "ucs2"
+
+# src/request.c:39 src/request.c:41
+msgid "variable"
+msgstr "ìåôáâëçôÞ"
+
+# src/request.c:112
+msgid "*Unachievable*"
+msgstr "*Ìç êáôïñèùôü*"
+
+# src/request.c:114
+msgid "*mere copy*"
+msgstr "*áðëÞ áíôéãñáöÞ*"
+
+# src/request.c:244
+msgid "Virtual memory exhausted!"
+msgstr "Ç éäåáôÞ ìíÞìç åîáíôëÞèçêå!"
+
+# src/request.c:263
+msgid "Step initialisation failed"
+msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å"
+
+# src/request.c:270
+msgid "Step initialisation failed (unprocessed options)"
+msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å (åðéëïãÝò ðïõ äåí Ý÷ïõí åðåîåñãáóôåß)"
+
+# src/request.c:566
+#, c-format
+msgid "Request: %s\n"
+msgstr "Áßôçóç: %s\n"
+
+# src/request.c:702
+#, c-format
+msgid "Shrunk to: %s\n"
+msgstr "Óõññßêíùóç óå %s\n"
+
+# src/request.c:806 src/request.c:912
+#, c-format
+msgid "Unrecognised surface name `%s'"
+msgstr "Ìç áíáãíùñßóçìï üíïìá åðéöÜíåéáò `%s'"
+
+# src/request.c:884
+#, c-format
+msgid "No way to recode from `%s' to `%s'"
+msgstr "ÊáíÝíáò ôñüðïò íá ìåôáôñáðåß áðü `%s' óå `%s'"
+
+# src/request.c:992
+msgid "Expecting `..' in request"
+msgstr "ÁíáìÝíåôáé `..' óôçí áßôçóç"
+
+# src/task.c:751 src/task.c:915
+#, c-format
+msgid "Child process wait status is 0x%0.2x"
+msgstr "Ç êáôÜóôáóç ðáñáìïíÞò ôçò èõãáôñéêÞò äéåñãáóßáò åßíáé 0x%0.2x"
#
msgid ""
msgstr ""
-"Project-Id-Version: Free recode 3.4r\n"
+"Project-Id-Version: Free recode 3.5\n"
"POT-Creation-Date: 1999-05-18 08:46-0400\n"
-"PO-Revision-Date: 1999-06-01 23:22-04:00\n"
+"PO-Revision-Date: 1999-08-17 14:14-04:00\n"
"Last-Translator: François Pinard <pinard@iro.umontreal.ca>\n"
-"Language-Team: French <traduc@Linux.EU.Org>\n"
+"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
msgstr ""
"\n"
"Rapporter tout disfonctionnement à mailto:recode-bugs@iro.umontreal.ca;\n"
-"et rapporter les problèmes de francisation à mailto:fr@li.org.\n"
+"et rapporter les problèmes de francisation à mailto:traduc@traduc.org.\n"
#: src/main.c:431
#, c-format
--- /dev/null
+# MESSAGGI IN ITALIANO PER GNU RECODE.
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Lorenzo Cappelletti <L.Cappelletti@POBoxes.com>, 1999.
+#
+# table -> tabella
+# character set -> insieme di caratteri
+# charset -> charset
+# surface -> ?
+# to recode -> ricodificare
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU recode 3.5\n"
+"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"PO-Revision-Date: 1999-11-19 23:30+01:00\n"
+"Last-Translator: Lorenzo Cappelletti <L.Cappelletti@POBoxes.com>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#. Dump all characters.
+#: src/debug.c:287
+msgid "UCS2 Mne Description\n\n"
+msgstr "UCS2 Mne Descrizione\n"
+
+#: src/main.c:140
+msgid "No error"
+msgstr "Nessun errore"
+
+#: src/main.c:143
+msgid "Non canonical input"
+msgstr "Nessun input canonico"
+
+#: src/main.c:146
+msgid "Ambiguous output"
+msgstr "Output ambiguo"
+
+#: src/main.c:149
+msgid "Untranslatable input"
+msgstr "Input non traslabile"
+
+#: src/main.c:152
+msgid "Invalid input"
+msgstr "Input non valido"
+
+#: src/main.c:155
+msgid "System detected problem"
+msgstr "Rilevato problema di sistema"
+
+#: src/main.c:158
+msgid "Misuse of recoding library"
+msgstr "Uso scorretto della libreria di ricodifica"
+
+#: src/main.c:161
+msgid "Internal recoding bug"
+msgstr "Bug di ricodifica interno"
+
+#: src/main.c:206
+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:231
+#, c-format
+msgid "Try `%s %s' for more information.\n"
+msgstr "Usare `%s %s' per ulteriori informazioni.\n"
+
+# Libero `recode' non mi piace
+# Cosa sono le surfaces in questo contesto?
+#: src/main.c:235
+msgid "Free `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:239
+#, c-format
+msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr "\nUso: %s [OPZIONI]... [ [CHARSET] | RICHIESTA [FILE]... ]\n"
+
+#: src/main.c:242
+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:248
+msgid ""
+"\n"
+"Listings:\n"
+" -l, --list[=FORMAT] list one or all known charsets\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 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"
+" poi 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"
+" -C, --copyright mostra le condizioni del Copyright e riproduzione\n"
+" --help mostra questo aiuto ed esce\n"
+" --version informazioni sulla versione ed uscita\n"
+
+#: src/main.c:261
+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:273
+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:278
+msgid " -p, --sequence=pipe same as -i (on this system)\n"
+msgstr " -p, --sequence=pipe come -i (su questo sistema)\n"
+
+#: src/main.c:283
+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:294
+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
+#, c-format
+msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+msgstr ""
+"Se DEFAULT_CHARSET non è specificato nell'ambiente, il CHARSET predefinito\n"
+"è `%s`.\n"
+
+#: src/main.c:308
+msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+msgstr "Nessun CHARSET predefinito, definire DEFAULT_CHARSET nell'ambiente.\n"
+
+# Non riesco assolutamente a capire la costruzione logica di questa frase
+#: src/main.c:313
+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:318
+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:321
+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:329
+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:335
+msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr "\nSegnalare i bug a <recode-bugs@iro.umontreal.ca>.\n"
+
+#: src/main.c:431
+#, c-format
+msgid "Ambiguous sequence `%s'"
+msgstr "Sequenza ambigua `%s'"
+
+#: src/main.c:435
+#, c-format
+msgid "Unknown sequence `%s'"
+msgstr "Sequenza sconosciuta `%s'"
+
+#: src/main.c:465 src/main.c:523
+#, c-format
+msgid "Ambiguous language `%s'"
+msgstr "Lingua ambigua `%s'"
+
+#. -1
+#: src/main.c:469 src/main.c:527
+#, c-format
+msgid "Unknown language `%s'"
+msgstr "Lingua sconosciuta `%s'"
+
+#: src/main.c:561
+#, c-format
+msgid "Ambiguous format `%s'"
+msgstr "Formato ambiguo `%s'"
+
+#: src/main.c:565
+#, c-format
+msgid "Unknown format `%s'"
+msgstr "Formato sconosciuto `%s'"
+
+#: src/main.c:622
+msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+
+#: src/main.c:626
+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:630
+msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr "\nScritto da Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+
+#: src/main.c:775
+#, c-format
+msgid "Deprecated syntax, please prefer `%s'"
+msgstr "Sintassi sconsigliata, si preferisca `%s'"
+
+#: src/main.c:781
+#, c-format
+msgid "Erroneous request `%s'"
+msgstr "Richiesta errata `%s'"
+
+#: src/main.c:878
+#, c-format
+msgid "Recoding %s..."
+msgstr "Sto ricodificando %s..."
+
+#: src/main.c:888
+msgid " done\n"
+msgstr " fatto\n"
+
+#: src/main.c:924
+#, c-format
+msgid " failed: %s in %s..%s\n"
+msgstr " fallito: %s in %s..%s\n"
+
+#: src/main.c:931
+#, c-format
+msgid "%s failed: %s in %s..%s"
+msgstr "%s fallito: %s in %s..%s"
+
+#: src/main.c:954
+#, c-format
+msgid "%s in %s..%s"
+msgstr "%s in %s..%s"
+
+#: src/names.c:317
+#, c-format
+msgid "Charset %s already exists and is not %s"
+msgstr "Il charset %s esiste già e non è %s"
+
+#: src/names.c:819
+#, c-format
+msgid "Cannot list `%s', no names available for this charset"
+msgstr "Non posso listare `%s', nessun nome disponibile per questo charset"
+
+#. code counter
+#. expected value for code counter
+#. UCS-2 translation
+#. insert a while line before printing
+#. Print the long table according to explode data.
+#: src/names.c:974 src/names.c:1020
+#, c-format
+msgid "Dec Oct Hex UCS2 Mne %s\n"
+msgstr "Dec Ott Esa UCS2 Mne %s\n"
+
+#: src/names.c:1039
+#, c-format
+msgid "Sorry, no names available for `%s'"
+msgstr "Spiacente, nessun nome disponibile per `%s'"
+
+#: src/outer.c:95
+#, c-format
+msgid "Resurfacer set more than once for `%s'"
+msgstr "Il resurfacer è impostato piú di una volta per `%s'"
+
+#: src/outer.c:102
+#, 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"
+
+# Una forma migliore per identity recoding?
+#: src/recode.c:492
+msgid "Identity recoding, not worth a table"
+msgstr "Sto ricodificando nell'identità, tabella non significativa"
+
+#: src/recode.c:499
+msgid "Recoding is too complex for a mere table"
+msgstr "La ricodifica è troppo complessa per una sola tabella"
+
+#. Print the header of the header file.
+#: src/recode.c:531
+#, c-format
+msgid "%sConversion table generated mechanically by Free `%s' %s"
+msgstr "%sTabella di conversione generata automaticamente dalla Free `%s' %s"
+
+#: src/recode.c:533
+#, c-format
+msgid "%sfor sequence %s.%s"
+msgstr "%sper la sequenza %s.%s"
+
+#: src/recode.c:724
+msgid "No table to print"
+msgstr "Nessuna tabella da stampare"
+
+#: src/request.c:35
+msgid "reversible"
+msgstr "reversibile"
+
+#: src/request.c:37
+#, c-format
+msgid "%s to %s"
+msgstr "%s in %s"
+
+#: src/request.c:38 src/request.c:40
+msgid "byte"
+msgstr "byte"
+
+# Verificare il significato della sigla
+#: src/request.c:39 src/request.c:41
+msgid "ucs2"
+msgstr "ucs2"
+
+#: src/request.c:39 src/request.c:41
+msgid "variable"
+msgstr "variabile"
+
+#: src/request.c:112
+msgid "*Unachievable*"
+msgstr "*Inraggiungibile*"
+
+#: src/request.c:114
+msgid "*mere copy*"
+msgstr "*per sola copia*"
+
+#: src/request.c:244
+msgid "Virtual memory exhausted!"
+msgstr "Memoria virtuale esaurita!"
+
+#: src/request.c:263
+msgid "Step initialisation failed"
+msgstr "Passo di inizializzazione fallito"
+
+#: src/request.c:270
+msgid "Step initialisation failed (unprocessed options)"
+msgstr "Passo di inizializzazione fallito (opzioni non processate)"
+
+#: src/request.c:566
+#, c-format
+msgid "Request: %s\n"
+msgstr "Richiesta: %s\n"
+
+#: src/request.c:702
+#, c-format
+msgid "Shrunk to: %s\n"
+msgstr "Ridotto a: %s\n"
+
+#: src/request.c:806 src/request.c:912
+#, c-format
+msgid "Unrecognised surface name `%s'"
+msgstr "Nome di surface non riconosciuta `%s'"
+
+#: src/request.c:884
+#, c-format
+msgid "No way to recode from `%s' to `%s'"
+msgstr "Nessuno modo per ricodificare da `%s' a `%s'"
+
+#: src/request.c:992
+msgid "Expecting `..' in request"
+msgstr "Atteso `..' nella richiesta"
+
+#: src/task.c:751 src/task.c:915
+#, c-format
+msgid "Child process wait status is 0x%0.2x"
+msgstr "Lo stato di attesa del processo figlio è 0x%0.2x"
# Polish translations for the GNU recode messages
# Copyright (C) 1996 Free Software Foundation, Inc.
-# Pawe³ Krawczyk <kravietz@pipeta.chemia.pk.edu.pl>, 1996
+# Pawe³ Krawczyk <kravietz@ceti.pl>, 1996, 1997, 1998, 1999
#
msgid ""
msgstr ""
-"Project-Id-Version: recode 3.4.2\n"
+"Project-Id-Version: recode 3.4r\n"
"POT-Creation-Date: 1999-05-18 08:46-0400\n"
-"PO-Revision-Date: 1996-08-27 21:45+0100\n"
-"Last-Translator: Pawe³ Krawczyk <kravietz@pipeta.chemia.pk.edu.pl>\n"
+"PO-Revision-Date: 1999-05-26 14:49+02:00\n"
+"Last-Translator: Pawe³ Krawczyk <kravietz@ceti.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
#. Dump all characters.
#: src/debug.c:287
-msgid ""
-"UCS2 Mne Description\n"
-"\n"
-msgstr ""
+msgid "UCS2 Mne Description\n\n"
+msgstr "UCS2 Mne Description\n\n"
#: src/main.c:140
msgid "No error"
-msgstr ""
+msgstr "Brak b³êdu"
#: src/main.c:143
msgid "Non canonical input"
-msgstr ""
+msgstr "Dane wej¶ciowe nie s± kanoniczne"
#: src/main.c:146
-#, fuzzy
msgid "Ambiguous output"
-msgstr "Nierozpoznany format `%s'"
+msgstr "Dane wyj¶ciowe s± dwuznaczne"
#: src/main.c:149
msgid "Untranslatable input"
-msgstr ""
+msgstr "Dane wej¶ciowe nie mog± byæ przet³umaczone"
#: src/main.c:152
msgid "Invalid input"
-msgstr ""
+msgstr "B³êdne dane wej¶ciowe"
#: src/main.c:155
msgid "System detected problem"
-msgstr ""
+msgstr "System wykry³ problem"
#: src/main.c:158
msgid "Misuse of recoding library"
-msgstr ""
+msgstr "B³êdne u¿ycie biblioteki przekodowuj±cej"
#: src/main.c:161
msgid "Internal recoding bug"
-msgstr ""
+msgstr "Wyst±pi³ wewnêtrzny b³±d przekodowania"
#: src/main.c:206
msgid ""
"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æ "
-"zachowuj±c\n"
-"warunki Powszechnej Licencji Publicznej GNU (General Public Licence), \n"
-"opublikowanej przez Free Software Foundation, w wersji 2 lub wy¿szej.\n"
+"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"
+"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"
#: src/main.c:231
#, c-format
msgid "Try `%s %s' for more information.\n"
-msgstr "Spróbuj `%s %s' po wiêcej informacji.\n"
+msgstr "Polecenie `%s %s' wy¶wietli wiêcej informacji.\n"
#: src/main.c:235
-msgid ""
-"Free `recode' converts files between various character sets and surfaces.\n"
+msgid "Free `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'
#: src/main.c:239
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr ""
-"\n"
-"Sk³adnia: %s [OPCJA]... [ZESTAW_ZNAKÓW]\n"
+#, c-format
+msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr "\nSk³adnia: %s [OPCJA]... [ [ZESTAW_ZNAKÓW] | POLECENIE [PLIK]... ]\n"
#: src/main.c:242
msgid ""
"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:248
msgid ""
"\n"
"Listings:\n"
" -l, --list[=FORMAT] list one or all known charsets\n"
-" -k, --known=PAIRS restrict charsets according to known PAIRS "
-"list\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"
" --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\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"
+" --version wy¶wietla wersjê programu i koñczy pracê\n"
+" --help wy¶wietla ten tekst pomocy i koñczy pracê\n"
#: src/main.c:261
msgid ""
" -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:273
msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n"
-msgstr ""
-" -p, --sequence=pipe u¿ycie strumieni w przebiegach sekwencyjnych\n"
+msgstr " -p, --sequence=pipe u¿ywa potoków miêdzy etapami\n"
#: src/main.c:278
-#, fuzzy
msgid " -p, --sequence=pipe same as -i (on this system)\n"
-msgstr " -p, --sequence=pipe identyczne jak -o (w tym systemie)\n"
+msgstr " -p, --sequence=pipe identyczne jak -i (w tym systemie)\n"
#: src/main.c:283
msgid ""
" -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:294
msgid ""
"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
#, c-format
-msgid ""
-"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
msgstr ""
+"Je¶li zmienna ¶rodowiskowa DEFAULT_CHARSET nie jest ustawiona, domy¶lnym\n"
+"zestawem znaków jest `%s'.\n"
#: src/main.c:308
msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
msgstr ""
+"ZESTAW znaków nie ma warto¶ci domy¶lnej, ustaw zmienn± ¶rodowiskow±\n"
+"DEFAULT_CHARSET.\n"
#: src/main.c:313
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"
+"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:318
-msgid ""
-"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+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:321
msgid ""
"\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
-"ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
-"BEFORE..AFTER,\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"
+"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:329
msgid ""
"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:335
-msgid ""
-"\n"
-"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr ""
+msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr "\nProsimy o zg³aszanie b³êdów na adres <recode-bugs@iro.umontreal.ca>.\n"
#: src/main.c:431
#, c-format
msgstr "Nieznana sekwencja `%s'"
#: src/main.c:465 src/main.c:523
-#, fuzzy, c-format
+#, c-format
msgid "Ambiguous language `%s'"
-msgstr "Nierozpoznany zestaw znaków `%s'"
+msgstr "Nierozpoznany jêzyk `%s'"
#. -1
#: src/main.c:469 src/main.c:527
-#, fuzzy, c-format
+#, c-format
msgid "Unknown language `%s'"
-msgstr "Nieznany zestaw znaków `%s'"
+msgstr "Nieznany jêzyk `%s'"
#: src/main.c:561
#, c-format
msgstr "Nieznany format `%s'"
#: src/main.c:622
-msgid ""
-"\n"
-"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr ""
+msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
#: src/main.c:626
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 znajdziesz 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:630
-msgid ""
-"\n"
-"Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr ""
+msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr "\nAutorem jest Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
#: src/main.c:775
#, c-format
msgid "Deprecated syntax, please prefer `%s'"
-msgstr ""
+msgstr "Odradza siê stosowanie tej sk³adni, proszê u¿ywaæ `%s'"
#: src/main.c:781
#, c-format
msgid "Erroneous request `%s'"
-msgstr ""
+msgstr "B³êdne polecenie `%s'"
#: src/main.c:878
#, c-format
#: src/main.c:924
#, c-format
msgid " failed: %s in %s..%s\n"
-msgstr ""
+msgstr " nie powiod³o siê: %s w %s..%s\n"
#: src/main.c:931
#, c-format
msgid "%s failed: %s in %s..%s"
-msgstr ""
+msgstr "%s nie powiod³o siê: %s w %s..%s"
#: src/main.c:954
-#, fuzzy, c-format
+#, c-format
msgid "%s in %s..%s"
-msgstr "Nieznana sekwencja `%s'"
+msgstr "%s w %s..%s"
#: src/names.c:317
#, c-format
msgstr "Zestaw %s ju¿ istnieje i nie jest %s"
#: src/names.c:819
-#, fuzzy, c-format
+#, c-format
msgid "Cannot list `%s', no names available for this charset"
-msgstr "Nie mogê wylistowaæ `%s', brak nazw ISO 10646 dla tego zestawu"
+msgstr "Nie mogê wylistowaæ `%s', brak nazw dla tego zestawu znaków"
#. code counter
#. expected value for code counter
#. insert a while line before printing
#. Print the long table according to explode data.
#: src/names.c:974 src/names.c:1020
-#, fuzzy, c-format
+#, c-format
msgid "Dec Oct Hex UCS2 Mne %s\n"
-msgstr "dec okt hex zn %s\n"
+msgstr "Dec Okt Hex UCS2 Mne %s\n"
#: src/names.c:1039
-#, fuzzy, c-format
+#, c-format
msgid "Sorry, no names available for `%s'"
-msgstr "Brak nazw ISO 10646 dla `%s'"
+msgstr "Brak nazw dla `%s'"
#: src/outer.c:95
#, c-format
msgid "Resurfacer set more than once for `%s'"
-msgstr ""
+msgstr "Procedura rekoduj±ca zosta³a ustawiona wiêcej ni¿ raz dla `%s'"
#: src/outer.c:102
#, c-format
msgid "Unsurfacer set more than once for `%s'"
-msgstr ""
+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 ""
+msgstr "Pamiêæ wirtualna wyczerpana"
#: src/recode.c:155
#, c-format
msgstr "Diagnostyka dla `%s' do `%s'"
#: src/recode.c:229 src/recode.c:241
-#, fuzzy, c-format
+#, c-format
msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>"
-msgstr "Para nr %d: { %3d, %3d } konflikt z { %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:492
-#, fuzzy
msgid "Identity recoding, not worth a table"
msgstr "Przekodowanie jest proste, tablica nie jest potrzebna"
#. Print the header of the header file.
#: src/recode.c:531
-#, fuzzy, c-format
+#, c-format
msgid "%sConversion table generated mechanically by Free `%s' %s"
-msgstr " Wygenerowane automatycznie przez GNU %s %s.\n"
+msgstr "%sTablica przekodowañ wygenerowana automatycznie przez GNU `%s' %s."
#: src/recode.c:533
-#, fuzzy, c-format
+#, c-format
msgid "%sfor sequence %s.%s"
-msgstr "Nieznana sekwencja `%s'"
+msgstr "%sdla sekwencji %s.%s"
#: src/recode.c:724
msgid "No table to print"
msgstr "odwracalna"
#: src/request.c:37
-#, fuzzy, c-format
+#, c-format
msgid "%s to %s"
-msgstr "Nieznana sekwencja `%s'"
+msgstr "%s na %s"
#: src/request.c:38 src/request.c:40
msgid "byte"
-msgstr ""
+msgstr "bajt"
#: src/request.c:39 src/request.c:41
msgid "ucs2"
-msgstr ""
+msgstr "ucs2"
#: src/request.c:39 src/request.c:41
-#, fuzzy
msgid "variable"
-msgstr "odwracalna"
+msgstr "zmienne"
#: src/request.c:112
msgid "*Unachievable*"
-msgstr ""
+msgstr "*Nieosi±galne*"
#: src/request.c:114
msgid "*mere copy*"
-msgstr ""
+msgstr "*zwyk³a kopia*"
#: src/request.c:244
msgid "Virtual memory exhausted!"
-msgstr ""
+msgstr "Pamiêæ wirtualna wyczerpana!"
#: src/request.c:263
msgid "Step initialisation failed"
-msgstr ""
+msgstr "Inicjalizacja kroku nie powiod³a siê"
#: src/request.c:270
msgid "Step initialisation failed (unprocessed options)"
-msgstr ""
+msgstr "Inicjalizacja kroku nie powiod³a siê (nieprzetworzone opcje)"
#: src/request.c:566
#, c-format
msgid "Request: %s\n"
-msgstr ""
+msgstr "Polecenie: %s\n"
#: src/request.c:702
#, c-format
msgid "Shrunk to: %s\n"
-msgstr ""
+msgstr "Zmniejszony do: %s\n"
#: src/request.c:806 src/request.c:912
#, c-format
msgid "Unrecognised surface name `%s'"
-msgstr ""
+msgstr "Nierozpoznana nazwa standardu kodowania `%s'"
#: src/request.c:884
-#, fuzzy, c-format
+#, c-format
msgid "No way to recode from `%s' to `%s'"
-msgstr "Niemo¿liwe przekodowanie z %s na %s"
+msgstr "Przekodowanie `%s' na `%s' jest niemo¿liwe"
#: src/request.c:992
msgid "Expecting `..' in request"
-msgstr ""
+msgstr "Spodziewane `..' w poleceniu"
#: src/task.c:751 src/task.c:915
#, c-format
msgid "Child process wait status is 0x%0.2x"
msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
-#~ msgid "Hash stats: %d names using %d buckets out of %d\n"
-#~ msgstr "Wyniki przeszukiwania: %d u¿ywa %d spo¶ród %d zbiorów\n"
-
-#~ msgid "Currently, -s is ignored when -g is selected"
-#~ msgstr "Opcja -s jest wy³±czana przez opcjê -g"
-
-#~ msgid "one to one"
-#~ msgstr "jeden na jeden"
-
-#~ msgid "one to many"
-#~ msgstr "jeden na wiele"
-
-#~ msgid "many to one"
-#~ msgstr "wiele na jeden"
-
-#~ msgid "many to many"
-#~ msgstr "wiele na wiele"
-
#~ msgid " Each input char transforms into an output string,\n"
#~ msgstr " Ka¿dy znak wej¶ciowy jest konwertowany na ³añcuch wyj¶ciowy,\n"
#~ msgstr " Ka¿dy znak wej¶ciowy jest konwertowany na ³añcuch wyj¶ciowy.\n"
#~ msgid " Programming is needed to handle multichar input.\n"
-#~ msgstr ""
-#~ " Do obs³ugi kodów wieloznakowych potrzebna jest umiejêtno¶æ "
-#~ "programowania.\n"
+#~ msgstr " Do obs³ugi kodów wieloznakowych potrzebna jest umiejêtno¶æ programowania.\n"
#~ msgid " The recoding might not be reversible.\n"
#~ msgstr " Konwersja mo¿e byæ nieodwracalna.\n"
#~ msgstr " Konwersja powinna byæ odwracalna.\n"
#~ msgid " programming is needed to handle multichar input.\n"
-#~ msgstr ""
-#~ " do obs³ugi kodów wieloznakowych potrzebna jest umiejêtno¶æ "
-#~ "programowania.\n"
+#~ msgstr " do obs³ugi kodów wieloznakowych potrzebna jest umiejêtno¶æ programowania.\n"
#~ msgid " UNACHIEVABLE\n"
#~ msgstr " NIEOSI¡GALNE\n"
#~ msgid "Cannot auto check the ignored charset"
#~ msgstr "Nie mogê automatycznie sprawdziæ ignorowanego zestawu znaków"
+#~ msgid "Currently, -s is ignored when -g is selected"
+#~ msgstr "Opcja -s jest wy³±czana przez opcjê -g"
+
+#~ msgid "Hash stats: %d names using %d buckets out of %d\n"
+#~ msgstr "Wyniki przeszukiwania: %d u¿ywa %d spo¶ród %d zbiorów\n"
+
#~ msgid "Internal error - strategy undecided"
#~ msgstr "B³±d wewnêtrzy - niezdecydowana strategia"
#~ msgid " -o, --sequence=popen same as -i (on this system)\n"
#~ msgstr " -o, --sequence=popen identyczne jak -i (w tym systemie)\n"
-#~ msgid ""
-#~ " -o, --sequence=popen use popen machinery for sequencing passes\n"
-#~ msgstr ""
-#~ " -o, --sequence=popen u¿ycie techniki popen w przebiegach sekwencyjnych\n"
+#~ msgid " -o, --sequence=popen use popen machinery for sequencing passes\n"
+#~ msgstr " -o, --sequence=popen u¿ycie techniki popen w przebiegach sekwencyjnych\n"
#~ msgid ""
#~ " -q, --quiet, --silent inhibit messages about irreversible recodings\n"
#~ "FILE is specified, then act as a filter and recode stdin to stdout.\n"
#~ msgstr ""
#~ " -q, --quiet, --silent blokuj komunikaty o nieodwracalnych konwersjach\n"
-#~ " -s, --strict u¿ywaj ¶cis³ych odwzorowañ, nawet dla w±tpliwych "
-#~ "znaków\n"
-#~ " -t, --touch uaktualnij datê przekodowanego, podstawionego "
-#~ "pliku\n"
+#~ " -s, --strict u¿ywaj ¶cis³ych odwzorowañ, nawet dla w±tpliwych znaków\n"
+#~ " -t, --touch uaktualnij datê przekodowanego, podstawionego pliku\n"
#~ " -v, --verbose pokazuj kolejne kroki i postêp konwersji\n"
#~ " -x, --ignore=ZESTAW ignoruj ZESTAW znaków przy wyborze konwersji\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"
+#~ "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 ""
#~ "Obowi±zkowe lub opcjonalne argumenty d³ugich form opcji maj± tak± sam±\n"
#~ "z zestawów RFC1345, postaci: PRZED1:PO2,PRZED2:PO2,...\n"
#~ msgid ""
-#~ "Option -l with no FORMAT nor CHARSET list all charsets, also see the "
-#~ "Texinfo\n"
+#~ "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"
#~ msgstr ""
#~ "\n"
#~ " -c, --colons u¿ywaj dwukropków zamiast cudzys³owów\n"
-#~ " -d, --diacritics ogranicz konwersjê do zn. diakryt. itp. dla "
-#~ "LaTeXa\n"
+#~ " -d, --diacritics ogranicz konwersjê do zn. diakryt. itp. dla LaTeXa\n"
#~ " -f, --force wymuszaj konwersje, nawet je¶li s± nieodwracalne\n"
#~ " (UWAGA: w tej wersji -f zawsze obowi±zuje)\n"
#~ " -g, --graphics przybli¿aj ramki IBMPC za pomoc± znaków ASCII\n"
#~ " -h, --header[=NAZWA] wypisz zestaw NAZWA w postaci kodu C na stdout\n"
-#~ " -i, --sequence=pliki u¿ywaj plików po¶rednich do przebiegów "
-#~ "sekwencyjnych\n"
+#~ " -i, --sequence=pliki u¿ywaj plików po¶rednich do przebiegów sekwencyjnych\n"
-#~ msgid ""
-#~ "\n"
-#~ "Usage: %s [OPTION]... [BEFORE]:[AFTER] [FILE]...\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Sk³adnia: %s [OPCJA]... [PRZED]:[PO] [PLIK]...\n"
+#~ msgid "\nUsage: %s [OPTION]... [BEFORE]:[AFTER] [FILE]...\n"
+#~ msgstr "\nSk³adnia: %s [OPCJA]... [PRZED]:[PO] [PLIK]...\n"
+
+#~ msgid "many to many"
+#~ msgstr "wiele na wiele"
+
+#~ msgid "many to one"
+#~ msgstr "wiele na jeden"
+
+#~ msgid "one to many"
+#~ msgstr "jeden na wiele"
+
+#~ msgid "one to one"
+#~ msgstr "jeden na jeden"
#~ msgid "steps: %d"
#~ msgstr "kroków: %d"
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 1999-12-19 23:12-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Erroneous request `%s'"
msgstr ""
-#: src/main.c:878
+#: src/main.c:879
#, c-format
msgid "Recoding %s..."
msgstr ""
-#: src/main.c:888
+#: src/main.c:889
msgid " done\n"
msgstr ""
-#: src/main.c:924
+#: src/main.c:930
#, c-format
-msgid " failed: %s in %s..%s\n"
+msgid " failed: %s in step `%s..%s'\n"
msgstr ""
-#: src/main.c:931
+#: src/main.c:937
#, c-format
-msgid "%s failed: %s in %s..%s"
+msgid "%s failed: %s in step `%s..%s'"
msgstr ""
-#: src/main.c:954
+#: src/main.c:960
#, c-format
-msgid "%s in %s..%s"
+msgid "%s in step `%s..%s'"
msgstr ""
#: src/names.c:317
# Swedish messages for recode
# Copyright © 1996, 1998 Free Software Foundation, Inc.
# Jan Djärv <Jan.Djarv@mbox200.swipnet.se>, 1996, 1998.
-# $Revision: 1.12 $
+# $Revision: 1.14 $
#
msgid ""
msgstr ""
-"Project-Id-Version: recode 3.4l\n"
+"Project-Id-Version: recode 3.5\n"
"POT-Creation-Date: 1999-05-18 08:46-0400\n"
-"PO-Revision-Date: 1998-12-29 23:20 +01:00\n"
+"PO-Revision-Date: 1999-10-16 13:42 +02:00\n"
"Last-Translator: Jan Djärv <Jan.Djarv@mbox200.swipnet.se>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
#. Dump all characters.
#: src/debug.c:287
-msgid ""
-"UCS2 Mne Description\n"
-"\n"
-msgstr ""
+msgid "UCS2 Mne Description\n\n"
+msgstr "UCS2 Mne Beskrivning\n\n"
#: src/main.c:140
msgid "No error"
#: src/main.c:146
msgid "Ambiguous output"
-msgstr "Tvetydigt utdata"
+msgstr "Tvetydig utdata"
#: src/main.c:149
-#, fuzzy
msgid "Untranslatable input"
-msgstr "Oöversättbart indata"
+msgstr "Oöversättbar indata"
#: src/main.c:152
msgid "Invalid input"
-msgstr "Felaktigt indata"
+msgstr "Felaktig indata"
#: src/main.c:155
msgid "System detected problem"
"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"
+"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"
"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"
+"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:231
msgstr "Försök med \"%s %s\" för mer information\n"
#: src/main.c:235
-msgid ""
-"Free `recode' converts files between various character sets and surfaces.\n"
-msgstr ""
-"Fri \"recode\" konverterar filer mellan olika teckenuppsättningar och ytor\n"
+msgid "Free `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:239
#, c-format
-msgid ""
-"\n"
-"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr ""
-"\n"
-"Användning: %s [FLAGGA]... [ [TECKENUPPSÄTTNING] | BEGÄRAN [FIL]...]\n"
+msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr "\nAnvändning: %s [FLAGGA]... [ [TECKENUPPSÄTTNING] | BEGÄRAN [FIL]...]\n"
#: src/main.c:242
msgid ""
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"
+"obligatoriskt för motsvarade korta flagga. Motsvarande för valfria argument.\n"
#: src/main.c:248
msgid ""
"\n"
"Listings:\n"
" -l, --list[=FORMAT] list one or all known charsets\n"
-" -k, --known=PAIRS restrict charsets according to known PAIRS "
-"list\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"
"\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"
+" -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"
+" -C, --copyright visa copyrightinformation och kopieringsvillkor\n"
" --help visa denna hjälptext och avsluta\n"
" --version visa versionsinformation och avsluta\n"
"\n"
"Exekveringsalternativ:\n"
" -v, --verbose förklara delsteg och rapportera framsteg\n"
-" -q, --quiet, --silent undertryck meddelanden om irreversibla "
-"omkodningar\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"
+" -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"
" 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=CHARSET ignorera CHARSET när en omkodningsväg väljs\n"
+" -x, --ignore=TECKENUPPSÄTTNING\n"
+" ignorera TECKENUPPSÄTTNING när omkodningsväg väljs\n"
#: src/main.c:294
-#, fuzzy
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 CHARSET visar alla tillgängliga "
-"teckenuppsättningar\n"
-"och ytor. FORMAT är \"decimal\", \"octal\", \"hexadecimal\" eller \"full\"\n"
-"(eller en av \"dohf\"), och CHARSET får då standardvärdet, som är \"%s\"\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
#, c-format
-msgid ""
-"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
msgstr ""
+"Om miljövariabeln DEFAULT_CHARSET inte är satt blir standardvärdet för\n"
+"TECKENUPPSÄTTNING \"%s\"\n"
#: src/main.c:308
msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr ""
+msgstr "TECKENUPPSÄTTNING har inget standardvärde, sätt miljövariabeln DEFAULT_CHARSET.\n"
#: src/main.c:313
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"
+"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"
"som anges med decimala tal.\n"
#: src/main.c:318
-#, fuzzy
-msgid ""
-"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
-msgstr ""
-"LN är ett programspråk, det kan vara \"c\" eller \"perl\".\n"
-"\"c\" är standardvärde\n"
+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:321
-#, fuzzy
msgid ""
"\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
-"ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
-"BEFORE..AFTER,\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"
+"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 [CHARSET][/[YTA]].... BEGÄRAN ser ofta ut som START..SLUT,\n"
-"där START och SLUT är teckenuppsättningar. Ett utelämnat CHARSET innebär\n"
-"den normala teckenuppsättningen, en utelämnad [/YTA]... innebär den normala\n"
-"ytan för CHARSET. Ett / utan ytnamn innebär ingen yta alls. Se manualen\n"
-"för detaljer.\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:329
msgid ""
"till standard ut.\n"
#: src/main.c:335
-msgid ""
-"\n"
-"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
msgstr ""
"\n"
"Rapportera fel till <recode-bugs@iro.umontreal.ca>.\n"
msgstr "Okänt format \"%s\""
#: src/main.c:622
-#, fuzzy
-msgid ""
-"\n"
-"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr ""
-"\n"
-"Copyright © 1990, 92, 93, 94, 96, 1997 Free Software Foundation, Inc.\n"
+msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr "\nCopyright © 1990, 92, 93, 94, 96, 97, 1999 Free Software Foundation, Inc.\n"
#: src/main.c:626
msgid ""
"ÄNDAMÅL.\n"
#: src/main.c:630
-msgid ""
-"\n"
-"Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr ""
-"\n"
-"Skriven av François Pinard <pinard@iro.umontreal.ca>.\n"
+msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr "\nSkriven av François Pinard <pinard@iro.umontreal.ca>.\n"
#: src/main.c:775
#, c-format
#: src/names.c:819
#, 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"
+msgstr "Kan inte visa \"%s\", inga namn tillgängliga för denna teckenuppsättning"
#. code counter
#. expected value for code counter
#. insert a while line before printing
#. Print the long table according to explode data.
#: src/names.c:974 src/names.c:1020
-#, fuzzy, c-format
+#, c-format
msgid "Dec Oct Hex UCS2 Mne %s\n"
-msgstr "dec okt hex tkn UCS2 %s\n"
+msgstr "dec okt hex UCS2 mne %s\n"
#: src/names.c:1039
#, c-format
#: src/outer.c:95
#, c-format
msgid "Resurfacer set more than once for `%s'"
-msgstr ""
+msgstr "Ytkodning satt mer än en gång för \"%s\""
#: src/outer.c:102
#, c-format
msgid "Unsurfacer set more than once for `%s'"
-msgstr ""
+msgstr "Ytavkodning satt mer än en gång för \"%s\""
#: src/recode.c:115 src/recode.c:127
msgid "Virtual memory exhausted"
#: src/request.c:35
msgid "reversible"
-msgstr ""
+msgstr "reversibel"
#: src/request.c:37
-#, fuzzy, c-format
+#, c-format
msgid "%s to %s"
-msgstr "%s i %s..%s"
+msgstr "%s till %s"
#: src/request.c:38 src/request.c:40
msgid "byte"
-msgstr ""
+msgstr "byte"
#: src/request.c:39 src/request.c:41
msgid "ucs2"
-msgstr ""
+msgstr "usc2"
#: src/request.c:39 src/request.c:41
msgid "variable"
-msgstr ""
+msgstr "variabel"
#: src/request.c:112
msgid "*Unachievable*"
-msgstr ""
+msgstr "*Omöjligt*"
#: src/request.c:114
msgid "*mere copy*"
-msgstr ""
+msgstr "*endast kopiering*"
#: src/request.c:244
-#, fuzzy
msgid "Virtual memory exhausted!"
msgstr "Virtuellt minne slut"
#: src/request.c:263
msgid "Step initialisation failed"
-msgstr ""
+msgstr "Steginitiering misslyckades"
#: src/request.c:270
msgid "Step initialisation failed (unprocessed options)"
-msgstr ""
+msgstr "Steginitiering misslyckades (obearbetade flaggor)"
#: src/request.c:566
#, c-format
msgid "Request: %s\n"
-msgstr ""
+msgstr "Begäran: %s\n"
#: src/request.c:702
#, c-format
msgid "Shrunk to: %s\n"
-msgstr ""
+msgstr "Krympte till: %s\n"
#: src/request.c:806 src/request.c:912
#, c-format
msgid "Unrecognised surface name `%s'"
-msgstr ""
+msgstr "Okänt ytnamn: \"%s\""
#: src/request.c:884
#, c-format
msgid "No way to recode from `%s' to `%s'"
-msgstr ""
+msgstr "Omöjligt koda om från \"%s\" till \"%s\""
#: src/request.c:992
msgid "Expecting `..' in request"
-msgstr ""
+msgstr "Förväntar \"..\" i begäran"
#: src/task.c:751 src/task.c:915
#, c-format
msgid "Child process wait status is 0x%0.2x"
-msgstr ""
+msgstr "Barnprocess slutstatus är 0x%0.2x"
+++ /dev/null
-1998-04-29 Ulrich Drepper <drepper@cygnus.com>
-
- * intl/localealias.c (read_alias_file): Use unsigned char for
- local variables. Remove unused variable tp.
- * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char *
- for type of codeset. For loosing Solaris systems.
- * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset.
- * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable
- len if not needed.
- Patches by Jim Meyering.
-
-1998-04-28 Ulrich Drepper <drepper@cygnus.com>
-
- * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if
- mmap is not supported.
-
- * hash-string.h: Don't include <values.h>.
-
-1998-04-27 Ulrich Drepper <drepper@cygnus.com>
-
- * textdomain.c: Use strdup is available.
-
- * localealias.c: Define HAVE_MEMPCPY so that we can use this
- function. Define and use semapahores to protect modfication of
- global objects when compiling for glibc. Add code to allow
- freeing alias table.
-
- * l10nflist.c: Don't assume stpcpy not being a macro.
-
- * gettextP.h: Define internal_function macri if not already done.
- Use glibc byte-swap macros instead of defining SWAP when compiled
- for glibc.
- (struct loaded_domain): Add elements to allow unloading.
-
- * Makefile.in (distclean): Don't remove libintl.h here.
-
- * bindtextdomain.c: Carry over changes from glibc. Use strdup if
- available.
-
- * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal
- functions. Add memory freeing code for glibc.
-
- * dgettext.c: Update copyright.
-
- * explodename.c: Include stdlib.h and string.h only if they exist.
- Use strings.h eventually.
-
- * finddomain.c: Mark internal functions. Use strdup if available.
- Add memory freeing code for glibc.
-
-1997-10-10 20:00 Ulrich Drepper <drepper@cygnus.com>
-
- * libgettext.h: Fix dummy textdomain and bindtextdomain macros.
- They should return reasonable values.
- Reported by Tom Tromey <tromey@cygnus.com>.
-
-1997-09-16 03:33 Ulrich Drepper <drepper@cygnus.com>
-
- * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined.
- * intlh.inst.in: Likewise.
- Reported by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>.
-
- * libintl.glibc: Update from current glibc version.
-
-1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in: Reformat copyright.
-
-1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (DCGETTEXT): Remove wrong comment.
-
-1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install-data): Don't change directory to install.
-
-1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com>
-
- * cat-compat.c: Fix copyright.
-
- * localealias.c: Don't define strchr unless !HAVE_STRCHR.
-
- * loadmsgcat.c: Update copyright. Fix typos.
-
- * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
- (_nl_make_l10nflist): Handle sponsor and revision correctly.
-
- * gettext.c: Update copyright.
- * gettext.h: Likewise.
- * hash-string.h: Likewise.
-
- * finddomain.c: Remoave dead code. Define strchr only if
- !HAVE_STRCHR.
-
- * explodename.c: Include <sys/types.h>.
-
- * explodename.c: Reformat copyright text.
- (_nl_explode_name): Fix typo.
-
- * dcgettext.c: Define and use __set_errno.
- (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
- not defined.
-
- * bindtextdom.c: Pretty printing.
-
-1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (guess_category_value): Don't depend on
- HAVE_LC_MESSAGES. We don't need the macro here.
- Patch by Bruno Haible <haible@ilog.fr>.
-
- * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
- macro. Instead use HAVE_LOCALE_NULL and define it when using
- glibc, as in dcgettext.c.
- Patch by Bruno Haible <haible@ilog.fr>.
-
- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois
- Pinard.
-
-Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in: Implement handling of libtool.
-
- * gettextP.h: Change data structures for use of generic lowlevel
- i18n file handling.
-
-Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * textdomain.c: Put parentheses around arguments of memcpy macro
- definition.
- * localealias.c: Likewise.
- * l10nflist.c: Likewise.
- * finddomain.c: Likewise.
- * bindtextdom.c: Likewise.
- Reported by Thomas Esken.
-
-Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * textdomain.c: Move definition of `memcpy` macro to right
- position.
-
-Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
- bcopy if not already defined. Reported by Thomas Esken.
- * bindtextdom.c: Likewise.
- * l10nflist.c: Likewise.
- * localealias.c: Likewise.
- * textdomain.c: Likewise.
-
-Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (libdir): Change to use exec_prefix instead of
- prefix. Reported by Knut-HåvardAksnes <etokna@eto.ericsson.se>.
-
-Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
- so don't prepend uppercase `ISO' for only numeric arg.
-
-Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
- definition of _GNU_SOURCE. Patch by Roland McGrath.
-
- * Makefile.in (uninstall): Fix another bug with `for' loop and
- empty arguments. Patch by Jim Meyering. Correct name os
- uninstalled files: no intl- prefix anymore.
-
- * Makefile.in (install-data): Again work around shells which
- cannot handle mpty for list. Reported by Jim Meyering.
-
-Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Split goal. Now depend on install-exec
- and install-data.
- (install-exec, install-data): New goals. Created from former
- install goal.
- Reported by Karl Berry.
-
-Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (MKINSTALLDIRS): New variable. Path to
- mkinstalldirs script.
- (install): use MKINSTALLDIRS variable or if the script is not present
- try to find it in the $top_scrdir).
-
-Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Linux libc *partly* includes the argz_* functions.
- Grr. Work around by renaming the static version and use macros
- for renaming.
-
-Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Correct presence test macros of __argz_* functions.
-
- * l10nflist.c: Include <argz.h> based on test of it instead when
- __argz_* functions are available.
- Reported by Andreas Schwab.
-
-Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * explodename.c, l10nflist.c: Define NULL for dumb systems.
-
-Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
- result to __result to prevent name clash.
-
- * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
- get prototype for stpcpy and strcasecmp.
-
- * intlh.inst.in, libgettext.h: Move declaration of
- `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
- from gcc's -Wnested-extern option.
-
-Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Remove comment.
-
-Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Work around for another Buglix stupidity.
- Always use an `else' close for `if's. Reported by Nelson Beebe.
-
- * Makefile.in (intlh.inst): Correct typo in phony rule.
- Reported by Nelson Beebe.
-
-Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (read_alias_file): Rename variable alloca_list to
- block_list as the macro calls assume.
- Patch by Eric Backus.
-
- * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
- malloc.
- (read_alias_file): Rename varriabe alloca_list to block_list as the
- macro calls assume.
- Patch by Eric Backus.
-
- * l10nflist.c: Correct conditional for <argz.h> inclusion.
- Reported by Roland McGrath.
-
- * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not
- all-@USE_NLS@.
-
- * Makefile.in (install): intlh.inst comes from local dir, not
- $(srcdir).
-
- * Makefile.in (intlh.inst): Special handling of this goal. If
- used in gettext, this is really a rul to construct this file. If
- used in any other package it is defined as a .PHONY rule with
- empty body.
-
- * finddomain.c: Extract locale file information handling into
- l10nfile.c. Rename local stpcpy__ function to stpcpy.
-
- * dcgettext.c (stpcpy): Add local definition.
-
- * l10nflist.c: Solve some portability problems. Patches partly by
- Thomas Esken. Add local definition of stpcpy.
-
-Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in: Don't depend including <locale.h> on
- HAVE_LOCALE_H. Instead configure must rewrite this fiile
- depending on the result of the configure run.
-
- * Makefile.in (install): libintl.inst is now called intlh.inst.
- Add rules for updating intlh.inst from intlh.inst.in.
-
- * libintl.inst: Renamed to intlh.inst.in.
-
- * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
- because gcc has __buitlin_alloca.
- Reported by Roland McGrath.
-
-Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (installcheck): New goal to fulfill needs of
- automake's distcheck.
-
- * Makefile.in (install): Reorder commands so that VERSION is
- found.
-
- * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
- @datadir@/gettext.
- (COMSRCS): Add l10nfile.c.
- (OBJECTS): Add l10nfile.o.
- (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common).
- (DISTFILE.gettext): Remove $(DISTFILES.common).
- (all-gettext): Remove goal.
- (install): If $(PACKAGE) = gettext install, otherwose do nothing. No
- package but gettext itself should install libintl.h + headers.
- (dist): Extend goal to work for gettext, too.
- (dist-gettext): Remove goal.
-
- * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
-
-Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
- find_l10nfile.
-
-Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c (__argz_next): Add definition.
-
- * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
- code. Use new l10nfile handling.
-
- * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
- alloca code.
-
- * l10nflist.c: Initial revision.
-
-Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all-gettext): New goal. Same as all-yes.
-
-Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de>
-
- * Makefile.in (gettextsrcdir): Define using @datadir@.
-
-Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Include <ctype.h>. Reported by Roland McGrath.
-
-Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
- with external declaration.
-
-Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all-no): Rename from all_no.
-
-Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware>
-
- * gettextP.h [loaded_domain]: Array `successor' must now contain up
- to 63 elements (because of codeset name normalization).
-
- * finddomain.c: Implement codeset name normalization.
-
-Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all): Define to `all-@USE_NLS@'.
- (all-yes, all_no): New goals. `all-no' is noop, `all-yes'
- is former all.
-
-Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com>
-
- * localealias.c (alias_compare): Increment string pointers in loop
- of strcasecmp replacement.
-
-Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src): Who commented this goal out ? :-)
-
-Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls
- should not effect it because a missing catalog is no error.
- Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>.
-
-Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (Makefile): Explicitly use $(SHELL) for running
- shell scripts.
-
-Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * Makefile.in (install-src): Only install library and header when
- we use the own implementation. Don't do it when using the
- system's gettext or catgets functions.
-
- * dcgettext.c (find_msg): Must not swap domain->hash_size here.
-
-Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c, libintl.inst, libgettext.h, hash-string.h,
- gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
- Use PARAMS instead of __P. Suggested by Roland McGrath.
-
-Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu>
-
- * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
- !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
-
-Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src):
- Install libintl.inst instead of libintl.h.install.
-
-Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu>
-
- * cat-compat.c (textdomain):
- Reverse order in which files are tried you load. First
- try local file, when this failed absolute path.
-
-Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
-
- * cat-compat.c (bindtextdomain): Add missing { }.
-
-Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware>
-
- * libintl.inst: Add missing __P definition. Reported by Nelson Beebe.
-
- * Makefile.in:
- Add dummy `all' and `dvi' goals. Reported by Tom Tromey.
-
-Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca>
-
- * hash-string.h: Capitalize arguments of macros.
-
-Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Prevent files names longer than 13
- characters. libintl.h.glibc->libintl.glibc,
- libintl.h.install->libintl.inst. Reported by Joshua R. Poulson.
-
-Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com>
-
- * dcgettext.c: Fix bug in preprocessor conditionals.
-
-Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
-
- * libgettext.h: Solaris cc does not understand
- #if !SYMBOL1 && !SYMBOL2. Sad but true.
-
-Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h (hash_string):
- Fix for machine with >32 bit `unsigned long's.
-
- * dcgettext.c (DCGETTEXT):
- Fix horrible bug in loop for alternative translation.
-
-Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
- Some further simplifications in message number generation.
-
-Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware>
-
- * libintl.h.glibc: Use __const instead of const in prototypes.
-
- * Makefile.in (install-src):
- Install libintl.h.install instead of libintl.h. This
- is a stripped-down version. Suggested by Peter Miller.
-
- * libintl.h.install, libintl.h.glibc: Initial revision.
-
- * localealias.c (_nl_expand_alias, read_alias_file):
- Protect prototypes in type casts by __P.
-
-Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h: Correct prototype for hash_string.
-
-Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h (hash_string): Add prototype.
-
- * gettextP.h: Fix copyright.
- (SWAP): Add prototype.
-
-Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (read_alias_file): Forgot sizeof.
- Avoid calling *printf function. This introduces a big overhead.
- Patch by Roland McGrath.
-
-Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
-
- * finddomain.c (stpcpy):
- Define substitution function local. The macro was to flaky.
-
- * cat-compat.c: Fix typo.
-
- * xopen-msg.sed, linux-msg.sed:
- While bringing message number to right place only accept digits.
-
- * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
- leading 0s we don't need to remove them. Reported by Marcus
- Daniels.
-
- * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
- dependency. Reported by Marcus Daniels.
-
- * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
- Generally cleanup using #if instead of #ifndef.
-
- * Makefile.in: Correct typos in comment. By Franc,ois Pinard.
-
-Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src): Don't install libintl.h and libintl.a
- if we use an available gettext implementation.
-
-Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported
- by Franc,ois Pinard.
-
- * libgettext.h: Use #if instead of #ifdef/#ifndef.
-
- * finddomain.c:
- Comments describing what has to be done should start with FIXME.
-
-Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning.
- DISTFILES.common names the files common to both dist goals.
- DISTFILES.gettext are the files only distributed in GNU gettext.
-
-Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
- This was necessary since a change in _nl_find_msg several weeks
- ago. I really don't know this is still not fixed.
-
-Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This
- might mark a special condition.
-
- * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
-
- * Makefile.in (dist): Suppress error message when ln failed.
- Get files from $(srcdir) explicitly.
-
- * libgettext.h (gettext_const): Rename to gettext_noop.
-
-Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (make_entry_rec):
- Protect against wrong locale names by testing mask.
-
- * libgettext.h (gettext_const): Add macro definition.
- Capitalize macro arguments.
-
-Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Test for pointer != NULL before accessing value.
- Reported by Tom Tromey.
-
- * gettext.c (NULL):
- Define as (void*)0 instad of 0. Reported by Franc,ois Pinard.
-
-Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
-
-Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
-
- * localealias.c (alias_compare):
- Peter Miller reported that tolower in some systems is
- even dumber than I thought. Protect call by `isupper'.
-
-Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (libdir, includedir): New variables.
- (install-src): Install libintl.a and libintl.h in correct dirs.
-
-Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
-
- * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
-
- * localealias.c:
- Fix typo and superflous test. Reported by Christian von Roques.
-
-Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Correct some remainder from the pre-CEN syntax. Now
- we don't have a constant number of successors anymore.
-
-Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Add libintl.h.glibc.
-
- * Makefile.in (dist-libc): Add goal for packing sources for glibc.
- (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
-
- * loadmsgcat.c: Forget to continue #if line.
-
- * localealias.c:
- [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
- space clean.
-
- * dcgettext.c, finddomain.c: Better comment to last change.
-
- * loadmsgcat.c:
- [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
- __fstat, __open, __close, __read, __mmap, and __munmap resp
- to keep ANSI C name space clean.
-
- * finddomain.c:
- [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
-
- * dcgettext.c:
- [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
- keep ANSI C name space clean.
-
- * libgettext.h:
- Include sys/types.h for those old SysV systems out there.
- Reported by Francesco Potorti`.
-
- * loadmsgcat.c (use_mmap): Define if compiled for glibc.
-
- * bindtextdom.c: Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * finddomain.c: Fix 2 times defiend -> defined.
-
- * textdomain.c: Include libintl.h instead of libgettext.h when
- compiling for glibc. Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
-
- * gettext.c:
- Include libintl.h instead of libgettext.h when compiling for glibc.
- Get NULL from stddef.h if we compile for glibc.
-
- * finddomain.c: Include libintl.h instead of libgettext.h when
- compiling for glibc. Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * dcgettext.c: Include all those standard headers unconditionally
- if _LIBC is defined.
-
- * dgettext.c: If compiled in glibc include libintl.h instead of
- libgettext.h.
- (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
-
- * dcgettext.c: If compiled in glibc include libintl.h instead of
- libgettext.h.
- (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
-
- * bindtextdom.c:
- If compiled in glibc include libintl.h instead of libgettext.h.
-
-Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
- Reported by Marcus Daniels.
-
- * cat-compat.c (bindtextdomain):
- String used in putenv must not be recycled.
- Reported by Marcus Daniels.
-
- * libgettext.h (__USE_GNU_GETTEXT):
- Additional symbol to signal that we use GNU gettext
- library.
-
- * cat-compat.c (bindtextdomain):
- Fix bug with the strange stpcpy replacement.
- Reported by Nelson Beebe.
-
-Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware>
-
- * cat-compat.c: Include <string.h> for stpcpy prototype.
-
- * localealias.c (read_alias_file):
- While expand strdup code temporary variable `cp' hided
- higher level variable with same name. Rename to `tp'.
-
- * textdomain.c (textdomain):
- Avoid warning by using temporary variable in strdup code.
-
- * finddomain.c (_nl_find_domain): Remove unused variable `application'.
-
-Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (alias_compare):
- Use strcasecmp() only if available. Else use
- implementation in place.
-
- * intl-compat.c:
- Wrapper functions now call *__ functions instead of __*.
-
- * libgettext.h: Declare prototypes for *__ functions instead for __*.
-
- * cat-compat.c, loadmsgcat.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
-
- * bindtextdom.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
- Rename to bindtextdomain__ if not used in GNU C Library.
-
- * dgettext.c:
- Rename function to dgettext__ if not used in GNU C Library.
-
- * gettext.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
- Functions now called gettext__ if not used in GNU C Library.
-
- * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
-
-Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Correct some bugs in handling of CEN standard
- locale definitions.
-
-Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Implement CEN syntax.
-
- * gettextP.h (loaded_domain): Extend number of successors to 31.
-
-Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (aliaspath): Remove path to X11 locale dir.
-
- * Makefile.in: Make install-src depend on install. This helps
- gettext to install the sources and other packages can use the
- install goal.
-
-Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (uninstall): Remove stuff installed by install-src.
-
-Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware>
-
- * VERSION.in: Initial revision.
-
- * Makefile.in (DISTFILES):
- Add VERSION file. This is not necessary for gettext, but
- for other packages using this library.
-
-Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware>
-
- * gettextP.h (_nl_find_domain):
- New prototype after changing search strategy.
-
- * finddomain.c (_nl_find_domain):
- We now try only to find a specified catalog. Fall back to other
- catalogs listed in the locale list is now done in __dcgettext.
-
- * dcgettext.c (__dcgettext):
- Now we provide message fall back even to different languages.
- I.e. if a message is not available in one language all the other
- in the locale list a tried. Formerly fall back was only possible
- within one language. Implemented by moving one loop from
- _nl_find_domain to here.
-
-Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (gettextsrcdir):
- Directory where source of GNU gettext library are made
- available.
- (INSTALL, INSTALL_DATA): Programs used for installing sources.
- (gettext-src): New. Rule to install GNU gettext sources for use in
- gettextize shell script.
-
-Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c (_nl_load_domain):
- Use mmap for loading only when munmap function is
- also available.
-
- * Makefile.in (install): Depend on `all' goal.
-
-Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (read_alias_file):
- Do not overwrite '\n' when terminating alias value string.
-
- * localealias.c (read_alias_file):
- Handle long lines. Ignore the rest not fitting in
- the buffer after the initial `fgets' call.
-
-Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware>
-
- * gettextP.h (_nl_load_domain):
- Add prototype, replacing prototype for _nl_load_msg_cat.
-
- * finddomain.c (_nl_find_domain):
- Remove unneeded variable filename and filename_len.
- (expand_alias): Remove prototype because functions does not
- exist anymore.
-
- * localealias.c (read_alias_file):
- Change type of fname_len parameter to int.
- (xmalloc): Add prototype.
-
- * loadmsgcat.c: Better prototypes for xmalloc.
-
-Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Allow alias name to be constructed from the four components.
-
- * Makefile.in (aliaspath): New variable. Set to preliminary value.
- (SOURCES): Add localealias.c.
- (OBJECTS): Add localealias.o.
-
- * gettextP.h: Add prototype for _nl_expand_alias.
-
- * finddomain.c: Aliasing handled in intl/localealias.c.
-
- * localealias.c: Aliasing for locale names.
-
- * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
-
-Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
-
- * cat-compat.c (bindtextdomain):
- Correct implementation. dirname parameter was not used.
- Reported by Marcus Daniels.
-
- * gettextP.h (loaded_domain):
- New fields `successor' and `decided' for oo, lazy
- message handling implementation.
-
- * dcgettext.c:
- Adopt for oo, lazy message handliing.
- Now we can inherit translations from less specific locales.
- (find_msg): New function.
-
- * loadmsgcat.c, finddomain.c:
- Complete rewrite. Implement oo, lazy message handling :-).
- We now have an additional environment variable `LANGUAGE' with
- a higher priority than LC_ALL for the LC_MESSAGE locale.
- Here we can set a colon separated list of specifications each
- of the form `language[_territory[.codeset]][@modifier]'.
-
-Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (unistd.h):
- Include to get _PC_PATH_MAX defined on system having it.
-
-Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (stpcpy): Include prototype.
-
- * Makefile.in (dist): Remove `copying instead' message.
-
-Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (ID, TAGS): Do not use $^.
-
-Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (TAGS, ID): Use $^ as command argument.
- (TAGS): Give etags -o option t write to current directory,
- not $(srcdir).
- (ID): Use $(srcdir) instead os $(top_srcdir)/src.
- (distclean): Remove ID.
-
-Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (gnulocaledir):
- New variable, always using share/ for data directory.
- (DEFS): Add GNULOCALEDIR, used in finddomain.c.
-
- * finddomain.c (_nl_default_dirname):
- Set to GNULOCALEDIR, because it always has to point
- to the directory where GNU gettext Library writes it to.
-
- * intl-compat.c (textdomain, bindtextdomain):
- Undefine macros before function definition.
-
-Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h (_LIBINTL_H):
- Protect definition in case where this file is included as
- libgettext.h on Solaris machines. Add comment about this.
-
-Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware>
-
- * intl-compat.c (textdomain): Correct typo.
-
-Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (dcgettext): Function now called __dcgettext.
-
- * dgettext.c (dgettext): Now called __dgettext and calls
- __dcgettext.
-
- * gettext.c (gettext):
- Function now called __gettext and calls __dgettext.
-
- * textdomain.c (textdomain): Function now called __textdomain.
-
- * bindtextdom.c (bindtextdomain): Function now called
- __bindtextdomain.
-
- * intl-compat.c: Initial revision.
-
- * Makefile.in (SOURCES): Add intl-compat.c.
- (OBJECTS): We always compile the GNU gettext library functions.
- OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
- and intl-compat.o.
- (GETTOBJS): Contains now only intl-compat.o.
-
- * libgettext.h:
- Re-include protection matches dualistic character of libgettext.h.
- For all functions in GNU gettext library define __ counter part.
-
- * finddomain.c (strchr): Define as index if not found in C library.
- (_nl_find_domain): For relative paths paste / in between.
-
-Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
-
- * xopen-msg.sed: Fix bug with `msgstr ""' lines.
- A little bit better comments.
-
-Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in:
- po-mode.el, makelinks, combine-sh are now found in ../misc.
-
- * po-mode.el, makelinks, combine-sh, elisp-comp:
- Moved to ../misc/.
-
- * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
-
-Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (INSTALL, INSTALL_DATA): New variables.
- (install-data, uninstall): Install/uninstall .elc file.
-
- * po-mode.el (Installation comment):
- Add .pox as possible extension of .po files.
-
-Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware>
-
- * elisp-comp: Complete new version by Franc,ois: This does not
- fail when not compiling in the source directory.
-
-Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (../po/cat-id-tbl.o):
- Use $(MAKE) instead of make for recursive make.
-
- * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
- (install-exec): Add missing dummy goal.
- (install-data, uninstall): @ in multi-line shell command at
- beginning, not in front of echo. Reported by Eric Backus.
-
-Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES):
- Rename libgettext.perl to gettext.perl to fit in 14 chars
- file systems.
-
- * gettext.perl:
- Rename to gettext.perl to fit in 14 chars file systems.
-
-Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware>
-
- * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
-
-Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in: Pretty printing.
-
- * linux-msg.sed, xopen-msg.sed:
- Correct bugs with handling substitute flags in branches.
-
- * hash-string.h (hash_string):
- Old K&R compilers don't under stand `unsigned char'.
-
- * gettext.h (nls_uint32):
- Some old K&R compilers (eg HP) don't understand `unsigned int'.
-
- * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
-
-Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (ELCFILES): New variable.
- (DISTFILES): Add elisp-comp.
- Add implicit rule for .el -> .elc compilation.
- (install-data): install $ELCFILES
- (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
-
- * elisp-comp: Initial revision
-
-Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in:
- cat-id-tbl.c is now found in po/. This enables us to use an identical
- intl/ directory in all packages.
-
- * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
-
- * textdomain.c: fix typo (#if def -> #if defined)
-
-Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (stamp-cat-id): use top_srcdir to address source files
- (DISTFILES,distclean): move tupdate.perl to src/
-
- * po-to-tbl.sed.in:
- add additional jump to clear change flag to recognize multiline strings
-
-Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware>
-
- * textdomain.c: Protect inclusion of stdlib.h and string.h.
-
- * loadmsgcat.c: Protect inclusion of stdlib.h.
-
- * libgettext.h: Protect inclusion of locale.h.
- Allow use in C++ programs.
- Define NULL is not happened already.
-
- * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
- po-to-tbl.sed.
- (distclean): remove po-to-tbl.sed and tupdate.perl.
-
- * tupdate.perl.in: Substitute Perl path even in exec line.
- Don't include entries without translation from old .po file.
-
-Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware>
-
- * tupdate.perl.in: use "Updated: " in msgid "".
-
- * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
- Define getenv if !__STDC__.
-
- * bindtextdom.c: Protect stdlib.h and string.h inclusion.
- Define free if !__STDC__.
-
- * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
- Define free if !__STDC__.
-
- * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
-
-Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
- Remove unneeded $(srcdir) from Makefile.in dependency.
-
- * makelinks: Add copyright and short description.
-
- * po-mode.el: Last version for 0.7.
-
- * tupdate.perl.in: Fix die message.
-
- * dcgettext.c: Protect include of string.h.
-
- * gettext.c: Protect include of stdlib.h and further tries to get NULL.
-
- * finddomain.c: Some corrections in includes.
-
- * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
-
- * po-to-tbl.sed: Adopt for new .po file format.
-
- * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
-
-Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware>
-
- * tupdate.perl.in: Complete rewrite for new .po file format.
-
-Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware>
-
- * First official release. This directory contains all the code
- needed to internationalize own packages. It provides functions
- which allow to use the X/Open catgets function with an interface
- like the Uniforum gettext function. For system which does not
- have neither of those a complete implementation is provided.
+++ /dev/null
-# Makefile for directory with message catalog handling in GNU NLS Utilities.
-# Copyright (C) 1995, 1996, 1997 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.
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ..
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-transform = @program_transform_name@
-libdir = $(exec_prefix)/lib
-includedir = $(prefix)/include
-datadir = $(prefix)/@DATADIRNAME@
-localedir = $(datadir)/locale
-gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = @datadir@/gettext/intl
-aliaspath = $(localedir):.
-subdir = intl
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-
-l = @l@
-
-AR = ar
-CC = @CC@
-LIBTOOL = @LIBTOOL@
-RANLIB = @RANLIB@
-
-DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
--DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
-CPPFLAGS = @CPPFLAGS@
-CFLAGS = @CFLAGS@
-LDFLAGS = @LDFLAGS@
-
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-
-HEADERS = $(COMHDRS) libgettext.h loadinfo.h
-COMHDRS = gettext.h gettextP.h hash-string.h
-SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
-COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
-finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
-explodename.c
-OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
-finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
-explodename.$lo
-CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
-GETTOBJS = intl-compat.$lo
-DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
-xopen-msg.sed $(HEADERS) $(SOURCES)
-DISTFILES.normal = VERSION
-DISTFILES.gettext = libintl.glibc intlh.inst.in
-
-.SUFFIXES:
-.SUFFIXES: .c .o .lo
-.c.o:
- $(COMPILE) $<
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) $<
-
-INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
-
-all: all-@USE_INCLUDED_LIBINTL@
-
-all-yes: libintl.$la intlh.inst
-all-no:
-
-libintl.a: $(OBJECTS)
- rm -f $@
- $(AR) cru $@ $(OBJECTS)
- $(RANLIB) $@
-
-libintl.la: $(OBJECTS)
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
- -version-info 1:0 -rpath $(libdir)
-
-../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
- cd ../po && $(MAKE) cat-id-tbl.$lo
-
-check: all
-
-# This installation goal is only used in GNU gettext. Packages which
-# only use the library should use install instead.
-
-# We must not install the libintl.h/libintl.a files if we are on a
-# system which has the gettext() function in its C library or in a
-# separate library or use the catgets interface. A special case is
-# where configure found a previously installed GNU gettext library.
-# If you want to use the one which comes with this version of the
-# package, you have to use `configure --with-included-gettext'.
-install: install-exec install-data
-install-exec: all
- if test "$(PACKAGE)" = "gettext" \
- && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(libdir) $(includedir); \
- else \
- $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
- fi; \
- $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
- $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
- else \
- : ; \
- fi
-install-data: all
- if test "$(PACKAGE)" = "gettext"; then \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(gettextsrcdir); \
- else \
- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
- fi; \
- $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
- dists="$(DISTFILES.common)"; \
- for file in $$dists; do \
- $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall:
- dists="$(DISTFILES.common)"; \
- for file in $$dists; do \
- rm -f $(gettextsrcdir)/$$file; \
- done
-
-info dvi:
-
-$(OBJECTS): ../config.h libgettext.h
-bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
-dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
-
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES)
- here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
-
-id: ID
-
-ID: $(HEADERS) $(SOURCES)
- here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
-
-
-mostlyclean:
- rm -f *.a *.o *.lo core core.*
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile ID TAGS po2msg.sed po2tbl.sed
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-
-# GNU gettext needs not contain the file `VERSION' but contains some
-# other files which should not be distributed in other packages.
-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: Makefile $(DISTFILES)
- if test "$(PACKAGE)" = gettext; then \
- additional="$(DISTFILES.gettext)"; \
- else \
- additional="$(DISTFILES.normal)"; \
- fi; \
- for file in $(DISTFILES.common) $$additional; do \
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
- || cp -p $(srcdir)/$$file $(distdir); \
- done
-
-dist-libc:
- tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
-
-Makefile: Makefile.in ../config.status
- cd .. \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# The dependency for intlh.inst is different in gettext and all other
-# packages. Because we cannot you GNU make features we have to solve
-# the problem while rewriting Makefile.in.
-@GT_YES@intlh.inst: intlh.inst.in ../config.status
-@GT_YES@ cd .. \
-@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
-@GT_YES@ $(SHELL) ./config.status
-@GT_NO@.PHONY: intlh.inst
-@GT_NO@intlh.inst:
-
-# 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:
+++ /dev/null
-GNU gettext library from gettext-0.10.35
+++ /dev/null
-/* Implementation of the bindtextdomain(3) function
- Copyright (C) 1995, 1996, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-#include "gettext.h"
-#include "gettextP.h"
-
-/* @@ end of prolog @@ */
-
-/* Contains the default location of the message catalogs. */
-extern const char _nl_default_dirname[];
-
-/* List with bindings of specific domains. */
-extern struct binding *_nl_domain_bindings;
-
-
-/* Names for the libintl functions are a problem. They must not clash
- with existing names and they should follow ANSI C. But this source
- code is also used in GNU C Library where the names have a __
- prefix. So we have to make a difference here. */
-#ifdef _LIBC
-# define BINDTEXTDOMAIN __bindtextdomain
-# ifndef strdup
-# define strdup(str) __strdup (str)
-# endif
-#else
-# define BINDTEXTDOMAIN bindtextdomain__
-#endif
-
-/* Specify that the DOMAINNAME message catalog will be found
- in DIRNAME rather than in the system locale data base. */
-char *
-BINDTEXTDOMAIN (domainname, dirname)
- const char *domainname;
- const char *dirname;
-{
- struct binding *binding;
-
- /* Some sanity checks. */
- if (domainname == NULL || domainname[0] == '\0')
- return NULL;
-
- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
- {
- int compare = strcmp (domainname, binding->domainname);
- if (compare == 0)
- /* We found it! */
- break;
- if (compare < 0)
- {
- /* It is not in the list. */
- binding = NULL;
- break;
- }
- }
-
- if (dirname == NULL)
- /* The current binding has be to returned. */
- return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
-
- if (binding != NULL)
- {
- /* The domain is already bound. If the new value and the old
- one are equal we simply do nothing. Otherwise replace the
- old binding. */
- if (strcmp (dirname, binding->dirname) != 0)
- {
- char *new_dirname;
-
- if (strcmp (dirname, _nl_default_dirname) == 0)
- new_dirname = (char *) _nl_default_dirname;
- else
- {
-#if defined _LIBC || defined HAVE_STRDUP
- new_dirname = strdup (dirname);
- if (new_dirname == NULL)
- return NULL;
-#else
- size_t len = strlen (dirname) + 1;
- new_dirname = (char *) malloc (len);
- if (new_dirname == NULL)
- return NULL;
-
- memcpy (new_dirname, dirname, len);
-#endif
- }
-
- if (binding->dirname != _nl_default_dirname)
- free (binding->dirname);
-
- binding->dirname = new_dirname;
- }
- }
- else
- {
- /* We have to create a new binding. */
-#if !defined _LIBC && !defined HAVE_STRDUP
- size_t len;
-#endif
- struct binding *new_binding =
- (struct binding *) malloc (sizeof (*new_binding));
-
- if (new_binding == NULL)
- return NULL;
-
-#if defined _LIBC || defined HAVE_STRDUP
- new_binding->domainname = strdup (domainname);
- if (new_binding->domainname == NULL)
- return NULL;
-#else
- len = strlen (domainname) + 1;
- new_binding->domainname = (char *) malloc (len);
- if (new_binding->domainname == NULL)
- return NULL;
- memcpy (new_binding->domainname, domainname, len);
-#endif
-
- if (strcmp (dirname, _nl_default_dirname) == 0)
- new_binding->dirname = (char *) _nl_default_dirname;
- else
- {
-#if defined _LIBC || defined HAVE_STRDUP
- new_binding->dirname = strdup (dirname);
- if (new_binding->dirname == NULL)
- return NULL;
-#else
- len = strlen (dirname) + 1;
- new_binding->dirname = (char *) malloc (len);
- if (new_binding->dirname == NULL)
- return NULL;
- memcpy (new_binding->dirname, dirname, len);
-#endif
- }
-
- /* Now enqueue it. */
- if (_nl_domain_bindings == NULL
- || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
- {
- new_binding->next = _nl_domain_bindings;
- _nl_domain_bindings = new_binding;
- }
- else
- {
- binding = _nl_domain_bindings;
- while (binding->next != NULL
- && strcmp (domainname, binding->next->domainname) > 0)
- binding = binding->next;
-
- new_binding->next = binding->next;
- binding->next = new_binding;
- }
-
- binding = new_binding;
- }
-
- return binding->dirname;
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__bindtextdomain, bindtextdomain);
-#endif
+++ /dev/null
-/* Compatibility code for gettext-using-catgets interface.
- Copyright (C) 1995, 1997 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# endif
-#endif
-
-#ifdef HAVE_NL_TYPES_H
-# include <nl_types.h>
-#endif
-
-#include "libgettext.h"
-
-/* @@ end of prolog @@ */
-
-/* XPG3 defines the result of `setlocale (category, NULL)' as:
- ``Directs `setlocale()' to query `category' and return the current
- setting of `local'.''
- However it does not specify the exact format. And even worse: POSIX
- defines this not at all. So we can use this feature only on selected
- system (e.g. those using GNU C Library). */
-#ifdef _LIBC
-# define HAVE_LOCALE_NULL
-#endif
-
-/* The catalog descriptor. */
-static nl_catd catalog = (nl_catd) -1;
-
-/* Name of the default catalog. */
-static const char default_catalog_name[] = "messages";
-
-/* Name of currently used catalog. */
-static const char *catalog_name = default_catalog_name;
-
-/* Get ID for given string. If not found return -1. */
-static int msg_to_cat_id PARAMS ((const char *msg));
-
-/* Substitution for systems lacking this function in their C library. */
-#if !_LIBC && !HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
-#endif
-
-
-/* Set currently used domain/catalog. */
-char *
-textdomain (domainname)
- const char *domainname;
-{
- nl_catd new_catalog;
- char *new_name;
- size_t new_name_len;
- char *lang;
-
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
- && defined HAVE_LOCALE_NULL
- lang = setlocale (LC_MESSAGES, NULL);
-#else
- lang = getenv ("LC_ALL");
- if (lang == NULL || lang[0] == '\0')
- {
- lang = getenv ("LC_MESSAGES");
- if (lang == NULL || lang[0] == '\0')
- lang = getenv ("LANG");
- }
-#endif
- if (lang == NULL || lang[0] == '\0')
- lang = "C";
-
- /* See whether name of currently used domain is asked. */
- if (domainname == NULL)
- return (char *) catalog_name;
-
- if (domainname[0] == '\0')
- domainname = default_catalog_name;
-
- /* Compute length of added path element. */
- new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
- + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
- + sizeof (".cat");
-
- new_name = (char *) malloc (new_name_len);
- if (new_name == NULL)
- return NULL;
-
- strcpy (new_name, PACKAGE);
- new_catalog = catopen (new_name, 0);
-
- if (new_catalog == (nl_catd) -1)
- {
- /* NLSPATH search didn't work, try absolute path */
- sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
- PACKAGE);
- new_catalog = catopen (new_name, 0);
-
- if (new_catalog == (nl_catd) -1)
- {
- free (new_name);
- return (char *) catalog_name;
- }
- }
-
- /* Close old catalog. */
- if (catalog != (nl_catd) -1)
- catclose (catalog);
- if (catalog_name != default_catalog_name)
- free ((char *) catalog_name);
-
- catalog = new_catalog;
- catalog_name = new_name;
-
- return (char *) catalog_name;
-}
-
-char *
-bindtextdomain (domainname, dirname)
- const char *domainname;
- const char *dirname;
-{
-#if HAVE_SETENV || HAVE_PUTENV
- char *old_val, *new_val, *cp;
- size_t new_val_len;
-
- /* This does not make much sense here but to be compatible do it. */
- if (domainname == NULL)
- return NULL;
-
- /* Compute length of added path element. If we use setenv we don't need
- the first byts for NLSPATH=, but why complicate the code for this
- peanuts. */
- new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
- + sizeof ("/%L/LC_MESSAGES/%N.cat");
-
- old_val = getenv ("NLSPATH");
- if (old_val == NULL || old_val[0] == '\0')
- {
- old_val = NULL;
- new_val_len += 1 + sizeof (LOCALEDIR) - 1
- + sizeof ("/%L/LC_MESSAGES/%N.cat");
- }
- else
- new_val_len += strlen (old_val);
-
- new_val = (char *) malloc (new_val_len);
- if (new_val == NULL)
- return NULL;
-
-# if HAVE_SETENV
- cp = new_val;
-# else
- cp = stpcpy (new_val, "NLSPATH=");
-# endif
-
- cp = stpcpy (cp, dirname);
- cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
-
- if (old_val == NULL)
- {
-# if __STDC__
- stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
-# else
-
- cp = stpcpy (cp, LOCALEDIR);
- stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
-# endif
- }
- else
- stpcpy (cp, old_val);
-
-# if HAVE_SETENV
- setenv ("NLSPATH", new_val, 1);
- free (new_val);
-# else
- putenv (new_val);
- /* Do *not* free the environment entry we just entered. It is used
- from now on. */
-# endif
-
-#endif
-
- return (char *) domainname;
-}
-
-#undef gettext
-char *
-gettext (msg)
- const char *msg;
-{
- int msgid;
-
- if (msg == NULL || catalog == (nl_catd) -1)
- return (char *) msg;
-
- /* Get the message from the catalog. We always use set number 1.
- The message ID is computed by the function `msg_to_cat_id'
- which works on the table generated by `po-to-tbl'. */
- msgid = msg_to_cat_id (msg);
- if (msgid == -1)
- return (char *) msg;
-
- return catgets (catalog, 1, msgid, (char *) msg);
-}
-
-/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
- for the one equal to msg. If it is found return the ID. In case when
- the string is not found return -1. */
-static int
-msg_to_cat_id (msg)
- const char *msg;
-{
- int cnt;
-
- for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
- if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
- return _msg_tbl[cnt]._msg_number;
-
- return -1;
-}
-
-
-/* @@ begin of epilog @@ */
-
-/* We don't want libintl.a to depend on any other library. So we
- avoid the non-standard function stpcpy. In GNU C Library this
- function is available, though. Also allow the symbol HAVE_STPCPY
- to be defined. */
-#if !_LIBC && !HAVE_STPCPY
-static char *
-stpcpy (dest, src)
- char *dest;
- const char *src;
-{
- while ((*dest++ = *src++) != '\0')
- /* Do nothing. */ ;
- return dest - 1;
-}
-#endif
+++ /dev/null
-/* Implementation of the dcgettext(3) function.
- Copyright (C) 1995, 1996, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-# define HAVE_ALLOCA 1
-#else
-# if defined HAVE_ALLOCA_H || defined _LIBC
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca
-char *alloca ();
-# endif
-# endif
-# endif
-#endif
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-#ifndef __set_errno
-# define __set_errno(val) errno = (val)
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#if defined HAVE_UNISTD_H || defined _LIBC
-# include <unistd.h>
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-#include "hash-string.h"
-
-/* @@ end of prolog @@ */
-
-#ifdef _LIBC
-/* Rename the non ANSI C functions. This is required by the standard
- because some ANSI C functions will require linking with this object
- file and the name space must not be polluted. */
-# define getcwd __getcwd
-# ifndef stpcpy
-# define stpcpy __stpcpy
-# endif
-#else
-# if !defined HAVE_GETCWD
-char *getwd ();
-# define getcwd(buf, max) getwd (buf)
-# else
-char *getcwd ();
-# endif
-# ifndef HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
-# endif
-#endif
-
-/* Amount to increase buffer size by in each try. */
-#define PATH_INCR 32
-
-/* The following is from pathmax.h. */
-/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
- PATH_MAX but might cause redefinition warnings when sys/param.h is
- later included (as on MORE/BSD 4.3). */
-#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
-# include <limits.h>
-#endif
-
-#ifndef _POSIX_PATH_MAX
-# define _POSIX_PATH_MAX 255
-#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 <sys/param.h>
-#endif
-
-#if !defined(PATH_MAX) && defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-#endif
-
-#ifndef PATH_MAX
-# define PATH_MAX _POSIX_PATH_MAX
-#endif
-
-/* XPG3 defines the result of `setlocale (category, NULL)' as:
- ``Directs `setlocale()' to query `category' and return the current
- setting of `local'.''
- However it does not specify the exact format. And even worse: POSIX
- defines this not at all. So we can use this feature only on selected
- system (e.g. those using GNU C Library). */
-#ifdef _LIBC
-# define HAVE_LOCALE_NULL
-#endif
-
-/* Name of the default domain used for gettext(3) prior any call to
- textdomain(3). The default value for this is "messages". */
-const char _nl_default_default_domain[] = "messages";
-
-/* Value used as the default domain for gettext(3). */
-const char *_nl_current_default_domain = _nl_default_default_domain;
-
-/* Contains the default location of the message catalogs. */
-const char _nl_default_dirname[] = GNULOCALEDIR;
-
-/* List with bindings of specific domains created by bindtextdomain()
- calls. */
-struct binding *_nl_domain_bindings;
-
-/* Prototypes for local functions. */
-static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
- const char *msgid)) internal_function;
-static const char *category_to_name PARAMS ((int category)) internal_function;
-static const char *guess_category_value PARAMS ((int category,
- const char *categoryname))
- internal_function;
-
-
-/* For those loosing systems which don't have `alloca' we have to add
- some additional code emulating it. */
-#ifdef HAVE_ALLOCA
-/* Nothing has to be done. */
-# define ADD_BLOCK(list, address) /* nothing */
-# define FREE_BLOCKS(list) /* nothing */
-#else
-struct block_list
-{
- void *address;
- struct block_list *next;
-};
-# define ADD_BLOCK(list, addr) \
- do { \
- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
- /* If we cannot get a free block we cannot add the new element to \
- the list. */ \
- if (newp != NULL) { \
- newp->address = (addr); \
- newp->next = (list); \
- (list) = newp; \
- } \
- } while (0)
-# define FREE_BLOCKS(list) \
- do { \
- while (list != NULL) { \
- struct block_list *old = list; \
- list = list->next; \
- free (old); \
- } \
- } while (0)
-# undef alloca
-# define alloca(size) (malloc (size))
-#endif /* have alloca */
-
-
-/* Names for the libintl functions are a problem. They must not clash
- with existing names and they should follow ANSI C. But this source
- code is also used in GNU C Library where the names have a __
- prefix. So we have to make a difference here. */
-#ifdef _LIBC
-# define DCGETTEXT __dcgettext
-#else
-# define DCGETTEXT dcgettext__
-#endif
-
-/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
- locale. */
-char *
-DCGETTEXT (domainname, msgid, category)
- const char *domainname;
- const char *msgid;
- int category;
-{
-#ifndef HAVE_ALLOCA
- struct block_list *block_list = NULL;
-#endif
- struct loaded_l10nfile *domain;
- struct binding *binding;
- const char *categoryname;
- const char *categoryvalue;
- char *dirname, *xdomainname;
- char *single_locale;
- char *retval;
- int saved_errno = errno;
-
- /* If no real MSGID is given return NULL. */
- if (msgid == NULL)
- return NULL;
-
- /* If DOMAINNAME is NULL, we are interested in the default domain. If
- CATEGORY is not LC_MESSAGES this might not make much sense but the
- defintion left this undefined. */
- if (domainname == NULL)
- domainname = _nl_current_default_domain;
-
- /* First find matching binding. */
- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
- {
- int compare = strcmp (domainname, binding->domainname);
- if (compare == 0)
- /* We found it! */
- break;
- if (compare < 0)
- {
- /* It is not in the list. */
- binding = NULL;
- break;
- }
- }
-
- if (binding == NULL)
- dirname = (char *) _nl_default_dirname;
- else if (binding->dirname[0] == '/')
- dirname = binding->dirname;
- else
- {
- /* We have a relative path. Make it absolute now. */
- size_t dirname_len = strlen (binding->dirname) + 1;
- size_t path_max;
- char *ret;
-
- path_max = (unsigned) PATH_MAX;
- path_max += 2; /* The getcwd docs say to do this. */
-
- dirname = (char *) alloca (path_max + dirname_len);
- ADD_BLOCK (block_list, dirname);
-
- __set_errno (0);
- while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
- {
- path_max += PATH_INCR;
- dirname = (char *) alloca (path_max + dirname_len);
- ADD_BLOCK (block_list, dirname);
- __set_errno (0);
- }
-
- if (ret == NULL)
- {
- /* We cannot get the current working directory. Don't signal an
- error but simply return the default string. */
- FREE_BLOCKS (block_list);
- __set_errno (saved_errno);
- return (char *) msgid;
- }
-
- stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
- }
-
- /* Now determine the symbolic name of CATEGORY and its value. */
- categoryname = category_to_name (category);
- categoryvalue = guess_category_value (category, categoryname);
-
- xdomainname = (char *) alloca (strlen (categoryname)
- + strlen (domainname) + 5);
- ADD_BLOCK (block_list, xdomainname);
-
- stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
- domainname),
- ".mo");
-
- /* Creating working area. */
- single_locale = (char *) alloca (strlen (categoryvalue) + 1);
- ADD_BLOCK (block_list, single_locale);
-
-
- /* Search for the given string. This is a loop because we perhaps
- got an ordered list of languages to consider for th translation. */
- while (1)
- {
- /* Make CATEGORYVALUE point to the next element of the list. */
- while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
- ++categoryvalue;
- if (categoryvalue[0] == '\0')
- {
- /* The whole contents of CATEGORYVALUE has been searched but
- no valid entry has been found. We solve this situation
- by implicitly appending a "C" entry, i.e. no translation
- will take place. */
- single_locale[0] = 'C';
- single_locale[1] = '\0';
- }
- else
- {
- char *cp = single_locale;
- while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
- *cp++ = *categoryvalue++;
- *cp = '\0';
- }
-
- /* If the current locale value is C (or POSIX) we don't load a
- domain. Return the MSGID. */
- if (strcmp (single_locale, "C") == 0
- || strcmp (single_locale, "POSIX") == 0)
- {
- FREE_BLOCKS (block_list);
- __set_errno (saved_errno);
- return (char *) msgid;
- }
-
-
- /* Find structure describing the message catalog matching the
- DOMAINNAME and CATEGORY. */
- domain = _nl_find_domain (dirname, single_locale, xdomainname);
-
- if (domain != NULL)
- {
- retval = find_msg (domain, msgid);
-
- if (retval == NULL)
- {
- int cnt;
-
- for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
- {
- retval = find_msg (domain->successor[cnt], msgid);
-
- if (retval != NULL)
- break;
- }
- }
-
- if (retval != NULL)
- {
- FREE_BLOCKS (block_list);
- __set_errno (saved_errno);
- return retval;
- }
- }
- }
- /* NOTREACHED */
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__dcgettext, dcgettext);
-#endif
-
-
-static char *
-internal_function
-find_msg (domain_file, msgid)
- struct loaded_l10nfile *domain_file;
- const char *msgid;
-{
- size_t top, act, bottom;
- struct loaded_domain *domain;
-
- if (domain_file->decided == 0)
- _nl_load_domain (domain_file);
-
- if (domain_file->data == NULL)
- return NULL;
-
- domain = (struct loaded_domain *) domain_file->data;
-
- /* Locate the MSGID and its translation. */
- if (domain->hash_size > 2 && domain->hash_tab != NULL)
- {
- /* Use the hashing table. */
- nls_uint32 len = strlen (msgid);
- nls_uint32 hash_val = hash_string (msgid);
- nls_uint32 idx = hash_val % domain->hash_size;
- nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
- nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
-
- if (nstr == 0)
- /* Hash table entry is empty. */
- return NULL;
-
- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
- && strcmp (msgid,
- domain->data + W (domain->must_swap,
- domain->orig_tab[nstr - 1].offset)) == 0)
- return (char *) domain->data + W (domain->must_swap,
- domain->trans_tab[nstr - 1].offset);
-
- while (1)
- {
- if (idx >= domain->hash_size - incr)
- idx -= domain->hash_size - incr;
- else
- idx += incr;
-
- nstr = W (domain->must_swap, domain->hash_tab[idx]);
- if (nstr == 0)
- /* Hash table entry is empty. */
- return NULL;
-
- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
- && strcmp (msgid,
- domain->data + W (domain->must_swap,
- domain->orig_tab[nstr - 1].offset))
- == 0)
- return (char *) domain->data
- + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
- }
- /* NOTREACHED */
- }
-
- /* Now we try the default method: binary search in the sorted
- array of messages. */
- bottom = 0;
- top = domain->nstrings;
- while (bottom < top)
- {
- int cmp_val;
-
- act = (bottom + top) / 2;
- cmp_val = strcmp (msgid, domain->data
- + W (domain->must_swap,
- domain->orig_tab[act].offset));
- if (cmp_val < 0)
- top = act;
- else if (cmp_val > 0)
- bottom = act + 1;
- else
- break;
- }
-
- /* If an translation is found return this. */
- return bottom >= top ? NULL : (char *) domain->data
- + W (domain->must_swap,
- domain->trans_tab[act].offset);
-}
-
-
-/* Return string representation of locale CATEGORY. */
-static const char *
-internal_function
-category_to_name (category)
- int category;
-{
- const char *retval;
-
- switch (category)
- {
-#ifdef LC_COLLATE
- case LC_COLLATE:
- retval = "LC_COLLATE";
- break;
-#endif
-#ifdef LC_CTYPE
- case LC_CTYPE:
- retval = "LC_CTYPE";
- break;
-#endif
-#ifdef LC_MONETARY
- case LC_MONETARY:
- retval = "LC_MONETARY";
- break;
-#endif
-#ifdef LC_NUMERIC
- case LC_NUMERIC:
- retval = "LC_NUMERIC";
- break;
-#endif
-#ifdef LC_TIME
- case LC_TIME:
- retval = "LC_TIME";
- break;
-#endif
-#ifdef LC_MESSAGES
- case LC_MESSAGES:
- retval = "LC_MESSAGES";
- break;
-#endif
-#ifdef LC_RESPONSE
- case LC_RESPONSE:
- retval = "LC_RESPONSE";
- break;
-#endif
-#ifdef LC_ALL
- case LC_ALL:
- /* This might not make sense but is perhaps better than any other
- value. */
- retval = "LC_ALL";
- break;
-#endif
- default:
- /* If you have a better idea for a default value let me know. */
- retval = "LC_XXX";
- }
-
- return retval;
-}
-
-/* Guess value of current locale from value of the environment variables. */
-static const char *
-internal_function
-guess_category_value (category, categoryname)
- int category;
- const char *categoryname;
-{
- const char *retval;
-
- /* The highest priority value is the `LANGUAGE' environment
- variable. This is a GNU extension. */
- retval = getenv ("LANGUAGE");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* `LANGUAGE' is not set. So we have to proceed with the POSIX
- methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some
- systems this can be done by the `setlocale' function itself. */
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
- return setlocale (category, NULL);
-#else
- /* Setting of LC_ALL overwrites all other. */
- retval = getenv ("LC_ALL");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* Next comes the name of the desired category. */
- retval = getenv (categoryname);
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* Last possibility is the LANG environment variable. */
- retval = getenv ("LANG");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* We use C as the default domain. POSIX says this is implementation
- defined. */
- return "C";
-#endif
-}
-
-/* @@ begin of epilog @@ */
-
-/* We don't want libintl.a to depend on any other library. So we
- avoid the non-standard function stpcpy. In GNU C Library this
- function is available, though. Also allow the symbol HAVE_STPCPY
- to be defined. */
-#if !_LIBC && !HAVE_STPCPY
-static char *
-stpcpy (dest, src)
- char *dest;
- const char *src;
-{
- while ((*dest++ = *src++) != '\0')
- /* Do nothing. */ ;
- return dest - 1;
-}
-#endif
-
-
-#ifdef _LIBC
-/* If we want to free all resources we have to do some work at
- program's end. */
-static void __attribute__ ((unused))
-free_mem (void)
-{
- struct binding *runp;
-
- for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next)
- {
- free (runp->domainname);
- if (runp->dirname != _nl_default_dirname)
- /* Yes, this is a pointer comparison. */
- free (runp->dirname);
- }
-
- if (_nl_current_default_domain != _nl_default_default_domain)
- /* Yes, again a pointer comparison. */
- free ((char *) _nl_current_default_domain);
-}
-
-text_set_element (__libc_subfreeres, free_mem);
-#endif
+++ /dev/null
-/* Implementation of the dgettext(3) function
- Copyright (C) 1995, 1996, 1997 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if defined HAVE_LOCALE_H || defined _LIBC
-# include <locale.h>
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-
-/* @@ end of prolog @@ */
-
-/* Names for the libintl functions are a problem. They must not clash
- with existing names and they should follow ANSI C. But this source
- code is also used in GNU C Library where the names have a __
- prefix. So we have to make a difference here. */
-#ifdef _LIBC
-# define DGETTEXT __dgettext
-# define DCGETTEXT __dcgettext
-#else
-# define DGETTEXT dgettext__
-# define DCGETTEXT dcgettext__
-#endif
-
-/* Look up MSGID in the DOMAINNAME message catalog of the current
- LC_MESSAGES locale. */
-char *
-DGETTEXT (domainname, msgid)
- const char *domainname;
- const char *msgid;
-{
- return DCGETTEXT (domainname, msgid, LC_MESSAGES);
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__dgettext, dgettext);
-#endif
+++ /dev/null
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-#include <sys/types.h>
-
-#include "loadinfo.h"
-
-/* On some strange systems still no definition of NULL is found. Sigh! */
-#ifndef NULL
-# if defined __STDC__ && __STDC__
-# define NULL ((void *) 0)
-# else
-# define NULL 0
-# endif
-#endif
-
-/* @@ end of prolog @@ */
-
-int
-_nl_explode_name (name, language, modifier, territory, codeset,
- normalized_codeset, special, sponsor, revision)
- char *name;
- const char **language;
- const char **modifier;
- const char **territory;
- const char **codeset;
- const char **normalized_codeset;
- const char **special;
- const char **sponsor;
- const char **revision;
-{
- enum { undecided, xpg, cen } syntax;
- char *cp;
- int mask;
-
- *modifier = NULL;
- *territory = NULL;
- *codeset = NULL;
- *normalized_codeset = NULL;
- *special = NULL;
- *sponsor = NULL;
- *revision = NULL;
-
- /* Now we determine the single parts of the locale name. First
- look for the language. Termination symbols are `_' and `@' if
- we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
- mask = 0;
- syntax = undecided;
- *language = cp = name;
- while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@'
- && cp[0] != '+' && cp[0] != ',')
- ++cp;
-
- if (*language == cp)
- /* This does not make sense: language has to be specified. Use
- this entry as it is without exploding. Perhaps it is an alias. */
- cp = strchr (*language, '\0');
- else if (cp[0] == '_')
- {
- /* Next is the territory. */
- cp[0] = '\0';
- *territory = ++cp;
-
- while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'
- && cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
- ++cp;
-
- mask |= TERRITORY;
-
- if (cp[0] == '.')
- {
- /* Next is the codeset. */
- syntax = xpg;
- cp[0] = '\0';
- *codeset = ++cp;
-
- while (cp[0] != '\0' && cp[0] != '@')
- ++cp;
-
- mask |= XPG_CODESET;
-
- if (*codeset != cp && (*codeset)[0] != '\0')
- {
- *normalized_codeset = _nl_normalize_codeset (*codeset,
- cp - *codeset);
- if (strcmp (*codeset, *normalized_codeset) == 0)
- free ((char *) *normalized_codeset);
- else
- mask |= XPG_NORM_CODESET;
- }
- }
- }
-
- if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))
- {
- /* Next is the modifier. */
- syntax = cp[0] == '@' ? xpg : cen;
- cp[0] = '\0';
- *modifier = ++cp;
-
- while (syntax == cen && cp[0] != '\0' && cp[0] != '+'
- && cp[0] != ',' && cp[0] != '_')
- ++cp;
-
- mask |= XPG_MODIFIER | CEN_AUDIENCE;
- }
-
- if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
- {
- syntax = cen;
-
- if (cp[0] == '+')
- {
- /* Next is special application (CEN syntax). */
- cp[0] = '\0';
- *special = ++cp;
-
- while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
- ++cp;
-
- mask |= CEN_SPECIAL;
- }
-
- if (cp[0] == ',')
- {
- /* Next is sponsor (CEN syntax). */
- cp[0] = '\0';
- *sponsor = ++cp;
-
- while (cp[0] != '\0' && cp[0] != '_')
- ++cp;
-
- mask |= CEN_SPONSOR;
- }
-
- if (cp[0] == '_')
- {
- /* Next is revision (CEN syntax). */
- cp[0] = '\0';
- *revision = ++cp;
-
- mask |= CEN_REVISION;
- }
- }
-
- /* For CEN syntax values it might be important to have the
- separator character in the file name, not for XPG syntax. */
- if (syntax == xpg)
- {
- if (*territory != NULL && (*territory)[0] == '\0')
- mask &= ~TERRITORY;
-
- if (*codeset != NULL && (*codeset)[0] == '\0')
- mask &= ~XPG_CODESET;
-
- if (*modifier != NULL && (*modifier)[0] == '\0')
- mask &= ~XPG_MODIFIER;
- }
-
- return mask;
-}
+++ /dev/null
-/* Handle list of needed message catalogs
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <sys/types.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#if defined HAVE_UNISTD_H || defined _LIBC
-# include <unistd.h>
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-
-/* @@ end of prolog @@ */
-/* List of already loaded domains. */
-static struct loaded_l10nfile *_nl_loaded_domains;
-
-
-/* Return a data structure describing the message catalog described by
- the DOMAINNAME and CATEGORY parameters with respect to the currently
- established bindings. */
-struct loaded_l10nfile *
-internal_function
-_nl_find_domain (dirname, locale, domainname)
- const char *dirname;
- char *locale;
- const char *domainname;
-{
- struct loaded_l10nfile *retval;
- const char *language;
- const char *modifier;
- const char *territory;
- const char *codeset;
- const char *normalized_codeset;
- const char *special;
- const char *sponsor;
- const char *revision;
- const char *alias_value;
- int mask;
-
- /* LOCALE can consist of up to four recognized parts for the XPG syntax:
-
- language[_territory[.codeset]][@modifier]
-
- and six parts for the CEN syntax:
-
- language[_territory][+audience][+special][,[sponsor][_revision]]
-
- Beside the first part all of them are allowed to be missing. If
- the full specified locale is not found, the less specific one are
- looked for. The various parts will be stripped off according to
- the following order:
- (1) revision
- (2) sponsor
- (3) special
- (4) codeset
- (5) normalized codeset
- (6) territory
- (7) audience/modifier
- */
-
- /* If we have already tested for this locale entry there has to
- be one data set in the list of loaded domains. */
- retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
- strlen (dirname) + 1, 0, locale, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, domainname, 0);
- if (retval != NULL)
- {
- /* We know something about this locale. */
- int cnt;
-
- if (retval->decided == 0)
- _nl_load_domain (retval);
-
- if (retval->data != NULL)
- return retval;
-
- for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
- {
- if (retval->successor[cnt]->decided == 0)
- _nl_load_domain (retval->successor[cnt]);
-
- if (retval->successor[cnt]->data != NULL)
- break;
- }
- return cnt >= 0 ? retval : NULL;
- /* NOTREACHED */
- }
-
- /* See whether the locale value is an alias. If yes its value
- *overwrites* the alias name. No test for the original value is
- done. */
- alias_value = _nl_expand_alias (locale);
- if (alias_value != NULL)
- {
-#if defined _LIBC || defined HAVE_STRDUP
- locale = strdup (alias_value);
- if (locale == NULL)
- return NULL;
-#else
- size_t len = strlen (alias_value) + 1;
- locale = (char *) malloc (len);
- if (locale == NULL)
- return NULL;
-
- memcpy (locale, alias_value, len);
-#endif
- }
-
- /* Now we determine the single parts of the locale name. First
- look for the language. Termination symbols are `_' and `@' if
- we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
- mask = _nl_explode_name (locale, &language, &modifier, &territory,
- &codeset, &normalized_codeset, &special,
- &sponsor, &revision);
-
- /* Create all possible locale entries which might be interested in
- generalization. */
- retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
- strlen (dirname) + 1, mask, language, territory,
- codeset, normalized_codeset, modifier, special,
- sponsor, revision, domainname, 1);
- if (retval == NULL)
- /* This means we are out of core. */
- return NULL;
-
- if (retval->decided == 0)
- _nl_load_domain (retval);
- if (retval->data == NULL)
- {
- int cnt;
- for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
- {
- if (retval->successor[cnt]->decided == 0)
- _nl_load_domain (retval->successor[cnt]);
- if (retval->successor[cnt]->data != NULL)
- break;
- }
- }
-
- /* The room for an alias was dynamically allocated. Free it now. */
- if (alias_value != NULL)
- free (locale);
-
- return retval;
-}
-
-
-#ifdef _LIBC
-static void __attribute__ ((unused))
-free_mem (void)
-{
- struct loaded_l10nfile *runp = _nl_loaded_domains;
-
- while (runp != NULL)
- {
- struct loaded_l10nfile *here = runp;
- if (runp->data != NULL)
- _nl_unload_domain ((struct loaded_domain *) runp->data);
- runp = runp->next;
- free (here);
- }
-}
-
-text_set_element (__libc_subfreeres, free_mem);
-#endif
+++ /dev/null
-/* Implementation of gettext(3) function.
- Copyright (C) 1995, 1997 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#ifdef _LIBC
-# define __need_NULL
-# include <stddef.h>
-#else
-# ifdef STDC_HEADERS
-# include <stdlib.h> /* Just for NULL. */
-# else
-# ifdef HAVE_STRING_H
-# include <string.h>
-# else
-# define NULL ((void *) 0)
-# endif
-# endif
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-
-/* @@ end of prolog @@ */
-
-/* Names for the libintl functions are a problem. They must not clash
- with existing names and they should follow ANSI C. But this source
- code is also used in GNU C Library where the names have a __
- prefix. So we have to make a difference here. */
-#ifdef _LIBC
-# define GETTEXT __gettext
-# define DGETTEXT __dgettext
-#else
-# define GETTEXT gettext__
-# define DGETTEXT dgettext__
-#endif
-
-/* Look up MSGID in the current default message catalog for the current
- LC_MESSAGES locale. If not found, returns MSGID itself (the default
- text). */
-char *
-GETTEXT (msgid)
- const char *msgid;
-{
- return DGETTEXT (NULL, msgid);
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__gettext, gettext);
-#endif
+++ /dev/null
-/* Internal header for GNU gettext internationalization functions.
- Copyright (C) 1995, 1997 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 Library General Public
- License along with the GNU C 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 _GETTEXT_H
-#define _GETTEXT_H 1
-
-#include <stdio.h>
-
-#if HAVE_LIMITS_H || _LIBC
-# include <limits.h>
-#endif
-
-/* @@ end of prolog @@ */
-
-/* The magic number of the GNU message catalog format. */
-#define _MAGIC 0x950412de
-#define _MAGIC_SWAPPED 0xde120495
-
-/* Revision number of the currently used .mo (binary) file format. */
-#define MO_REVISION_NUMBER 0
-
-/* The following contortions are an attempt to use the C preprocessor
- to determine an unsigned integral type that is 32 bits wide. An
- alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
- doing that would require that the configure script compile and *run*
- the resulting executable. Locally running cross-compiled executables
- is usually not possible. */
-
-#if __STDC__
-# define UINT_MAX_32_BITS 4294967295U
-#else
-# define UINT_MAX_32_BITS 0xFFFFFFFF
-#endif
-
-/* If UINT_MAX isn't defined, assume it's a 32-bit type.
- This should be valid for all systems GNU cares about because
- that doesn't include 16-bit systems, and only modern systems
- (that certainly have <limits.h>) have 64+-bit integral types. */
-
-#ifndef UINT_MAX
-# define UINT_MAX UINT_MAX_32_BITS
-#endif
-
-#if UINT_MAX == UINT_MAX_32_BITS
-typedef unsigned nls_uint32;
-#else
-# if USHRT_MAX == UINT_MAX_32_BITS
-typedef unsigned short nls_uint32;
-# else
-# if ULONG_MAX == UINT_MAX_32_BITS
-typedef unsigned long nls_uint32;
-# else
- /* The following line is intended to throw an error. Using #error is
- not portable enough. */
- "Cannot determine unsigned 32-bit data type."
-# endif
-# endif
-#endif
-
-
-/* Header for binary .mo file format. */
-struct mo_file_header
-{
- /* The magic number. */
- nls_uint32 magic;
- /* The revision number of the file format. */
- nls_uint32 revision;
- /* The number of strings pairs. */
- nls_uint32 nstrings;
- /* Offset of table with start offsets of original strings. */
- nls_uint32 orig_tab_offset;
- /* Offset of table with start offsets of translation strings. */
- nls_uint32 trans_tab_offset;
- /* Size of hashing table. */
- nls_uint32 hash_tab_size;
- /* Offset of first hashing entry. */
- nls_uint32 hash_tab_offset;
-};
-
-struct string_desc
-{
- /* Length of addressed string. */
- nls_uint32 length;
- /* Offset of string in file. */
- nls_uint32 offset;
-};
-
-/* @@ begin of epilog @@ */
-
-#endif /* gettext.h */
+++ /dev/null
-/* Header describing internals of gettext library
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _GETTEXTP_H
-#define _GETTEXTP_H
-
-#include "loadinfo.h"
-
-/* @@ end of prolog @@ */
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif
-#endif
-
-#ifndef internal_function
-# define internal_function
-#endif
-
-#ifndef W
-# define W(flag, data) ((flag) ? SWAP (data) : (data))
-#endif
-
-
-#ifdef _LIBC
-# include <byteswap.h>
-# define SWAP(i) bswap_32 (i)
-#else
-static nls_uint32 SWAP PARAMS ((nls_uint32 i));
-
-static inline nls_uint32
-SWAP (i)
- nls_uint32 i;
-{
- return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
-}
-#endif
-
-
-struct loaded_domain
-{
- const char *data;
- int use_mmap;
- size_t mmap_size;
- int must_swap;
- nls_uint32 nstrings;
- struct string_desc *orig_tab;
- struct string_desc *trans_tab;
- nls_uint32 hash_size;
- nls_uint32 *hash_tab;
-};
-
-struct binding
-{
- struct binding *next;
- char *domainname;
- char *dirname;
-};
-
-struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
- char *__locale,
- const char *__domainname))
- internal_function;
-void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
- internal_function;
-void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
- internal_function;
-
-/* @@ begin of epilog @@ */
-
-#endif /* gettextP.h */
+++ /dev/null
-/* Implements a string hashing function.
- Copyright (C) 1995, 1997 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 Library General Public
- License along with the GNU C 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. */
-
-/* @@ end of prolog @@ */
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(Args) Args
-# else
-# define PARAMS(Args) ()
-# endif
-#endif
-
-/* We assume to have `unsigned long int' value with at least 32 bits. */
-#define HASHWORDBITS 32
-
-
-/* Defines the so called `hashpjw' function by P.J. Weinberger
- [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
- 1986, 1987 Bell Telephone Laboratories, Inc.] */
-static unsigned long hash_string PARAMS ((const char *__str_param));
-
-static inline unsigned long
-hash_string (str_param)
- const char *str_param;
-{
- unsigned long int hval, g;
- const char *str = str_param;
-
- /* Compute the hash value for the given string. */
- hval = 0;
- while (*str != '\0')
- {
- hval <<= 4;
- hval += (unsigned long) *str++;
- g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4));
- if (g != 0)
- {
- hval ^= g >> (HASHWORDBITS - 8);
- hval ^= g;
- }
- }
- return hval;
-}
+++ /dev/null
-/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
- Library.
- Copyright (C) 1995 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. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libgettext.h"
-
-/* @@ end of prolog @@ */
-
-
-#undef gettext
-#undef dgettext
-#undef dcgettext
-#undef textdomain
-#undef bindtextdomain
-
-
-char *
-bindtextdomain (domainname, dirname)
- const char *domainname;
- const char *dirname;
-{
- return bindtextdomain__ (domainname, dirname);
-}
-
-
-char *
-dcgettext (domainname, msgid, category)
- const char *domainname;
- const char *msgid;
- int category;
-{
- return dcgettext__ (domainname, msgid, category);
-}
-
-
-char *
-dgettext (domainname, msgid)
- const char *domainname;
- const char *msgid;
-{
- return dgettext__ (domainname, msgid);
-}
-
-
-char *
-gettext (msgid)
- const char *msgid;
-{
- return gettext__ (msgid);
-}
-
-
-char *
-textdomain (domainname)
- const char *domainname;
-{
- return textdomain__ (domainname);
-}
+++ /dev/null
-/* Handle list of needed message catalogs
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#if defined _LIBC || defined HAVE_ARGZ_H
-# include <argz.h>
-#endif
-#include <ctype.h>
-#include <sys/types.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#include "loadinfo.h"
-
-/* On some strange systems still no definition of NULL is found. Sigh! */
-#ifndef NULL
-# if defined __STDC__ && __STDC__
-# define NULL ((void *) 0)
-# else
-# define NULL 0
-# endif
-#endif
-
-/* @@ end of prolog @@ */
-
-#ifdef _LIBC
-/* Rename the non ANSI C functions. This is required by the standard
- because some ANSI C functions will require linking with this object
- file and the name space must not be polluted. */
-# ifndef stpcpy
-# define stpcpy(dest, src) __stpcpy(dest, src)
-# endif
-#else
-# ifndef HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
-# endif
-#endif
-
-/* Define function which are usually not available. */
-
-#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
-/* Returns the number of strings in ARGZ. */
-static size_t argz_count__ PARAMS ((const char *argz, size_t len));
-
-static size_t
-argz_count__ (argz, len)
- const char *argz;
- size_t len;
-{
- size_t count = 0;
- while (len > 0)
- {
- size_t part_len = strlen (argz);
- argz += part_len + 1;
- len -= part_len + 1;
- count++;
- }
- return count;
-}
-# undef __argz_count
-# define __argz_count(argz, len) argz_count__ (argz, len)
-#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
-
-#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
-/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
- except the last into the character SEP. */
-static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
-
-static void
-argz_stringify__ (argz, len, sep)
- char *argz;
- size_t len;
- int sep;
-{
- while (len > 0)
- {
- size_t part_len = strlen (argz);
- argz += part_len;
- len -= part_len + 1;
- if (len > 0)
- *argz++ = sep;
- }
-}
-# undef __argz_stringify
-# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
-#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
-
-#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
-static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
- const char *entry));
-
-static char *
-argz_next__ (argz, argz_len, entry)
- char *argz;
- size_t argz_len;
- const char *entry;
-{
- if (entry)
- {
- if (entry < argz + argz_len)
- entry = strchr (entry, '\0') + 1;
-
- return entry >= argz + argz_len ? NULL : (char *) entry;
- }
- else
- if (argz_len > 0)
- return argz;
- else
- return 0;
-}
-# undef __argz_next
-# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
-#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
-
-
-/* Return number of bits set in X. */
-static int pop PARAMS ((int x));
-
-static inline int
-pop (x)
- int x;
-{
- /* We assume that no more than 16 bits are used. */
- x = ((x & ~0x5555) >> 1) + (x & 0x5555);
- x = ((x & ~0x3333) >> 2) + (x & 0x3333);
- x = ((x >> 4) + x) & 0x0f0f;
- x = ((x >> 8) + x) & 0xff;
-
- return x;
-}
-
-\f
-struct loaded_l10nfile *
-_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
- territory, codeset, normalized_codeset, modifier, special,
- sponsor, revision, filename, do_allocate)
- struct loaded_l10nfile **l10nfile_list;
- const char *dirlist;
- size_t dirlist_len;
- int mask;
- const char *language;
- const char *territory;
- const char *codeset;
- const char *normalized_codeset;
- const char *modifier;
- const char *special;
- const char *sponsor;
- const char *revision;
- const char *filename;
- int do_allocate;
-{
- char *abs_filename;
- struct loaded_l10nfile *last = NULL;
- struct loaded_l10nfile *retval;
- char *cp;
- size_t entries;
- int cnt;
-
- /* Allocate room for the full file name. */
- abs_filename = (char *) malloc (dirlist_len
- + strlen (language)
- + ((mask & TERRITORY) != 0
- ? strlen (territory) + 1 : 0)
- + ((mask & XPG_CODESET) != 0
- ? strlen (codeset) + 1 : 0)
- + ((mask & XPG_NORM_CODESET) != 0
- ? strlen (normalized_codeset) + 1 : 0)
- + (((mask & XPG_MODIFIER) != 0
- || (mask & CEN_AUDIENCE) != 0)
- ? strlen (modifier) + 1 : 0)
- + ((mask & CEN_SPECIAL) != 0
- ? strlen (special) + 1 : 0)
- + (((mask & CEN_SPONSOR) != 0
- || (mask & CEN_REVISION) != 0)
- ? (1 + ((mask & CEN_SPONSOR) != 0
- ? strlen (sponsor) + 1 : 0)
- + ((mask & CEN_REVISION) != 0
- ? strlen (revision) + 1 : 0)) : 0)
- + 1 + strlen (filename) + 1);
-
- if (abs_filename == NULL)
- return NULL;
-
- retval = NULL;
- last = NULL;
-
- /* Construct file name. */
- memcpy (abs_filename, dirlist, dirlist_len);
- __argz_stringify (abs_filename, dirlist_len, ':');
- cp = abs_filename + (dirlist_len - 1);
- *cp++ = '/';
- cp = stpcpy (cp, language);
-
- if ((mask & TERRITORY) != 0)
- {
- *cp++ = '_';
- cp = stpcpy (cp, territory);
- }
- if ((mask & XPG_CODESET) != 0)
- {
- *cp++ = '.';
- cp = stpcpy (cp, codeset);
- }
- if ((mask & XPG_NORM_CODESET) != 0)
- {
- *cp++ = '.';
- cp = stpcpy (cp, normalized_codeset);
- }
- if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
- {
- /* This component can be part of both syntaces but has different
- leading characters. For CEN we use `+', else `@'. */
- *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
- cp = stpcpy (cp, modifier);
- }
- if ((mask & CEN_SPECIAL) != 0)
- {
- *cp++ = '+';
- cp = stpcpy (cp, special);
- }
- if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
- {
- *cp++ = ',';
- if ((mask & CEN_SPONSOR) != 0)
- cp = stpcpy (cp, sponsor);
- if ((mask & CEN_REVISION) != 0)
- {
- *cp++ = '_';
- cp = stpcpy (cp, revision);
- }
- }
-
- *cp++ = '/';
- stpcpy (cp, filename);
-
- /* Look in list of already loaded domains whether it is already
- available. */
- last = NULL;
- for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
- if (retval->filename != NULL)
- {
- int compare = strcmp (retval->filename, abs_filename);
- if (compare == 0)
- /* We found it! */
- break;
- if (compare < 0)
- {
- /* It's not in the list. */
- retval = NULL;
- break;
- }
-
- last = retval;
- }
-
- if (retval != NULL || do_allocate == 0)
- {
- free (abs_filename);
- return retval;
- }
-
- retval = (struct loaded_l10nfile *)
- malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
- * (1 << pop (mask))
- * sizeof (struct loaded_l10nfile *)));
- if (retval == NULL)
- return NULL;
-
- retval->filename = abs_filename;
- retval->decided = (__argz_count (dirlist, dirlist_len) != 1
- || ((mask & XPG_CODESET) != 0
- && (mask & XPG_NORM_CODESET) != 0));
- retval->data = NULL;
-
- if (last == NULL)
- {
- retval->next = *l10nfile_list;
- *l10nfile_list = retval;
- }
- else
- {
- retval->next = last->next;
- last->next = retval;
- }
-
- entries = 0;
- /* If the DIRLIST is a real list the RETVAL entry corresponds not to
- a real file. So we have to use the DIRLIST separation mechanism
- of the inner loop. */
- cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
- for (; cnt >= 0; --cnt)
- if ((cnt & ~mask) == 0
- && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
- && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
- {
- /* Iterate over all elements of the DIRLIST. */
- char *dir = NULL;
-
- while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
- != NULL)
- retval->successor[entries++]
- = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
- language, territory, codeset,
- normalized_codeset, modifier, special,
- sponsor, revision, filename, 1);
- }
- retval->successor[entries] = NULL;
-
- return retval;
-}
-\f
-/* Normalize codeset name. There is no standard for the codeset
- names. Normalization allows the user to use any of the common
- names. */
-const char *
-_nl_normalize_codeset (codeset, name_len)
- const unsigned char *codeset;
- size_t name_len;
-{
- int len = 0;
- int only_digit = 1;
- char *retval;
- char *wp;
- size_t cnt;
-
- for (cnt = 0; cnt < name_len; ++cnt)
- if (isalnum (codeset[cnt]))
- {
- ++len;
-
- if (isalpha (codeset[cnt]))
- only_digit = 0;
- }
-
- retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
-
- if (retval != NULL)
- {
- if (only_digit)
- wp = stpcpy (retval, "iso");
- else
- wp = retval;
-
- for (cnt = 0; cnt < name_len; ++cnt)
- if (isalpha (codeset[cnt]))
- *wp++ = tolower (codeset[cnt]);
- else if (isdigit (codeset[cnt]))
- *wp++ = codeset[cnt];
-
- *wp = '\0';
- }
-
- return (const char *) retval;
-}
-
-
-/* @@ begin of epilog @@ */
-
-/* We don't want libintl.a to depend on any other library. So we
- avoid the non-standard function stpcpy. In GNU C Library this
- function is available, though. Also allow the symbol HAVE_STPCPY
- to be defined. */
-#if !_LIBC && !HAVE_STPCPY
-static char *
-stpcpy (dest, src)
- char *dest;
- const char *src;
-{
- while ((*dest++ = *src++) != '\0')
- /* Do nothing. */ ;
- return dest - 1;
-}
-#endif
+++ /dev/null
-# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#
-# The first directive in the .msg should be the definition of the
-# message set number. We use always set number 1.
-#
-1 {
- i\
-$set 1 # Automatically created by po2msg.sed
- h
- s/.*/0/
- x
-}
-#
-# Mitch's old catalog format does not allow comments.
-#
-# We copy the original message as a comment into the .msg file.
-#
-/^msgid/ {
- s/msgid[ ]*"//
-#
-# This does not work now with the new format.
-# /"$/! {
-# s/\\$//
-# s/$/ ... (more lines following)"/
-# }
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
- G
- s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
-}
-#
-# The .msg file contains, other then the .po file, only the translations
-# but each given a unique ID. Starting from 1 and incrementing by 1 for
-# each message we assign them to the messages.
-# It is important that the .po file used to generate the cat-id-tbl.c file
-# (with po-to-tbl) is the same as the one used here. (At least the order
-# of declarations must not be changed.)
-#
-/^msgstr/ {
- s/msgstr[ ]*"\(.*\)"/# \1/
-# Clear substitution flag.
- tb
-# Append the next line.
- :b
- N
-# Look whether second part is continuation line.
- s/\(.*\n\)"\(.*\)"/\1\2/
-# Yes, then branch.
- ta
- P
- D
-# Note that D includes a jump to the start!!
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use D here.
- s/.*\n\(.*\)/\1/
- tb
-}
-d
+++ /dev/null
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef PARAMS
-# if __STDC__
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif
-#endif
-
-/* Encoding of locale name parts. */
-#define CEN_REVISION 1
-#define CEN_SPONSOR 2
-#define CEN_SPECIAL 4
-#define XPG_NORM_CODESET 8
-#define XPG_CODESET 16
-#define TERRITORY 32
-#define CEN_AUDIENCE 64
-#define XPG_MODIFIER 128
-
-#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
-#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
-
-
-struct loaded_l10nfile
-{
- const char *filename;
- int decided;
-
- const void *data;
-
- struct loaded_l10nfile *next;
- struct loaded_l10nfile *successor[1];
-};
-
-
-extern const char *_nl_normalize_codeset PARAMS ((const unsigned char *codeset,
- size_t name_len));
-
-extern struct loaded_l10nfile *
-_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
- const char *dirlist, size_t dirlist_len, int mask,
- const char *language, const char *territory,
- const char *codeset,
- const char *normalized_codeset,
- const char *modifier, const char *special,
- const char *sponsor, const char *revision,
- const char *filename, int do_allocate));
-
-
-extern const char *_nl_expand_alias PARAMS ((const char *name));
-
-extern int _nl_explode_name PARAMS ((char *name, const char **language,
- const char **modifier,
- const char **territory,
- const char **codeset,
- const char **normalized_codeset,
- const char **special,
- const char **sponsor,
- const char **revision));
+++ /dev/null
-/* Load needed message catalogs.
- Copyright (C) 1995, 1996, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#if defined HAVE_UNISTD_H || defined _LIBC
-# include <unistd.h>
-#endif
-
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
-# include <sys/mman.h>
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-
-/* @@ end of prolog @@ */
-
-#ifdef _LIBC
-/* Rename the non ISO C functions. This is required by the standard
- because some ISO C functions will require linking with this object
- file and the name space must not be polluted. */
-# define open __open
-# define close __close
-# define read __read
-# define mmap __mmap
-# define munmap __munmap
-#endif
-
-/* We need a sign, whether a new catalog was loaded, which can be associated
- with all translations. This is important if the translations are
- cached by one of GCC's features. */
-int _nl_msg_cat_cntr = 0;
-
-
-/* Load the message catalogs specified by FILENAME. If it is no valid
- message catalog do nothing. */
-void
-internal_function
-_nl_load_domain (domain_file)
- struct loaded_l10nfile *domain_file;
-{
- int fd;
- size_t size;
- struct stat st;
- struct mo_file_header *data = (struct mo_file_header *) -1;
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- int use_mmap = 0;
-#endif
- struct loaded_domain *domain;
-
- domain_file->decided = 1;
- domain_file->data = NULL;
-
- /* If the record does not represent a valid locale the FILENAME
- might be NULL. This can happen when according to the given
- specification the locale file name is different for XPG and CEN
- syntax. */
- if (domain_file->filename == NULL)
- return;
-
- /* Try to open the addressed file. */
- fd = open (domain_file->filename, O_RDONLY);
- if (fd == -1)
- return;
-
- /* We must know about the size of the file. */
- if (fstat (fd, &st) != 0
- || (size = (size_t) st.st_size) != st.st_size
- || size < sizeof (struct mo_file_header))
- {
- /* Something went wrong. */
- close (fd);
- return;
- }
-
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- /* Now we are ready to load the file. If mmap() is available we try
- this first. If not available or it failed we try to load it. */
- data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
- MAP_PRIVATE, fd, 0);
-
- if (data != (struct mo_file_header *) -1)
- {
- /* mmap() call was successful. */
- close (fd);
- use_mmap = 1;
- }
-#endif
-
- /* If the data is not yet available (i.e. mmap'ed) we try to load
- it manually. */
- if (data == (struct mo_file_header *) -1)
- {
- size_t to_read;
- char *read_ptr;
-
- data = (struct mo_file_header *) malloc (size);
- if (data == NULL)
- return;
-
- to_read = size;
- read_ptr = (char *) data;
- do
- {
- long int nb = (long int) read (fd, read_ptr, to_read);
- if (nb == -1)
- {
- close (fd);
- return;
- }
-
- read_ptr += nb;
- to_read -= nb;
- }
- while (to_read > 0);
-
- close (fd);
- }
-
- /* Using the magic number we can test whether it really is a message
- catalog file. */
- if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
- {
- /* The magic number is wrong: not a message catalog file. */
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- if (use_mmap)
- munmap ((caddr_t) data, size);
- else
-#endif
- free (data);
- return;
- }
-
- domain_file->data
- = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
- if (domain_file->data == NULL)
- return;
-
- domain = (struct loaded_domain *) domain_file->data;
- domain->data = (char *) data;
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- domain->use_mmap = use_mmap;
-#endif
- domain->mmap_size = size;
- domain->must_swap = data->magic != _MAGIC;
-
- /* Fill in the information about the available tables. */
- switch (W (domain->must_swap, data->revision))
- {
- case 0:
- domain->nstrings = W (domain->must_swap, data->nstrings);
- domain->orig_tab = (struct string_desc *)
- ((char *) data + W (domain->must_swap, data->orig_tab_offset));
- domain->trans_tab = (struct string_desc *)
- ((char *) data + W (domain->must_swap, data->trans_tab_offset));
- domain->hash_size = W (domain->must_swap, data->hash_tab_size);
- domain->hash_tab = (nls_uint32 *)
- ((char *) data + W (domain->must_swap, data->hash_tab_offset));
- break;
- default:
- /* This is an illegal revision. */
-#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
- || defined _LIBC
- if (use_mmap)
- munmap ((caddr_t) data, size);
- else
-#endif
- free (data);
- free (domain);
- domain_file->data = NULL;
- return;
- }
-
- /* Show that one domain is changed. This might make some cached
- translations invalid. */
- ++_nl_msg_cat_cntr;
-}
-
-
-#ifdef _LIBC
-void
-internal_function
-_nl_unload_domain (domain)
- struct loaded_domain *domain;
-{
- if (domain->use_mmap)
- munmap ((caddr_t) domain->data, domain->mmap_size);
- else
- free ((void *) domain->data);
-
- free (domain);
-}
-#endif
+++ /dev/null
-/* Handle aliases for locale names.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <ctype.h>
-#include <stdio.h>
-#include <sys/types.h>
-
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-# define HAVE_ALLOCA 1
-#else
-# if defined HAVE_ALLOCA_H || defined _LIBC
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca
-char *alloca ();
-# endif
-# endif
-# endif
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#include "gettext.h"
-#include "gettextP.h"
-
-/* @@ end of prolog @@ */
-
-#ifdef _LIBC
-/* Rename the non ANSI C functions. This is required by the standard
- because some ANSI C functions will require linking with this object
- file and the name space must not be polluted. */
-# define strcasecmp __strcasecmp
-
-# define mempcpy __mempcpy
-# define HAVE_MEMPCPY 1
-
-/* We need locking here since we can be called from different places. */
-# include <bits/libc-lock.h>
-
-__libc_lock_define_initialized (static, lock);
-#endif
-
-
-/* For those loosing systems which don't have `alloca' we have to add
- some additional code emulating it. */
-#ifdef HAVE_ALLOCA
-/* Nothing has to be done. */
-# define ADD_BLOCK(list, address) /* nothing */
-# define FREE_BLOCKS(list) /* nothing */
-#else
-struct block_list
-{
- void *address;
- struct block_list *next;
-};
-# define ADD_BLOCK(list, addr) \
- do { \
- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
- /* If we cannot get a free block we cannot add the new element to \
- the list. */ \
- if (newp != NULL) { \
- newp->address = (addr); \
- newp->next = (list); \
- (list) = newp; \
- } \
- } while (0)
-# define FREE_BLOCKS(list) \
- do { \
- while (list != NULL) { \
- struct block_list *old = list; \
- list = list->next; \
- free (old); \
- } \
- } while (0)
-# undef alloca
-# define alloca(size) (malloc (size))
-#endif /* have alloca */
-
-
-struct alias_map
-{
- const char *alias;
- const char *value;
-};
-
-
-static char *string_space = NULL;
-static size_t string_space_act = 0;
-static size_t string_space_max = 0;
-static struct alias_map *map;
-static size_t nmap = 0;
-static size_t maxmap = 0;
-
-
-/* Prototypes for local functions. */
-static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
- internal_function;
-static void extend_alias_table PARAMS ((void));
-static int alias_compare PARAMS ((const struct alias_map *map1,
- const struct alias_map *map2));
-
-
-const char *
-_nl_expand_alias (name)
- const char *name;
-{
- static const char *locale_alias_path = LOCALE_ALIAS_PATH;
- struct alias_map *retval;
- const char *result = NULL;
- size_t added;
-
-#ifdef _LIBC
- __libc_lock_lock (lock);
-#endif
-
- do
- {
- struct alias_map item;
-
- item.alias = name;
-
- if (nmap > 0)
- retval = (struct alias_map *) bsearch (&item, map, nmap,
- sizeof (struct alias_map),
- (int (*) PARAMS ((const void *,
- const void *))
- ) alias_compare);
- else
- retval = NULL;
-
- /* We really found an alias. Return the value. */
- if (retval != NULL)
- {
- result = retval->value;
- break;
- }
-
- /* Perhaps we can find another alias file. */
- added = 0;
- while (added == 0 && locale_alias_path[0] != '\0')
- {
- const char *start;
-
- while (locale_alias_path[0] == ':')
- ++locale_alias_path;
- start = locale_alias_path;
-
- while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
- ++locale_alias_path;
-
- if (start < locale_alias_path)
- added = read_alias_file (start, locale_alias_path - start);
- }
- }
- while (added != 0);
-
-#ifdef _LIBC
- __libc_lock_unlock (lock);
-#endif
-
- return result;
-}
-
-
-static size_t
-internal_function
-read_alias_file (fname, fname_len)
- const char *fname;
- int fname_len;
-{
-#ifndef HAVE_ALLOCA
- struct block_list *block_list = NULL;
-#endif
- FILE *fp;
- char *full_fname;
- size_t added;
- static const char aliasfile[] = "/locale.alias";
-
- full_fname = (char *) alloca (fname_len + sizeof aliasfile);
- ADD_BLOCK (block_list, full_fname);
-#ifdef HAVE_MEMPCPY
- mempcpy (mempcpy (full_fname, fname, fname_len),
- aliasfile, sizeof aliasfile);
-#else
- memcpy (full_fname, fname, fname_len);
- memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
-#endif
-
- fp = fopen (full_fname, "r");
- if (fp == NULL)
- {
- FREE_BLOCKS (block_list);
- return 0;
- }
-
- added = 0;
- while (!feof (fp))
- {
- /* It is a reasonable approach to use a fix buffer here because
- a) we are only interested in the first two fields
- b) these fields must be usable as file names and so must not
- be that long
- */
- unsigned char buf[BUFSIZ];
- unsigned char *alias;
- unsigned char *value;
- unsigned char *cp;
-
- if (fgets (buf, sizeof buf, fp) == NULL)
- /* EOF reached. */
- break;
-
- /* Possibly not the whole line fits into the buffer. Ignore
- the rest of the line. */
- if (strchr (buf, '\n') == NULL)
- {
- char altbuf[BUFSIZ];
- do
- if (fgets (altbuf, sizeof altbuf, fp) == NULL)
- /* Make sure the inner loop will be left. The outer loop
- will exit at the `feof' test. */
- break;
- while (strchr (altbuf, '\n') == NULL);
- }
-
- cp = buf;
- /* Ignore leading white space. */
- while (isspace (cp[0]))
- ++cp;
-
- /* A leading '#' signals a comment line. */
- if (cp[0] != '\0' && cp[0] != '#')
- {
- alias = cp++;
- while (cp[0] != '\0' && !isspace (cp[0]))
- ++cp;
- /* Terminate alias name. */
- if (cp[0] != '\0')
- *cp++ = '\0';
-
- /* Now look for the beginning of the value. */
- while (isspace (cp[0]))
- ++cp;
-
- if (cp[0] != '\0')
- {
- size_t alias_len;
- size_t value_len;
-
- value = cp++;
- while (cp[0] != '\0' && !isspace (cp[0]))
- ++cp;
- /* Terminate value. */
- if (cp[0] == '\n')
- {
- /* This has to be done to make the following test
- for the end of line possible. We are looking for
- the terminating '\n' which do not overwrite here. */
- *cp++ = '\0';
- *cp = '\n';
- }
- else if (cp[0] != '\0')
- *cp++ = '\0';
-
- if (nmap >= maxmap)
- extend_alias_table ();
-
- alias_len = strlen (alias) + 1;
- value_len = strlen (value) + 1;
-
- if (string_space_act + alias_len + value_len > string_space_max)
- {
- /* Increase size of memory pool. */
- size_t new_size = (string_space_max
- + (alias_len + value_len > 1024
- ? alias_len + value_len : 1024));
- char *new_pool = (char *) realloc (string_space, new_size);
- if (new_pool == NULL)
- {
- FREE_BLOCKS (block_list);
- return added;
- }
- string_space = new_pool;
- string_space_max = new_size;
- }
-
- map[nmap].alias = memcpy (&string_space[string_space_act],
- alias, alias_len);
- string_space_act += alias_len;
-
- map[nmap].value = memcpy (&string_space[string_space_act],
- value, value_len);
- string_space_act += value_len;
-
- ++nmap;
- ++added;
- }
- }
- }
-
- /* Should we test for ferror()? I think we have to silently ignore
- errors. --drepper */
- fclose (fp);
-
- if (added > 0)
- qsort (map, nmap, sizeof (struct alias_map),
- (int (*) PARAMS ((const void *, const void *))) alias_compare);
-
- FREE_BLOCKS (block_list);
- return added;
-}
-
-
-static void
-extend_alias_table ()
-{
- size_t new_size;
- struct alias_map *new_map;
-
- new_size = maxmap == 0 ? 100 : 2 * maxmap;
- new_map = (struct alias_map *) realloc (map, (new_size
- * sizeof (struct alias_map)));
- if (new_map == NULL)
- /* Simply don't extend: we don't have any more core. */
- return;
-
- map = new_map;
- maxmap = new_size;
-}
-
-
-#ifdef _LIBC
-static void __attribute__ ((unused))
-free_mem (void)
-{
- if (string_space != NULL)
- free (string_space);
- if (map != NULL)
- free (map);
-}
-text_set_element (__libc_subfreeres, free_mem);
-#endif
-
-
-static int
-alias_compare (map1, map2)
- const struct alias_map *map1;
- const struct alias_map *map2;
-{
-#if defined _LIBC || defined HAVE_STRCASECMP
- return strcasecmp (map1->alias, map2->alias);
-#else
- const unsigned char *p1 = (const unsigned char *) map1->alias;
- const unsigned char *p2 = (const unsigned char *) map2->alias;
- unsigned char c1, c2;
-
- if (p1 == p2)
- return 0;
-
- do
- {
- /* I know this seems to be odd but the tolower() function in
- some systems libc cannot handle nonalpha characters. */
- c1 = isupper (*p1) ? tolower (*p1) : *p1;
- c2 = isupper (*p2) ? tolower (*p2) : *p2;
- if (c1 == '\0')
- break;
- ++p1;
- ++p2;
- }
- while (c1 == c2);
-
- return c1 - c2;
-#endif
-}
+++ /dev/null
-# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-1 {
- i\
-/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
-\
-#if HAVE_CONFIG_H\
-# include <config.h>\
-#endif\
-\
-#include "libgettext.h"\
-\
-const struct _msg_ent _msg_tbl[] = {
- h
- s/.*/0/
- x
-}
-#
-# Write msgid entries in C array form.
-#
-/^msgid/ {
- s/msgid[ ]*\(".*"\)/ {\1/
- tb
-# Append the next line
- :b
- N
-# Look whether second part is continuation line.
- s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
-# Yes, then branch.
- ta
-# Because we assume that the input file correctly formed the line
-# just read cannot be again be a msgid line. So it's safe to ignore
-# it.
- s/\(.*\)\n.*/\1/
- bc
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use D here.
- s/.*\n\(.*\)/\1/
-# Some buggy seds do not clear the `successful substitution since last ``t'''
-# flag on `N', so we do a `t' here to clear it.
- tb
-# Not reached
- :c
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
- G
- s/\(.*\)\n\([0-9]*\)/\1, \2},/
- s/\(.*\)"$/\1/
- p
-}
-#
-# Last line.
-#
-$ {
- i\
-};\
-
- g
- s/0*\(.*\)/int _msg_tbl_length = \1;/p
-}
-d
+++ /dev/null
-/* Implementation of the textdomain(3) function.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-
-#ifdef _LIBC
-# include <libintl.h>
-#else
-# include "libgettext.h"
-#endif
-
-/* @@ end of prolog @@ */
-
-/* Name of the default text domain. */
-extern const char _nl_default_default_domain[];
-
-/* Default text domain in which entries for gettext(3) are to be found. */
-extern const char *_nl_current_default_domain;
-
-
-/* Names for the libintl functions are a problem. They must not clash
- with existing names and they should follow ANSI C. But this source
- code is also used in GNU C Library where the names have a __
- prefix. So we have to make a difference here. */
-#ifdef _LIBC
-# define TEXTDOMAIN __textdomain
-# ifndef strdup
-# define strdup(str) __strdup (str)
-# endif
-#else
-# define TEXTDOMAIN textdomain__
-#endif
-
-/* Set the current default message catalog to DOMAINNAME.
- If DOMAINNAME is null, return the current default.
- If DOMAINNAME is "", reset to the default of "messages". */
-char *
-TEXTDOMAIN (domainname)
- const char *domainname;
-{
- char *old;
-
- /* A NULL pointer requests the current setting. */
- if (domainname == NULL)
- return (char *) _nl_current_default_domain;
-
- old = (char *) _nl_current_default_domain;
-
- /* If domain name is the null string set to default domain "messages". */
- if (domainname[0] == '\0'
- || strcmp (domainname, _nl_default_default_domain) == 0)
- _nl_current_default_domain = _nl_default_default_domain;
- else
- {
- /* If the following malloc fails `_nl_current_default_domain'
- will be NULL. This value will be returned and so signals we
- are out of core. */
-#if defined _LIBC || defined HAVE_STRDUP
- _nl_current_default_domain = strdup (domainname);
-#else
- size_t len = strlen (domainname) + 1;
- char *cp = (char *) malloc (len);
- if (cp != NULL)
- memcpy (cp, domainname, len);
- _nl_current_default_domain = cp;
-#endif
- }
-
- if (old != _nl_default_default_domain)
- free (old);
-
- return (char *) _nl_current_default_domain;
-}
-
-#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
-weak_alias (__textdomain, textdomain);
-#endif
+++ /dev/null
-# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#
-# The first directive in the .msg should be the definition of the
-# message set number. We use always set number 1.
-#
-1 {
- i\
-$set 1 # Automatically created by po2msg.sed
- h
- s/.*/0/
- x
-}
-#
-# We copy all comments into the .msg file. Perhaps they can help.
-#
-/^#/ s/^#[ ]*/$ /p
-#
-# We copy the original message as a comment into the .msg file.
-#
-/^msgid/ {
-# Does not work now
-# /"$/! {
-# s/\\$//
-# s/$/ ... (more lines following)"/
-# }
- s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/
- p
-}
-#
-# The .msg file contains, other then the .po file, only the translations
-# but each given a unique ID. Starting from 1 and incrementing by 1 for
-# each message we assign them to the messages.
-# It is important that the .po file used to generate the cat-id-tbl.c file
-# (with po-to-tbl) is the same as the one used here. (At least the order
-# of declarations must not be changed.)
-#
-/^msgstr/ {
- s/msgstr[ ]*"\(.*\)"/\1/
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
-# Bring the line in the format `<number> <message>'
- G
- s/^[^\n]*$/& /
- s/\(.*\)\n\([0-9]*\)/\2 \1/
-# Clear flag from last substitution.
- tb
-# Append the next line.
- :b
- N
-# Look whether second part is a continuation line.
- s/\(.*\n\)"\(.*\)"/\1\2/
-# Yes, then branch.
- ta
- P
- D
-# Note that `D' includes a jump to the start!!
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use the sed command `D' here
- s/.*\n\(.*\)/\1/
- tb
-}
-d
+1999-12-14 François Pinard <pinard@iro.umontreal.ca>
+
+ * Makefile.am: Adapt to the gettext scheme used in wdiff.
+ * gettext.c, gettext.h: New files.
+
+1999-12-12 François Pinard <pinard@iro.umontreal.ca>
+
+ * Makefile.am: Replace strtol and strtoul only when missing.
+ Reported by Tom Hageman.
+
+1999-06-15 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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 and Peter Turcan.
+\f
1998-12-13 François Pinard <pinard@iro.umontreal.ca>
* argmatch.c, argmatch.h, hash.c, hash.h: Moved away, into src.
# Makefile for `recode' (own internal) library.
-# Copyright © 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright © 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
# François Pinard <pinard@iro.umontreal.ca>
# This program is free software; you can redistribute it and/or modify
AUTOMAKE_OPTIONS = gnits
noinst_LIBRARIES = libreco.a
-noinst_HEADERS = error.h getopt.h pathmax.h xalloc.h xstring.h
-libreco_a_SOURCES = error.c getopt.c getopt1.c strtoul.c xmalloc.c \
-xstrdup.c
+noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xalloc.h xstring.h
+libreco_a_SOURCES = error.c getopt.c getopt1.c xmalloc.c xstrdup.c
-EXTRA_DIST = strtol.c
+EXTRA_DIST = alloca.c gettext.c malloc.c realloc.c strtol.c strtoul.c
INCLUDES = -I.. -I$(srcdir) -I../intl
-## libreco_a_LIBADD = @ALLOCA@ @LIBOBJS@
+libreco_a_LIBADD = @ALLOCA@ @LIBOBJS@
## libreco_a_DEPENDENCIES = $(libtar_a_LIBADD)
+localedir = $(prefix)/share/locale
+aliaspath = $(localedir):.
+
+gettext.o: gettext.c
+ $(COMPILE) -DALIASPATH=\"$(aliaspath)\" -DLOCALEDIR=\"$(localedir)\" \
+ -c $(srcdir)/gettext.c
+
+gettext._o: gettext._c
+ @rm -f _gettext.c
+ @ln gettext._c _gettext.c
+ $(COMPILE) -DALIASPATH=\"$(aliaspath)\" -DLOCALEDIR=\"$(localedir)\" \
+ -c _gettext.c
+ @mv _gettext.o $@
+ @rm _gettext.c
# PARTICULAR PURPOSE.
# Makefile for `recode' (own internal) library.
-# Copyright © 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# Copyright © 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
# François Pinard <pinard@iro.umontreal.ca>
# This program is free software; you can redistribute it and/or modify
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_MOFILES = @ALL_MOFILES@
+ALL_POFILES = @ALL_POFILES@
AS = @AS@
AT_TESTPATH = @AT_TESTPATH@
-AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
-LD = @LD@
LEX = @LEX@
+LIBOBJS = @LIBOBJS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
+MOFILES = @MOFILES@
MSGFMT = @MSGFMT@
-NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
AUTOMAKE_OPTIONS = gnits
noinst_LIBRARIES = libreco.a
-noinst_HEADERS = error.h getopt.h pathmax.h xalloc.h xstring.h
-libreco_a_SOURCES = error.c getopt.c getopt1.c strtoul.c xmalloc.c xstrdup.c
+noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xalloc.h xstring.h
+libreco_a_SOURCES = error.c getopt.c getopt1.c xmalloc.c xstrdup.c
-
-EXTRA_DIST = strtol.c
+EXTRA_DIST = alloca.c gettext.c malloc.c realloc.c strtol.c strtoul.c
INCLUDES = -I.. -I$(srcdir) -I../intl
+
+libreco_a_LIBADD = @ALLOCA@ @LIBOBJS@
+localedir = $(prefix)/share/locale
+aliaspath = $(localedir):.
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
-libreco_a_LIBADD =
-libreco_a_OBJECTS = error.o getopt.o getopt1.o strtoul.o xmalloc.o \
-xstrdup.o
+libreco_a_DEPENDENCIES = @ALLOCA@ @LIBOBJS@
+libreco_a_OBJECTS = error.o getopt.o getopt1.o xmalloc.o xstrdup.o
AR = ar
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
HEADERS = $(noinst_HEADERS)
-DIST_COMMON = ChangeLog Makefile.am Makefile.in
+DIST_COMMON = ChangeLog Makefile.am Makefile.in alloca.c gettext.c \
+malloc.c realloc.c strtol.c strtoul.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
error.o: error.c ../config.h error.h
getopt.o: getopt.c ../config.h
getopt1.o: getopt1.c ../config.h getopt.h
-strtoul.o: strtoul.c strtol.c ../config.h
xmalloc.o: xmalloc.c ../config.h error.h xalloc.h
xstrdup.o: xstrdup.c ../config.h
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+gettext.o: gettext.c
+ $(COMPILE) -DALIASPATH=\"$(aliaspath)\" -DLOCALEDIR=\"$(localedir)\" \
+ -c $(srcdir)/gettext.c
+
+gettext._o: gettext._c
+ @rm -f _gettext.c
+ @ln gettext._c _gettext.c
+ $(COMPILE) -DALIASPATH=\"$(aliaspath)\" -DLOCALEDIR=\"$(localedir)\" \
+ -c _gettext.c
+ @mv _gettext.o $@
+ @rm _gettext.c
+
# 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:
--- /dev/null
+/* 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 <jot@cray.com> 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 <config.h>
+#endif
+
+#ifdef emacs
+# include "blockinput.h"
+#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
+# 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
+
+# if __STDC__
+typedef void *pointer;
+# else
+typedef char *pointer;
+# endif
+
+# ifndef NULL
+# define NULL 0
+# endif
+
+/* Different portions of Emacs need to call different versions of
+ malloc. The Emacs executable needs alloca to call xmalloc, because
+ ordinary malloc isn't protected from input signals. On the other
+ hand, the utilities in lib-src need alloca to call malloc; some of
+ them are very simple, and don't have an xmalloc routine.
+
+ Non-Emacs programs expect this to call xmalloc.
+
+ Callers below should use malloc. */
+
+# ifndef emacs
+# define malloc xmalloc
+# endif
+extern pointer malloc ();
+
+/* 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 ()
+{
+ 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. */
+
+pointer
+alloca (size)
+ unsigned 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 ((pointer) 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. */
+
+ {
+ register pointer new = malloc (sizeof (header) + size);
+ /* Address of header. */
+
+ ((header *) new)->h.next = last_alloca_header;
+ ((header *) new)->h.deep = depth;
+
+ last_alloca_header = (header *) new;
+
+ /* User storage begins just after header. */
+
+ return (pointer) ((char *) new + sizeof (header));
+ }
+}
+
+# if defined (CRAY) && defined (CRAY_STACKSEG_END)
+
+# ifdef DEBUG_I00AFUNC
+# include <stdio.h>
+# 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 */
--- /dev/null
+/* Begin of l10nflist.c */
+
+/* Handle list of needed message catalogs
+ Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined _LIBC || defined HAVE_ARGZ_H
+# include <argz.h>
+#endif
+#include <ctype.h>
+#include <sys/types.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+/* Interrupt of l10nflist.c */
+\f
+/* Begin of loadinfo.h */
+
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+/* Encoding of locale name parts. */
+#define CEN_REVISION 1
+#define CEN_SPONSOR 2
+#define CEN_SPECIAL 4
+#define XPG_NORM_CODESET 8
+#define XPG_CODESET 16
+#define TERRITORY 32
+#define CEN_AUDIENCE 64
+#define XPG_MODIFIER 128
+
+#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
+#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
+
+struct loaded_l10nfile
+{
+ const char *filename;
+ int decided;
+
+ const void *data;
+
+ struct loaded_l10nfile *next;
+ struct loaded_l10nfile *successor[1];
+};
+
+static const char *_nl_normalize_codeset PARAMS ((const unsigned char *codeset,
+ size_t name_len));
+
+static struct loaded_l10nfile *
+_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
+ const char *dirlist, size_t dirlist_len, int mask,
+ const char *language, const char *territory,
+ const char *codeset,
+ const char *normalized_codeset,
+ const char *modifier, const char *special,
+ const char *sponsor, const char *revision,
+ const char *filename, int do_allocate));
+
+static const char *_nl_expand_alias PARAMS ((const char *name));
+
+static int _nl_explode_name PARAMS ((char *name, const char **language,
+ const char **modifier,
+ const char **territory,
+ const char **codeset,
+ const char **normalized_codeset,
+ const char **special,
+ const char **sponsor,
+ const char **revision));
+
+/* End of loadinfo.h */
+\f
+/* Resume of l10nflist.c */
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# ifndef stpcpy
+# define stpcpy(dest, src) __stpcpy(dest, src)
+# endif
+#else
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+#endif
+
+/* Define function which are usually not available. */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
+/* Returns the number of strings in ARGZ. */
+static size_t argz_count__ PARAMS ((const char *argz, size_t len));
+
+static size_t
+argz_count__ (argz, len)
+ const char *argz;
+ size_t len;
+{
+ size_t count = 0;
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len + 1;
+ len -= part_len + 1;
+ count++;
+ }
+ return count;
+}
+# undef __argz_count
+# define __argz_count(argz, len) argz_count__ (argz, len)
+#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
+/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
+ except the last into the character SEP. */
+static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
+
+static void
+argz_stringify__ (argz, len, sep)
+ char *argz;
+ size_t len;
+ int sep;
+{
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len;
+ len -= part_len + 1;
+ if (len > 0)
+ *argz++ = sep;
+ }
+}
+# undef __argz_stringify
+# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
+#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
+static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
+ const char *entry));
+
+static char *
+argz_next__ (argz, argz_len, entry)
+ char *argz;
+ size_t argz_len;
+ const char *entry;
+{
+ if (entry)
+ {
+ if (entry < argz + argz_len)
+ entry = strchr (entry, '\0') + 1;
+
+ return entry >= argz + argz_len ? NULL : (char *) entry;
+ }
+ else
+ if (argz_len > 0)
+ return argz;
+ else
+ return 0;
+}
+# undef __argz_next
+# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
+#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
+
+/* Return number of bits set in X. */
+static int pop PARAMS ((int x));
+
+static inline int
+pop (x)
+ int x;
+{
+ /* We assume that no more than 16 bits are used. */
+ x = ((x & ~0x5555) >> 1) + (x & 0x5555);
+ x = ((x & ~0x3333) >> 2) + (x & 0x3333);
+ x = ((x >> 4) + x) & 0x0f0f;
+ x = ((x >> 8) + x) & 0xff;
+
+ return x;
+}
+
+struct loaded_l10nfile *
+_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
+ territory, codeset, normalized_codeset, modifier, special,
+ sponsor, revision, filename, do_allocate)
+ struct loaded_l10nfile **l10nfile_list;
+ const char *dirlist;
+ size_t dirlist_len;
+ int mask;
+ const char *language;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *modifier;
+ const char *special;
+ const char *sponsor;
+ const char *revision;
+ const char *filename;
+ int do_allocate;
+{
+ char *abs_filename;
+ struct loaded_l10nfile *last = NULL;
+ struct loaded_l10nfile *retval;
+ char *cp;
+ size_t entries;
+ int cnt;
+
+ /* Allocate room for the full file name. */
+ abs_filename = (char *) malloc (dirlist_len
+ + strlen (language)
+ + ((mask & TERRITORY) != 0
+ ? strlen (territory) + 1 : 0)
+ + ((mask & XPG_CODESET) != 0
+ ? strlen (codeset) + 1 : 0)
+ + ((mask & XPG_NORM_CODESET) != 0
+ ? strlen (normalized_codeset) + 1 : 0)
+ + (((mask & XPG_MODIFIER) != 0
+ || (mask & CEN_AUDIENCE) != 0)
+ ? strlen (modifier) + 1 : 0)
+ + ((mask & CEN_SPECIAL) != 0
+ ? strlen (special) + 1 : 0)
+ + (((mask & CEN_SPONSOR) != 0
+ || (mask & CEN_REVISION) != 0)
+ ? (1 + ((mask & CEN_SPONSOR) != 0
+ ? strlen (sponsor) + 1 : 0)
+ + ((mask & CEN_REVISION) != 0
+ ? strlen (revision) + 1 : 0)) : 0)
+ + 1 + strlen (filename) + 1);
+
+ if (abs_filename == NULL)
+ return NULL;
+
+ retval = NULL;
+ last = NULL;
+
+ /* Construct file name. */
+ memcpy (abs_filename, dirlist, dirlist_len);
+ __argz_stringify (abs_filename, dirlist_len, ':');
+ cp = abs_filename + (dirlist_len - 1);
+ *cp++ = '/';
+ cp = stpcpy (cp, language);
+
+ if ((mask & TERRITORY) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, territory);
+ }
+ if ((mask & XPG_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, codeset);
+ }
+ if ((mask & XPG_NORM_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, normalized_codeset);
+ }
+ if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
+ {
+ /* This component can be part of both syntaces but has different
+ leading characters. For CEN we use `+', else `@'. */
+ *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
+ cp = stpcpy (cp, modifier);
+ }
+ if ((mask & CEN_SPECIAL) != 0)
+ {
+ *cp++ = '+';
+ cp = stpcpy (cp, special);
+ }
+ if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
+ {
+ *cp++ = ',';
+ if ((mask & CEN_SPONSOR) != 0)
+ cp = stpcpy (cp, sponsor);
+ if ((mask & CEN_REVISION) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, revision);
+ }
+ }
+
+ *cp++ = '/';
+ stpcpy (cp, filename);
+
+ /* Look in list of already loaded domains whether it is already
+ available. */
+ last = NULL;
+ for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
+ if (retval->filename != NULL)
+ {
+ int compare = strcmp (retval->filename, abs_filename);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It's not in the list. */
+ retval = NULL;
+ break;
+ }
+
+ last = retval;
+ }
+
+ if (retval != NULL || do_allocate == 0)
+ {
+ free (abs_filename);
+ return retval;
+ }
+
+ retval = (struct loaded_l10nfile *)
+ malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
+ * (1 << pop (mask))
+ * sizeof (struct loaded_l10nfile *)));
+ if (retval == NULL)
+ return NULL;
+
+ retval->filename = abs_filename;
+ retval->decided = (__argz_count (dirlist, dirlist_len) != 1
+ || ((mask & XPG_CODESET) != 0
+ && (mask & XPG_NORM_CODESET) != 0));
+ retval->data = NULL;
+
+ if (last == NULL)
+ {
+ retval->next = *l10nfile_list;
+ *l10nfile_list = retval;
+ }
+ else
+ {
+ retval->next = last->next;
+ last->next = retval;
+ }
+
+ entries = 0;
+ /* If the DIRLIST is a real list the RETVAL entry corresponds not to
+ a real file. So we have to use the DIRLIST separation mechanism
+ of the inner loop. */
+ cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
+ for (; cnt >= 0; --cnt)
+ if ((cnt & ~mask) == 0
+ && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
+ && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
+ {
+ /* Iterate over all elements of the DIRLIST. */
+ char *dir = NULL;
+
+ while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
+ != NULL)
+ retval->successor[entries++]
+ = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
+ language, territory, codeset,
+ normalized_codeset, modifier, special,
+ sponsor, revision, filename, 1);
+ }
+ retval->successor[entries] = NULL;
+
+ return retval;
+}
+
+/* Normalize codeset name. There is no standard for the codeset
+ names. Normalization allows the user to use any of the common
+ names. */
+static const char *
+_nl_normalize_codeset (codeset, name_len)
+ const unsigned char *codeset;
+ size_t name_len;
+{
+ int len = 0;
+ int only_digit = 1;
+ char *retval;
+ char *wp;
+ size_t cnt;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalnum (codeset[cnt]))
+ {
+ ++len;
+
+ if (isalpha (codeset[cnt]))
+ only_digit = 0;
+ }
+
+ retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
+
+ if (retval != NULL)
+ {
+ if (only_digit)
+ wp = stpcpy (retval, "iso");
+ else
+ wp = retval;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalpha (codeset[cnt]))
+ *wp++ = tolower (codeset[cnt]);
+ else if (isdigit (codeset[cnt]))
+ *wp++ = codeset[cnt];
+
+ *wp = '\0';
+ }
+
+ return (const char *) retval;
+}
+
+/* End of l10nflist.c */
+\f
+/* Begin of explodename.c */
+
+/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
+
+#if defined STDC_HEADERS || defined _LIBC
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+#else
+#endif
+
+static int
+_nl_explode_name (name, language, modifier, territory, codeset,
+ normalized_codeset, special, sponsor, revision)
+ char *name;
+ const char **language;
+ const char **modifier;
+ const char **territory;
+ const char **codeset;
+ const char **normalized_codeset;
+ const char **special;
+ const char **sponsor;
+ const char **revision;
+{
+ enum { undecided, xpg, cen } syntax;
+ char *cp;
+ int mask;
+
+ *modifier = NULL;
+ *territory = NULL;
+ *codeset = NULL;
+ *normalized_codeset = NULL;
+ *special = NULL;
+ *sponsor = NULL;
+ *revision = NULL;
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_' and `@' if
+ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+ mask = 0;
+ syntax = undecided;
+ *language = cp = name;
+ while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@'
+ && cp[0] != '+' && cp[0] != ',')
+ ++cp;
+
+ if (*language == cp)
+ /* This does not make sense: language has to be specified. Use
+ this entry as it is without exploding. Perhaps it is an alias. */
+ cp = strchr (*language, '\0');
+ else if (cp[0] == '_')
+ {
+ /* Next is the territory. */
+ cp[0] = '\0';
+ *territory = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'
+ && cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= TERRITORY;
+
+ if (cp[0] == '.')
+ {
+ /* Next is the codeset. */
+ syntax = xpg;
+ cp[0] = '\0';
+ *codeset = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '@')
+ ++cp;
+
+ mask |= XPG_CODESET;
+
+ if (*codeset != cp && (*codeset)[0] != '\0')
+ {
+ *normalized_codeset = _nl_normalize_codeset (*codeset,
+ cp - *codeset);
+ if (strcmp (*codeset, *normalized_codeset) == 0)
+ free ((char *) *normalized_codeset);
+ else
+ mask |= XPG_NORM_CODESET;
+ }
+ }
+ }
+
+ if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))
+ {
+ /* Next is the modifier. */
+ syntax = cp[0] == '@' ? xpg : cen;
+ cp[0] = '\0';
+ *modifier = ++cp;
+
+ while (syntax == cen && cp[0] != '\0' && cp[0] != '+'
+ && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= XPG_MODIFIER | CEN_AUDIENCE;
+ }
+
+ if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
+ {
+ syntax = cen;
+
+ if (cp[0] == '+')
+ {
+ /* Next is special application (CEN syntax). */
+ cp[0] = '\0';
+ *special = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= CEN_SPECIAL;
+ }
+
+ if (cp[0] == ',')
+ {
+ /* Next is sponsor (CEN syntax). */
+ cp[0] = '\0';
+ *sponsor = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '_')
+ ++cp;
+
+ mask |= CEN_SPONSOR;
+ }
+
+ if (cp[0] == '_')
+ {
+ /* Next is revision (CEN syntax). */
+ cp[0] = '\0';
+ *revision = ++cp;
+
+ mask |= CEN_REVISION;
+ }
+ }
+
+ /* For CEN syntax values it might be important to have the
+ separator character in the file name, not for XPG syntax. */
+ if (syntax == xpg)
+ {
+ if (*territory != NULL && (*territory)[0] == '\0')
+ mask &= ~TERRITORY;
+
+ if (*codeset != NULL && (*codeset)[0] == '\0')
+ mask &= ~XPG_CODESET;
+
+ if (*modifier != NULL && (*modifier)[0] == '\0')
+ mask &= ~XPG_MODIFIER;
+ }
+
+ return mask;
+}
+
+/* End of explodename.c */
+\f
+/* Begin of loadmsgcat.c */
+
+/* Load needed message catalogs.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
+# include <sys/mman.h>
+#endif
+
+/* Interrupt of loadmsgcat.c */
+\f
+/* Begin of gettext.h */
+
+/* Internal header for GNU gettext internationalization functions.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc. */
+
+#ifndef _GETTEXT_H
+#define _GETTEXT_H 1
+
+#include <stdio.h>
+
+#if HAVE_LIMITS_H || _LIBC
+# include <limits.h>
+#endif
+
+/* The magic number of the GNU message catalog format. */
+#define _MAGIC 0x950412de
+#define _MAGIC_SWAPPED 0xde120495
+
+/* Revision number of the currently used .mo (binary) file format. */
+#define MO_REVISION_NUMBER 0
+
+/* The following contortions are an attempt to use the C preprocessor
+ to determine an unsigned integral type that is 32 bits wide. An
+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+ doing that would require that the configure script compile and *run*
+ the resulting executable. Locally running cross-compiled executables
+ is usually not possible. */
+
+#if __STDC__
+# define UINT_MAX_32_BITS 4294967295U
+#else
+# define UINT_MAX_32_BITS 0xFFFFFFFF
+#endif
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+ This should be valid for all systems GNU cares about because
+ that doesn't include 16-bit systems, and only modern systems
+ (that certainly have <limits.h>) have 64+-bit integral types. */
+
+#ifndef UINT_MAX
+# define UINT_MAX UINT_MAX_32_BITS
+#endif
+
+#if UINT_MAX == UINT_MAX_32_BITS
+typedef unsigned nls_uint32;
+#else
+# if USHRT_MAX == UINT_MAX_32_BITS
+typedef unsigned short nls_uint32;
+# else
+# if ULONG_MAX == UINT_MAX_32_BITS
+typedef unsigned long nls_uint32;
+# else
+ /* The following line is intended to throw an error. Using #error is
+ not portable enough. */
+ "Cannot determine unsigned 32-bit data type."
+# endif
+# endif
+#endif
+
+/* Header for binary .mo file format. */
+struct mo_file_header
+{
+ /* The magic number. */
+ nls_uint32 magic;
+ /* The revision number of the file format. */
+ nls_uint32 revision;
+ /* The number of strings pairs. */
+ nls_uint32 nstrings;
+ /* Offset of table with start offsets of original strings. */
+ nls_uint32 orig_tab_offset;
+ /* Offset of table with start offsets of translation strings. */
+ nls_uint32 trans_tab_offset;
+ /* Size of hashing table. */
+ nls_uint32 hash_tab_size;
+ /* Offset of first hashing entry. */
+ nls_uint32 hash_tab_offset;
+};
+
+struct string_desc
+{
+ /* Length of addressed string. */
+ nls_uint32 length;
+ /* Offset of string in file. */
+ nls_uint32 offset;
+};
+
+#endif /* gettext.h */
+
+/* End of gettext.h */
+\f
+/* Resume of loadmsgcat.c */
+
+/* Interrupt of loadmsgcat.c */
+\f
+/* Begin of gettextP.h */
+
+/* Header describing internals of gettext library
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
+
+#ifndef _GETTEXTP_H
+#define _GETTEXTP_H
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+#ifndef W
+# define W(flag, data) ((flag) ? SWAP (data) : (data))
+#endif
+
+#ifdef _LIBC
+# include <byteswap.h>
+# define SWAP(i) bswap_32 (i)
+#else
+static nls_uint32 SWAP PARAMS ((nls_uint32 i));
+
+static inline nls_uint32
+SWAP (i)
+ nls_uint32 i;
+{
+ return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
+}
+#endif
+
+struct loaded_domain
+{
+ const char *data;
+ int use_mmap;
+ size_t mmap_size;
+ int must_swap;
+ nls_uint32 nstrings;
+ struct string_desc *orig_tab;
+ struct string_desc *trans_tab;
+ nls_uint32 hash_size;
+ nls_uint32 *hash_tab;
+};
+
+struct binding
+{
+ struct binding *next;
+ char *domainname;
+ char *dirname;
+};
+
+static struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
+ char *__locale,
+ const char *__domainname))
+ internal_function;
+static void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
+ internal_function;
+static void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
+ internal_function;
+
+#endif /* gettextP.h */
+
+/* End of gettextP.h */
+\f
+/* Resume of loadmsgcat.c */
+
+#ifdef _LIBC
+/* Rename the non ISO C functions. This is required by the standard
+ because some ISO C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define open __open
+# define close __close
+# define read __read
+# define mmap __mmap
+# define munmap __munmap
+#endif
+
+/* We need a sign, whether a new catalog was loaded, which can be associated
+ with all translations. This is important if the translations are
+ cached by one of GCC's features. */
+int _nl_msg_cat_cntr = 0;
+
+/* Load the message catalogs specified by FILENAME. If it is no valid
+ message catalog do nothing. */
+static void
+internal_function
+_nl_load_domain (domain_file)
+ struct loaded_l10nfile *domain_file;
+{
+ int fd;
+ size_t size;
+ struct stat st;
+ struct mo_file_header *data = (struct mo_file_header *) -1;
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ int use_mmap = 0;
+#endif
+ struct loaded_domain *domain;
+
+ domain_file->decided = 1;
+ domain_file->data = NULL;
+
+ /* If the record does not represent a valid locale the FILENAME
+ might be NULL. This can happen when according to the given
+ specification the locale file name is different for XPG and CEN
+ syntax. */
+ if (domain_file->filename == NULL)
+ return;
+
+ /* Try to open the addressed file. */
+ fd = open (domain_file->filename, O_RDONLY);
+ if (fd == -1)
+ return;
+
+ /* We must know about the size of the file. */
+ if (fstat (fd, &st) != 0
+ || (size = (size_t) st.st_size) != st.st_size
+ || size < sizeof (struct mo_file_header))
+ {
+ /* Something went wrong. */
+ close (fd);
+ return;
+ }
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ /* Now we are ready to load the file. If mmap() is available we try
+ this first. If not available or it failed we try to load it. */
+ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
+ MAP_PRIVATE, fd, 0);
+
+ if (data != (struct mo_file_header *) -1)
+ {
+ /* mmap() call was successful. */
+ close (fd);
+ use_mmap = 1;
+ }
+#endif
+
+ /* If the data is not yet available (i.e. mmap'ed) we try to load
+ it manually. */
+ if (data == (struct mo_file_header *) -1)
+ {
+ size_t to_read;
+ char *read_ptr;
+
+ data = (struct mo_file_header *) malloc (size);
+ if (data == NULL)
+ return;
+
+ to_read = size;
+ read_ptr = (char *) data;
+ do
+ {
+ long int nb = (long int) read (fd, read_ptr, to_read);
+ if (nb == -1)
+ {
+ close (fd);
+ return;
+ }
+
+ read_ptr += nb;
+ to_read -= nb;
+ }
+ while (to_read > 0);
+
+ close (fd);
+ }
+
+ /* Using the magic number we can test whether it really is a message
+ catalog file. */
+ if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
+ {
+ /* The magic number is wrong: not a message catalog file. */
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ return;
+ }
+
+ domain_file->data
+ = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
+ if (domain_file->data == NULL)
+ return;
+
+ domain = (struct loaded_domain *) domain_file->data;
+ domain->data = (char *) data;
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ domain->use_mmap = use_mmap;
+#endif
+ domain->mmap_size = size;
+ domain->must_swap = data->magic != _MAGIC;
+
+ /* Fill in the information about the available tables. */
+ switch (W (domain->must_swap, data->revision))
+ {
+ case 0:
+ domain->nstrings = W (domain->must_swap, data->nstrings);
+ domain->orig_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->orig_tab_offset));
+ domain->trans_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->trans_tab_offset));
+ domain->hash_size = W (domain->must_swap, data->hash_tab_size);
+ domain->hash_tab = (nls_uint32 *)
+ ((char *) data + W (domain->must_swap, data->hash_tab_offset));
+ break;
+ default:
+ /* This is an illegal revision. */
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ free (domain);
+ domain_file->data = NULL;
+ return;
+ }
+
+ /* Show that one domain is changed. This might make some cached
+ translations invalid. */
+ ++_nl_msg_cat_cntr;
+}
+
+#ifdef _LIBC
+static void
+internal_function
+_nl_unload_domain (domain)
+ struct loaded_domain *domain;
+{
+ if (domain->use_mmap)
+ munmap ((caddr_t) domain->data, domain->mmap_size);
+ else
+ free ((void *) domain->data);
+
+ free (domain);
+}
+#endif
+
+/* End of loadmsgcat.c */
+\f
+/* Begin of localealias.c */
+
+/* Handle aliases for locale names.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
+
+#if defined STDC_HEADERS || defined _LIBC
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+#else
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define strcasecmp __strcasecmp
+
+# define mempcpy __mempcpy
+# define HAVE_MEMPCPY 1
+
+/* We need locking here since we can be called from different places. */
+# include <bits/libc-lock.h>
+
+__libc_lock_define_initialized (static, lock);
+#endif
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+struct alias_map
+{
+ const char *alias;
+ const char *value;
+};
+
+static char *string_space = NULL;
+static size_t string_space_act = 0;
+static size_t string_space_max = 0;
+static struct alias_map *map;
+static size_t nmap = 0;
+static size_t maxmap = 0;
+
+/* Prototypes for local functions. */
+static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
+ internal_function;
+static void extend_alias_table PARAMS ((void));
+static int alias_compare PARAMS ((const struct alias_map *map1,
+ const struct alias_map *map2));
+
+static const char *
+_nl_expand_alias (name)
+ const char *name;
+{
+ static const char *locale_alias_path = ALIASPATH;
+ struct alias_map *retval;
+ const char *result = NULL;
+ size_t added;
+
+#ifdef _LIBC
+ __libc_lock_lock (lock);
+#endif
+
+ do
+ {
+ struct alias_map item;
+
+ item.alias = name;
+
+ if (nmap > 0)
+ retval = (struct alias_map *) bsearch (&item, map, nmap,
+ sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *,
+ const void *))
+ ) alias_compare);
+ else
+ retval = NULL;
+
+ /* We really found an alias. Return the value. */
+ if (retval != NULL)
+ {
+ result = retval->value;
+ break;
+ }
+
+ /* Perhaps we can find another alias file. */
+ added = 0;
+ while (added == 0 && locale_alias_path[0] != '\0')
+ {
+ const char *start;
+
+ while (locale_alias_path[0] == ':')
+ ++locale_alias_path;
+ start = locale_alias_path;
+
+ while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
+ ++locale_alias_path;
+
+ if (start < locale_alias_path)
+ added = read_alias_file (start, locale_alias_path - start);
+ }
+ }
+ while (added != 0);
+
+#ifdef _LIBC
+ __libc_lock_unlock (lock);
+#endif
+
+ return result;
+}
+
+static size_t
+internal_function
+read_alias_file (fname, fname_len)
+ const char *fname;
+ int fname_len;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ FILE *fp;
+ char *full_fname;
+ size_t added;
+ static const char aliasfile[] = "/locale.alias";
+
+ full_fname = (char *) alloca (fname_len + sizeof aliasfile);
+ ADD_BLOCK (block_list, full_fname);
+#ifdef HAVE_MEMPCPY
+ mempcpy (mempcpy (full_fname, fname, fname_len),
+ aliasfile, sizeof aliasfile);
+#else
+ memcpy (full_fname, fname, fname_len);
+ memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
+#endif
+
+ fp = fopen (full_fname, "r");
+ if (fp == NULL)
+ {
+ FREE_BLOCKS (block_list);
+ return 0;
+ }
+
+ added = 0;
+ while (!feof (fp))
+ {
+ /* It is a reasonable approach to use a fix buffer here because
+ a) we are only interested in the first two fields
+ b) these fields must be usable as file names and so must not
+ be that long
+ */
+ unsigned char buf[BUFSIZ];
+ unsigned char *alias;
+ unsigned char *value;
+ unsigned char *cp;
+
+ if (fgets (buf, sizeof buf, fp) == NULL)
+ /* EOF reached. */
+ break;
+
+ /* Possibly not the whole line fits into the buffer. Ignore
+ the rest of the line. */
+ if (strchr (buf, '\n') == NULL)
+ {
+ char altbuf[BUFSIZ];
+ do
+ if (fgets (altbuf, sizeof altbuf, fp) == NULL)
+ /* Make sure the inner loop will be left. The outer loop
+ will exit at the `feof' test. */
+ break;
+ while (strchr (altbuf, '\n') == NULL);
+ }
+
+ cp = buf;
+ /* Ignore leading white space. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ /* A leading '#' signals a comment line. */
+ if (cp[0] != '\0' && cp[0] != '#')
+ {
+ alias = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate alias name. */
+ if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ /* Now look for the beginning of the value. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ if (cp[0] != '\0')
+ {
+ size_t alias_len;
+ size_t value_len;
+
+ value = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate value. */
+ if (cp[0] == '\n')
+ {
+ /* This has to be done to make the following test
+ for the end of line possible. We are looking for
+ the terminating '\n' which do not overwrite here. */
+ *cp++ = '\0';
+ *cp = '\n';
+ }
+ else if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ if (nmap >= maxmap)
+ extend_alias_table ();
+
+ alias_len = strlen (alias) + 1;
+ value_len = strlen (value) + 1;
+
+ if (string_space_act + alias_len + value_len > string_space_max)
+ {
+ /* Increase size of memory pool. */
+ size_t new_size = (string_space_max
+ + (alias_len + value_len > 1024
+ ? alias_len + value_len : 1024));
+ char *new_pool = (char *) realloc (string_space, new_size);
+ if (new_pool == NULL)
+ {
+ FREE_BLOCKS (block_list);
+ return added;
+ }
+ string_space = new_pool;
+ string_space_max = new_size;
+ }
+
+ map[nmap].alias = memcpy (&string_space[string_space_act],
+ alias, alias_len);
+ string_space_act += alias_len;
+
+ map[nmap].value = memcpy (&string_space[string_space_act],
+ value, value_len);
+ string_space_act += value_len;
+
+ ++nmap;
+ ++added;
+ }
+ }
+ }
+
+ /* Should we test for ferror()? I think we have to silently ignore
+ errors. --drepper */
+ fclose (fp);
+
+ if (added > 0)
+ qsort (map, nmap, sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *, const void *))) alias_compare);
+
+ FREE_BLOCKS (block_list);
+ return added;
+}
+
+static void
+extend_alias_table ()
+{
+ size_t new_size;
+ struct alias_map *new_map;
+
+ new_size = maxmap == 0 ? 100 : 2 * maxmap;
+ new_map = (struct alias_map *) realloc (map, (new_size
+ * sizeof (struct alias_map)));
+ if (new_map == NULL)
+ /* Simply don't extend: we don't have any more core. */
+ return;
+
+ map = new_map;
+ maxmap = new_size;
+}
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ if (string_space != NULL)
+ free (string_space);
+ if (map != NULL)
+ free (map);
+}
+text_set_element (__libc_subfreeres, free_mem);
+#endif
+
+static int
+alias_compare (map1, map2)
+ const struct alias_map *map1;
+ const struct alias_map *map2;
+{
+#if defined _LIBC || defined HAVE_STRCASECMP
+ return strcasecmp (map1->alias, map2->alias);
+#else
+ const unsigned char *p1 = (const unsigned char *) map1->alias;
+ const unsigned char *p2 = (const unsigned char *) map2->alias;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ /* I know this seems to be odd but the tolower() function in
+ some systems libc cannot handle nonalpha characters. */
+ c1 = isupper (*p1) ? tolower (*p1) : *p1;
+ c2 = isupper (*p2) ? tolower (*p2) : *p2;
+ if (c1 == '\0')
+ break;
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ return c1 - c2;
+#endif
+}
+
+/* End of localealias.c */
+\f
+/* Begin of finddomain.c */
+
+/* Handle list of needed message catalogs
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
+
+#include <errno.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+#else
+# ifdef HAVE_MALLOC_H
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+#else
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "gettext.h"
+#endif
+
+/* List of already loaded domains. */
+static struct loaded_l10nfile *_nl_loaded_domains;
+
+/* Return a data structure describing the message catalog described by
+ the DOMAINNAME and CATEGORY parameters with respect to the currently
+ established bindings. */
+static struct loaded_l10nfile *
+internal_function
+_nl_find_domain (dirname, locale, domainname)
+ const char *dirname;
+ char *locale;
+ const char *domainname;
+{
+ struct loaded_l10nfile *retval;
+ const char *language;
+ const char *modifier;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *special;
+ const char *sponsor;
+ const char *revision;
+ const char *alias_value;
+ int mask;
+
+ /* LOCALE can consist of up to four recognized parts for the XPG syntax:
+
+ language[_territory[.codeset]][@modifier]
+
+ and six parts for the CEN syntax:
+
+ language[_territory][+audience][+special][,[sponsor][_revision]]
+
+ Beside the first part all of them are allowed to be missing. If
+ the full specified locale is not found, the less specific one are
+ looked for. The various parts will be stripped off according to
+ the following order:
+ (1) revision
+ (2) sponsor
+ (3) special
+ (4) codeset
+ (5) normalized codeset
+ (6) territory
+ (7) audience/modifier
+ */
+
+ /* If we have already tested for this locale entry there has to
+ be one data set in the list of loaded domains. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, 0, locale, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, domainname, 0);
+ if (retval != NULL)
+ {
+ /* We know something about this locale. */
+ int cnt;
+
+ if (retval->decided == 0)
+ _nl_load_domain (retval);
+
+ if (retval->data != NULL)
+ return retval;
+
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided == 0)
+ _nl_load_domain (retval->successor[cnt]);
+
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ return cnt >= 0 ? retval : NULL;
+ /* NOTREACHED */
+ }
+
+ /* See whether the locale value is an alias. If yes its value
+ *overwrites* the alias name. No test for the original value is
+ done. */
+ alias_value = _nl_expand_alias (locale);
+ if (alias_value != NULL)
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ locale = strdup (alias_value);
+ if (locale == NULL)
+ return NULL;
+#else
+ size_t len = strlen (alias_value) + 1;
+ locale = (char *) malloc (len);
+ if (locale == NULL)
+ return NULL;
+
+ memcpy (locale, alias_value, len);
+#endif
+ }
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_' and `@' if
+ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+ mask = _nl_explode_name (locale, &language, &modifier, &territory,
+ &codeset, &normalized_codeset, &special,
+ &sponsor, &revision);
+
+ /* Create all possible locale entries which might be interested in
+ generalization. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, mask, language, territory,
+ codeset, normalized_codeset, modifier, special,
+ sponsor, revision, domainname, 1);
+ if (retval == NULL)
+ /* This means we are out of core. */
+ return NULL;
+
+ if (retval->decided == 0)
+ _nl_load_domain (retval);
+ if (retval->data == NULL)
+ {
+ int cnt;
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided == 0)
+ _nl_load_domain (retval->successor[cnt]);
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ }
+
+ /* The room for an alias was dynamically allocated. Free it now. */
+ if (alias_value != NULL)
+ free (locale);
+
+ return retval;
+}
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ struct loaded_l10nfile *runp = _nl_loaded_domains;
+
+ while (runp != NULL)
+ {
+ struct loaded_l10nfile *here = runp;
+ if (runp->data != NULL)
+ _nl_unload_domain ((struct loaded_domain *) runp->data);
+ runp = runp->next;
+ free (here);
+ }
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
+
+/* End of finddomain.c */
+\f
+/* Begin of dcgettext.c */
+
+/* Implementation of the dcgettext(3) function.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. */
+
+#ifndef errno
+extern int errno;
+#endif
+#ifndef __set_errno
+# define __set_errno(val) errno = (val)
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+#else
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+#endif
+
+#ifdef _LIBC
+#else
+#endif
+
+/* Interrupt of dcgettext.c */
+\f
+/* Begin of hash-string.h */
+
+/* Implements a string hashing function.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc. */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(Args) Args
+# else
+# define PARAMS(Args) ()
+# endif
+#endif
+
+/* We assume to have `unsigned long int' value with at least 32 bits. */
+#define HASHWORDBITS 32
+
+/* Defines the so called `hashpjw' function by P.J. Weinberger
+ [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+ 1986, 1987 Bell Telephone Laboratories, Inc.] */
+static unsigned long hash_string PARAMS ((const char *__str_param));
+
+static inline unsigned long
+hash_string (str_param)
+ const char *str_param;
+{
+ unsigned long int hval, g;
+ const char *str = str_param;
+
+ /* Compute the hash value for the given string. */
+ hval = 0;
+ while (*str != '\0')
+ {
+ hval <<= 4;
+ hval += (unsigned long) *str++;
+ g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4));
+ if (g != 0)
+ {
+ hval ^= g >> (HASHWORDBITS - 8);
+ hval ^= g;
+ }
+ }
+ return hval;
+}
+
+/* End of hash-string.h */
+\f
+/* Resume of dcgettext.c */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define getcwd __getcwd
+# ifndef stpcpy
+# define stpcpy __stpcpy
+# endif
+#else
+# if !defined HAVE_GETCWD
+char *getwd ();
+# define getcwd(buf, max) getwd (buf)
+# else
+char *getcwd ();
+# endif
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+#endif
+
+/* Amount to increase buffer size by in each try. */
+#define PATH_INCR 32
+
+/* The following is from pathmax.h. */
+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
+ PATH_MAX but might cause redefinition warnings when sys/param.h is
+ later included (as on MORE/BSD 4.3). */
+#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
+#endif
+
+#ifndef _POSIX_PATH_MAX
+# define _POSIX_PATH_MAX 255
+#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 <sys/param.h>
+#endif
+
+#if !defined(PATH_MAX) && defined(MAXPATHLEN)
+# define PATH_MAX MAXPATHLEN
+#endif
+
+#ifndef PATH_MAX
+# define PATH_MAX _POSIX_PATH_MAX
+#endif
+
+/* XPG3 defines the result of `setlocale (category, NULL)' as:
+ ``Directs `setlocale()' to query `category' and return the current
+ setting of `local'.''
+ However it does not specify the exact format. And even worse: POSIX
+ defines this not at all. So we can use this feature only on selected
+ system (e.g. those using GNU C Library). */
+#ifdef _LIBC
+# define HAVE_LOCALE_NULL
+#endif
+
+/* Name of the default domain used for gettext(3) prior any call to
+ textdomain(3). The default value for this is "messages". */
+static const char _nl_default_default_domain[] = "messages";
+
+/* Value used as the default domain for gettext(3). */
+static const char *_nl_current_default_domain = _nl_default_default_domain;
+
+/* Contains the default location of the message catalogs. */
+static const char _nl_default_dirname[] = LOCALEDIR;
+
+/* List with bindings of specific domains created by bindtextdomain()
+ calls. */
+static struct binding *_nl_domain_bindings;
+
+/* Prototypes for local functions. */
+static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
+ const char *msgid)) internal_function;
+static const char *category_to_name PARAMS ((int category)) internal_function;
+static const char *guess_category_value PARAMS ((int category,
+ const char *categoryname))
+ internal_function;
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCGETTEXT __dcgettext
+#else
+# define DCGETTEXT dcgettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCGETTEXT (domainname, msgid, category)
+ const char *domainname;
+ const char *msgid;
+ int category;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ struct loaded_l10nfile *domain;
+ struct binding *binding;
+ const char *categoryname;
+ const char *categoryvalue;
+ char *dirname, *xdomainname;
+ char *single_locale;
+ char *retval;
+ int saved_errno = errno;
+
+ /* If no real MSGID is given return NULL. */
+ if (msgid == NULL)
+ return NULL;
+
+ /* If DOMAINNAME is NULL, we are interested in the default domain. If
+ CATEGORY is not LC_MESSAGES this might not make much sense but the
+ defintion left this undefined. */
+ if (domainname == NULL)
+ domainname = _nl_current_default_domain;
+
+ /* First find matching binding. */
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding == NULL)
+ dirname = (char *) _nl_default_dirname;
+ else if (binding->dirname[0] == '/')
+ dirname = binding->dirname;
+ else
+ {
+ /* We have a relative path. Make it absolute now. */
+ size_t dirname_len = strlen (binding->dirname) + 1;
+ size_t path_max;
+ char *ret;
+
+ path_max = (unsigned) PATH_MAX;
+ path_max += 2; /* The getcwd docs say to do this. */
+
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+
+ __set_errno (0);
+ while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
+ {
+ path_max += PATH_INCR;
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+ __set_errno (0);
+ }
+
+ if (ret == NULL)
+ {
+ /* We cannot get the current working directory. Don't signal an
+ error but simply return the default string. */
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return (char *) msgid;
+ }
+
+ stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
+ }
+
+ /* Now determine the symbolic name of CATEGORY and its value. */
+ categoryname = category_to_name (category);
+ categoryvalue = guess_category_value (category, categoryname);
+
+ xdomainname = (char *) alloca (strlen (categoryname)
+ + strlen (domainname) + 5);
+ ADD_BLOCK (block_list, xdomainname);
+
+ stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
+ domainname),
+ ".mo");
+
+ /* Creating working area. */
+ single_locale = (char *) alloca (strlen (categoryvalue) + 1);
+ ADD_BLOCK (block_list, single_locale);
+
+ /* Search for the given string. This is a loop because we perhaps
+ got an ordered list of languages to consider for th translation. */
+ while (1)
+ {
+ /* Make CATEGORYVALUE point to the next element of the list. */
+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
+ ++categoryvalue;
+ if (categoryvalue[0] == '\0')
+ {
+ /* The whole contents of CATEGORYVALUE has been searched but
+ no valid entry has been found. We solve this situation
+ by implicitly appending a "C" entry, i.e. no translation
+ will take place. */
+ single_locale[0] = 'C';
+ single_locale[1] = '\0';
+ }
+ else
+ {
+ char *cp = single_locale;
+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
+ *cp++ = *categoryvalue++;
+ *cp = '\0';
+ }
+
+ /* If the current locale value is C (or POSIX) we don't load a
+ domain. Return the MSGID. */
+ if (strcmp (single_locale, "C") == 0
+ || strcmp (single_locale, "POSIX") == 0)
+ {
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return (char *) msgid;
+ }
+
+ /* Find structure describing the message catalog matching the
+ DOMAINNAME and CATEGORY. */
+ domain = _nl_find_domain (dirname, single_locale, xdomainname);
+
+ if (domain != NULL)
+ {
+ retval = find_msg (domain, msgid);
+
+ if (retval == NULL)
+ {
+ int cnt;
+
+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
+ {
+ retval = find_msg (domain->successor[cnt], msgid);
+
+ if (retval != NULL)
+ break;
+ }
+ }
+
+ if (retval != NULL)
+ {
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return retval;
+ }
+ }
+ }
+ /* NOTREACHED */
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+#endif
+
+static char *
+internal_function
+find_msg (domain_file, msgid)
+ struct loaded_l10nfile *domain_file;
+ const char *msgid;
+{
+ size_t top, act, bottom;
+ struct loaded_domain *domain;
+
+ if (domain_file->decided == 0)
+ _nl_load_domain (domain_file);
+
+ if (domain_file->data == NULL)
+ return NULL;
+
+ domain = (struct loaded_domain *) domain_file->data;
+
+ /* Locate the MSGID and its translation. */
+ if (domain->hash_size > 2 && domain->hash_tab != NULL)
+ {
+ /* Use the hashing table. */
+ nls_uint32 len = strlen (msgid);
+ nls_uint32 hash_val = hash_string (msgid);
+ nls_uint32 idx = hash_val % domain->hash_size;
+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
+ nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
+
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
+ && strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset)) == 0)
+ return (char *) domain->data + W (domain->must_swap,
+ domain->trans_tab[nstr - 1].offset);
+
+ while (1)
+ {
+ if (idx >= domain->hash_size - incr)
+ idx -= domain->hash_size - incr;
+ else
+ idx += incr;
+
+ nstr = W (domain->must_swap, domain->hash_tab[idx]);
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
+ && strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset))
+ == 0)
+ return (char *) domain->data
+ + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
+ }
+ /* NOTREACHED */
+ }
+
+ /* Now we try the default method: binary search in the sorted
+ array of messages. */
+ bottom = 0;
+ top = domain->nstrings;
+ while (bottom < top)
+ {
+ int cmp_val;
+
+ act = (bottom + top) / 2;
+ cmp_val = strcmp (msgid, domain->data
+ + W (domain->must_swap,
+ domain->orig_tab[act].offset));
+ if (cmp_val < 0)
+ top = act;
+ else if (cmp_val > 0)
+ bottom = act + 1;
+ else
+ break;
+ }
+
+ /* If an translation is found return this. */
+ return bottom >= top ? NULL : (char *) domain->data
+ + W (domain->must_swap,
+ domain->trans_tab[act].offset);
+}
+
+/* Return string representation of locale CATEGORY. */
+static const char *
+internal_function
+category_to_name (category)
+ int category;
+{
+ const char *retval;
+
+ switch (category)
+ {
+#ifdef LC_COLLATE
+ case LC_COLLATE:
+ retval = "LC_COLLATE";
+ break;
+#endif
+#ifdef LC_CTYPE
+ case LC_CTYPE:
+ retval = "LC_CTYPE";
+ break;
+#endif
+#ifdef LC_MONETARY
+ case LC_MONETARY:
+ retval = "LC_MONETARY";
+ break;
+#endif
+#ifdef LC_NUMERIC
+ case LC_NUMERIC:
+ retval = "LC_NUMERIC";
+ break;
+#endif
+#ifdef LC_TIME
+ case LC_TIME:
+ retval = "LC_TIME";
+ break;
+#endif
+#ifdef LC_MESSAGES
+ case LC_MESSAGES:
+ retval = "LC_MESSAGES";
+ break;
+#endif
+#ifdef LC_RESPONSE
+ case LC_RESPONSE:
+ retval = "LC_RESPONSE";
+ break;
+#endif
+#ifdef LC_ALL
+ case LC_ALL:
+ /* This might not make sense but is perhaps better than any other
+ value. */
+ retval = "LC_ALL";
+ break;
+#endif
+ default:
+ /* If you have a better idea for a default value let me know. */
+ retval = "LC_XXX";
+ }
+
+ return retval;
+}
+
+/* Guess value of current locale from value of the environment variables. */
+static const char *
+internal_function
+guess_category_value (category, categoryname)
+ int category;
+ const char *categoryname;
+{
+ const char *retval;
+
+ /* The highest priority value is the `LANGUAGE' environment
+ variable. This is a GNU extension. */
+ retval = getenv ("LANGUAGE");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* `LANGUAGE' is not set. So we have to proceed with the POSIX
+ methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some
+ systems this can be done by the `setlocale' function itself. */
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+ return setlocale (category, NULL);
+#else
+ /* Setting of LC_ALL overwrites all other. */
+ retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* We use C as the default domain. POSIX says this is implementation
+ defined. */
+ return "C";
+#endif
+}
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
+
+#ifdef _LIBC
+/* If we want to free all resources we have to do some work at
+ program's end. */
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ struct binding *runp;
+
+ for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next)
+ {
+ free (runp->domainname);
+ if (runp->dirname != _nl_default_dirname)
+ /* Yes, this is a pointer comparison. */
+ free (runp->dirname);
+ }
+
+ if (_nl_current_default_domain != _nl_default_default_domain)
+ /* Yes, again a pointer comparison. */
+ free ((char *) _nl_current_default_domain);
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
+
+/* End of dcgettext.c */
+\f
+/* Begin of bindtextdom.c */
+
+/* Implementation of the bindtextdomain(3) function
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. */
+
+#if defined STDC_HEADERS || defined _LIBC
+#else
+# ifdef HAVE_MALLOC_H
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+#else
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+
+#ifdef _LIBC
+#else
+#endif
+
+/* Contains the default location of the message catalogs. */
+static const char _nl_default_dirname[];
+
+/* List with bindings of specific domains. */
+static struct binding *_nl_domain_bindings;
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define BINDTEXTDOMAIN __bindtextdomain
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define BINDTEXTDOMAIN bindtextdomain__
+#endif
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+static char *
+BINDTEXTDOMAIN (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ struct binding *binding;
+
+ /* Some sanity checks. */
+ if (domainname == NULL || domainname[0] == '\0')
+ return NULL;
+
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (dirname == NULL)
+ /* The current binding has be to returned. */
+ return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
+
+ if (binding != NULL)
+ {
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ if (strcmp (dirname, binding->dirname) != 0)
+ {
+ char *new_dirname;
+
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ new_dirname = (char *) _nl_default_dirname;
+ else
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ new_dirname = strdup (dirname);
+ if (new_dirname == NULL)
+ return NULL;
+#else
+ size_t len = strlen (dirname) + 1;
+ new_dirname = (char *) malloc (len);
+ if (new_dirname == NULL)
+ return NULL;
+
+ memcpy (new_dirname, dirname, len);
+#endif
+ }
+
+ if (binding->dirname != _nl_default_dirname)
+ free (binding->dirname);
+
+ binding->dirname = new_dirname;
+ }
+ }
+ else
+ {
+ /* We have to create a new binding. */
+#if !defined _LIBC && !defined HAVE_STRDUP
+ size_t len;
+#endif
+ struct binding *new_binding =
+ (struct binding *) malloc (sizeof (*new_binding));
+
+ if (new_binding == NULL)
+ return NULL;
+
+#if defined _LIBC || defined HAVE_STRDUP
+ new_binding->domainname = strdup (domainname);
+ if (new_binding->domainname == NULL)
+ return NULL;
+#else
+ len = strlen (domainname) + 1;
+ new_binding->domainname = (char *) malloc (len);
+ if (new_binding->domainname == NULL)
+ return NULL;
+ memcpy (new_binding->domainname, domainname, len);
+#endif
+
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ new_binding->dirname = (char *) _nl_default_dirname;
+ else
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ new_binding->dirname = strdup (dirname);
+ if (new_binding->dirname == NULL)
+ return NULL;
+#else
+ len = strlen (dirname) + 1;
+ new_binding->dirname = (char *) malloc (len);
+ if (new_binding->dirname == NULL)
+ return NULL;
+ memcpy (new_binding->dirname, dirname, len);
+#endif
+ }
+
+ /* Now enqueue it. */
+ if (_nl_domain_bindings == NULL
+ || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
+ {
+ new_binding->next = _nl_domain_bindings;
+ _nl_domain_bindings = new_binding;
+ }
+ else
+ {
+ binding = _nl_domain_bindings;
+ while (binding->next != NULL
+ && strcmp (domainname, binding->next->domainname) > 0)
+ binding = binding->next;
+
+ new_binding->next = binding->next;
+ binding->next = new_binding;
+ }
+
+ binding = new_binding;
+ }
+
+ return binding->dirname;
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+#endif
+
+/* End of bindtextdom.c */
+\f
+/* Begin of dgettext.c */
+
+/* Implementation of the dgettext(3) function
+ Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. */
+
+#if defined HAVE_LOCALE_H || defined _LIBC
+# include <locale.h>
+#endif
+
+#ifdef _LIBC
+#else
+#endif
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DGETTEXT __dgettext
+# define DCGETTEXT __dcgettext
+#else
+# define DGETTEXT dgettext__
+# define DCGETTEXT dcgettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale. */
+static char *
+DGETTEXT (domainname, msgid)
+ const char *domainname;
+ const char *msgid;
+{
+ return DCGETTEXT (domainname, msgid, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+#endif
+
+/* End of dgettext.c */
+\f
+/* Begin of gettext.c */
+
+/* Implementation of gettext(3) function.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc. */
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# ifdef STDC_HEADERS
+# include <stdlib.h> /* Just for NULL. */
+# else
+# ifdef HAVE_STRING_H
+# else
+# define NULL ((void *) 0)
+# endif
+# endif
+#endif
+
+#ifdef _LIBC
+#else
+#endif
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define GETTEXT __gettext
+# define DGETTEXT __dgettext
+#else
+# define GETTEXT gettext__
+# define DGETTEXT dgettext__
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+static char *
+GETTEXT (msgid)
+ const char *msgid;
+{
+ return DGETTEXT (NULL, msgid);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+#endif
+
+/* End of gettext.c */
+\f
+/* Begin of textdomain.c */
+
+/* Implementation of the textdomain(3) function.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
+
+#if defined STDC_HEADERS || defined _LIBC
+#endif
+
+#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
+#else
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+
+#ifdef _LIBC
+#else
+#endif
+
+/* Name of the default text domain. */
+static const char _nl_default_default_domain[];
+
+/* Default text domain in which entries for gettext(3) are to be found. */
+static const char *_nl_current_default_domain;
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define TEXTDOMAIN __textdomain
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define TEXTDOMAIN textdomain__
+#endif
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+static char *
+TEXTDOMAIN (domainname)
+ const char *domainname;
+{
+ char *old;
+
+ /* A NULL pointer requests the current setting. */
+ if (domainname == NULL)
+ return (char *) _nl_current_default_domain;
+
+ old = (char *) _nl_current_default_domain;
+
+ /* If domain name is the null string set to default domain "messages". */
+ if (domainname[0] == '\0'
+ || strcmp (domainname, _nl_default_default_domain) == 0)
+ _nl_current_default_domain = _nl_default_default_domain;
+ else
+ {
+ /* If the following malloc fails `_nl_current_default_domain'
+ will be NULL. This value will be returned and so signals we
+ are out of core. */
+#if defined _LIBC || defined HAVE_STRDUP
+ _nl_current_default_domain = strdup (domainname);
+#else
+ size_t len = strlen (domainname) + 1;
+ char *cp = (char *) malloc (len);
+ if (cp != NULL)
+ memcpy (cp, domainname, len);
+ _nl_current_default_domain = cp;
+#endif
+ }
+
+ if (old != _nl_default_default_domain)
+ free (old);
+
+ return (char *) _nl_current_default_domain;
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+#endif
+
+/* End of textdomain.c */
+\f
+/* Begin of intl-compat.c */
+
+/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
+ Library.
+ Copyright (C) 1995 Software Foundation, Inc. */
+
+#undef gettext
+#undef dgettext
+#undef dcgettext
+#undef textdomain
+#undef bindtextdomain
+
+char *
+bindtextdomain (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ return bindtextdomain__ (domainname, dirname);
+}
+
+char *
+dcgettext (domainname, msgid, category)
+ const char *domainname;
+ const char *msgid;
+ int category;
+{
+ return dcgettext__ (domainname, msgid, category);
+}
+
+char *
+dgettext (domainname, msgid)
+ const char *domainname;
+ const char *msgid;
+{
+ return dgettext__ (domainname, msgid);
+}
+
+char *
+gettext (msgid)
+ const char *msgid;
+{
+ return gettext__ (msgid);
+}
+
+char *
+textdomain (domainname)
+ const char *domainname;
+{
+ return textdomain__ (domainname);
+}
+
+/* End of intl-compat.c */
+/* Begin of libgettext.h */
+
/* Message catalogs for internationalization.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
# include <locale.h>
#endif
-
#ifdef __cplusplus
extern "C" {
#endif
-/* @@ end of prolog @@ */
-
#ifndef PARAMS
# if __STDC__ || defined __cplusplus
# define PARAMS(args) args
# define LC_MESSAGES (-1)
#endif
-
/* Declarations for gettext-using-catgets interface. Derived from
Jim Meyering's libintl.h. */
struct _msg_ent
int _msg_number;
};
-
#if HAVE_CATGETS
/* These two variables are defined in the automatically by po-to-tbl.sed
generated file `cat-id-tbl.c'. */
extern int _msg_tbl_length;
#endif
-
/* For automatical extraction of messages sometimes no real
translation is needed. Instead the string itself is the result. */
#define gettext_noop(Str) (Str)
LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */
extern char *gettext PARAMS ((const char *__msgid));
-extern char *gettext__ PARAMS ((const char *__msgid));
+static char *gettext__ PARAMS ((const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current
LC_MESSAGES locale. */
extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
-extern char *dgettext__ PARAMS ((const char *__domainname,
+static char *dgettext__ PARAMS ((const char *__domainname,
const char *__msgid));
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
extern char *dcgettext__ PARAMS ((const char *__domainname,
const char *__msgid, int __category));
-
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
extern char *textdomain PARAMS ((const char *__domainname));
-extern char *textdomain__ PARAMS ((const char *__domainname));
+static char *textdomain__ PARAMS ((const char *__domainname));
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */
extern char *bindtextdomain PARAMS ((const char *__domainname,
const char *__dirname));
-extern char *bindtextdomain__ PARAMS ((const char *__domainname,
+static char *bindtextdomain__ PARAMS ((const char *__domainname,
const char *__dirname));
#if ENABLE_NLS
#endif
-/* @@ begin of epilog @@ */
-
#ifdef __cplusplus
}
#endif
#endif
+
+/* End of libgettext.h */
--- /dev/null
+/* Work around bug on some systems where malloc (0) fails.
+ Copyright (C) 1997 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 Jim Meyering */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+#undef malloc
+
+#include <sys/types.h>
+
+char *malloc ();
+
+/* Allocate an N-byte block of memory from the heap.
+ If N is zero, allocate a 1-byte block. */
+
+char *
+rpl_malloc (n)
+ size_t n;
+{
+ if (n == 0)
+ n = 1;
+ return malloc (n);
+}
--- /dev/null
+/* Work around bug on some systems where realloc (NULL, 0) fails.
+ Copyright (C) 1997 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 Jim Meyering */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+#undef realloc
+
+#include <sys/types.h>
+
+char *malloc ();
+char *realloc ();
+
+/* 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. */
+
+char *
+rpl_realloc (p, n)
+ char *p;
+ size_t n;
+{
+ if (n == 0)
+ n = 1;
+ if (p == 0)
+ return malloc (n);
+ return realloc (p, n);
+}
# Find the correct PATH separator. Usually this is `:', but
# DJGPP uses `;' like DOS.
-if test "X${PATH_SEPARATOR+set}" != "Xset"; then
+if test "X${PATH_SEPARATOR+set}" != Xset; then
UNAME=${UNAME-`uname 2>/dev/null`}
case X$UNAME in
*-DOS) PATH_SEPARATOR=';' ;;
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
-if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-if test "X${echo_test_string+set}" != "Xset"; then
+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, ...
# Constants:
PROGRAM=ltconfig
PACKAGE=libtool
-VERSION=1.3.2
-TIMESTAMP=" (1.385.2.150 1999/05/26 00:28:32)"
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5'
+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."
default_ofile=libtool
can_build_shared=yes
enable_shared=yes
-# All known linkers require a `.a' archive for static linking.
+# 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
ac_ext=c
objext=o
libext=a
+exeext=
cache_file=
old_AR="$AR"
# 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 "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+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"
# 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 "${COLLECT_NAMES+set}" != set; then
+ if test "X${COLLECT_NAMES+set}" != Xset; then
COLLECT_NAMES=
export COLLECT_NAMES
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:579: checking whether we are using GNU C" >&5
+ echo "$progname:581: checking whether we are using GNU C" >&5
$rm conftest.c
cat > conftest.c <<EOF
yes;
#endif
EOF
- if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:587: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
with_gcc=yes
fi
$rm conftest.c
echo $ac_n "checking for object suffix... $ac_c" 1>&6
$rm conftest*
echo 'int i = 1;' > conftest.c
-echo "$progname:601: checking for object suffix" >& 5
-if { (eval echo $progname:602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
+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
$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=
link_static_flag='-static'
case "$host_os" in
- beos* | irix5* | irix6* | osf3* | osf4*)
+ beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
aix*)
# We can build DLLs from non-PIC.
;;
- osf3* | osf4*)
+ osf3* | osf4* | osf5*)
# All OSF/1 code is PIC.
wl='-Wl,'
link_static_flag='-non_shared'
echo "int some_variable = 0;" > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
- echo "$progname:742: checking if $compiler PIC flag $pic_flag works" >&5
- if { (eval echo $progname:743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
+ 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
chmod -w .
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -o out/conftest2.o"
-echo "$progname:795: checking if $compiler supports -c -o file.o" >&5
-if { (eval echo $progname:796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
+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
echo "int some_variable = 0;" > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -c -o conftest.lo"
- echo "$progname:828: checking if $compiler supports -c -o file.lo" >&5
-if { (eval echo $progname:829: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
+ 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
echo "int some_variable = 0;" > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
- echo "$progname:880: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
- if { (eval echo $progname:881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+ 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
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
-echo "$progname:924: checking if $compiler static flag $link_static_flag works" >&5
-if { (eval echo $progname:925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+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
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:957: checking for ld used by GCC" >&5
+ 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.
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld... $ac_c" 1>&6
- echo "$progname:981: checking for GNU ld" >&5
+ echo "$progname:1015: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
- echo "$progname:984: checking for non-GNU ld" >&5
+ echo "$progname:1018: checking for non-GNU ld" >&5
fi
if test -z "$LD"; then
hardcode_shlibpath_var=unsupported
runpath_var=
always_export_symbols=no
-export_symbols_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+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=
# 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='rm -f $objdir/$soname-ltdll.c~
- sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
- (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~
+ 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~
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'
+ old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
;;
netbsd*)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ 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
fi
;;
- solaris*)
+ solaris* | sysv5*)
if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
cat <<EOF 1>&2
whole_archive_flag_spec=
;;
*)
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ # 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
old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
;;
- osf3* | osf4*)
+ 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'
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
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'
;;
sysv4*MP*)
- if test -d /usr/nec ;then
- # archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs'
- archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs'
+ 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
- runpath_var=LD_RUN_PATH
hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
+ 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
;;
*)
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
- echo "$progname:1557: checking if global_symbol_pipe works" >&5
- if { (eval echo $progname:1558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
+ echo "$progname:1635: checking if global_symbol_pipe works" >&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:1561: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+ 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
save_CFLAGS="$CFLAGS"
LIBS="conftstm.$objext"
CFLAGS="$CFLAGS$no_builtin_flag"
- if { (eval echo $progname:1613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ 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
bsdi4*)
version_type=linux
- library_names_spec='${libname}.so$major ${libname}.so'
- soname_spec='${libname}.so'
+ 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 32-bit LSB shared object'
+ 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
dynamic_linker='Win32 ld.exe'
deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
file_magic_cmd='${OBJDUMP} -f'
- need_lib_prefix=no
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
lt_cv_dlopen="LoadLibrary"
need_version=yes
;;
esac
- finish_cmds='PATH="\$PATH:/sbin" OBJFORMAT="'"$objformat"'" ldconfig -m $libdir'
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
- library_names_spec='${libname}${release}.so$versuffix ${libname}.so'
+ 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
;;
*-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
*) libsuff= shlibsuff= libmagic=never-match;;
esac
- # this will be overridden with pass_all, but let us keep it just in case
- deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
;;
esac
shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
shlibpath_var=LIBPATH
;;
-osf3* | osf4*)
+osf3* | osf4* | osf5*)
version_type=osf
need_version=no
soname_spec='${libname}${release}.so'
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:2123: checking for dlopen in -ldl" >&5
+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
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2131 "ltconfig"
+#line 2220 "ltconfig"
/* 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() {
dlopen()
; return 0; }
EOF
-if { (eval echo $progname:2141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:2233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "$progname:2160: checking for dlopen" >&5
+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 <<EOF
-#line 2165 "ltconfig"
+#line 2257 "ltconfig"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dlopen(); below. */
#include <assert.h>
/* 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() {
; return 0; }
EOF
-if { (eval echo $progname:2187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+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
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
-echo "$progname:2204: checking for dld_link in -ldld" >&5
+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
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2212 "ltconfig"
+#line 2307 "ltconfig"
/* 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 dld_link();
int main() {
dld_link()
; return 0; }
EOF
-if { (eval echo $progname:2222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "$progname:2241: checking for shl_load" >&5
+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 <<EOF
-#line 2246 "ltconfig"
+#line 2344 "ltconfig"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shl_load(); below. */
#include <assert.h>
/* 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() {
; return 0; }
EOF
-if { (eval echo $progname:2268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+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
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "$progname:2286: checking for shl_load in -ldld" >&5
+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
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2294 "ltconfig"
+#line 2395 "ltconfig"
#include "confdefs.h"
/* 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() {
shl_load()
; return 0; }
EOF
-if { (eval echo $progname:2305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
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:2348: checking for $ac_hdr" >&5
+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 <<EOF
-#line 2353 "ltconfig"
+#line 2457 "ltconfig"
#include <$ac_hdr>
int fnord = 0;
EOF
-ac_try="$ac_compile conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo $progname:2358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+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*
LIBS="$lt_cv_dlopen_libs $LIBS"
echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:2386: checking whether a program can dlopen itself" >&5
+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
lt_cv_dlopen_self=cross
else
cat > conftest.c <<EOF
-#line 2394 "ltconfig"
+#line 2498 "ltconfig"
#if HAVE_DLFCN_H
#include <dlfcn.h>
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) exit(0); } exit(1); }
+ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
EOF
-if { (eval echo $progname:2440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+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
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:2459: checking whether a statically linked program can dlopen itself" >&5
+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
lt_cv_dlopen_self_static=cross
else
cat > conftest.c <<EOF
-#line 2467 "ltconfig"
+#line 2571 "ltconfig"
#if HAVE_DLFCN_H
#include <dlfcn.h>
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) exit(0); } exit(1); }
+ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
EOF
-if { (eval echo $progname:2513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+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
# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
#
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
-if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
### BEGIN LIBTOOL CONFIG
EOF
# Old archive suffix (normally "a").
libext="$libext"
+# Executable file suffix (normally "").
+exeext="$exeext"
+
# Additional compiler flags for building library objects.
pic_flag=$pic_flag
# 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 "${COLLECT_NAMES+set}" != set; then
+if test "X${COLLECT_NAMES+set}" != Xset; then
COLLECT_NAMES=
export COLLECT_NAMES
fi
esac
# Append the ltmain.sh script.
- cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
+ 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"
;;
# Constants.
PROGRAM=ltmain.sh
PACKAGE=libtool
-VERSION=1.3.2
-TIMESTAMP=" (1.385.2.150 1999/05/26 00:28:32)"
+VERSION=1.3.4
+TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)"
default_mode=
help="Try \`$progname --help' for more information."
Xsed='sed -e 1s/^X//'
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
SP2NL='tr \040 \012'
-NL2SP='tr \012 \040'
+NL2SP='tr \015\012 \040\040'
# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
fbsd_hideous_sh_bug=$base_compile
# All platforms use -DPIC, to notify preprocessed assembler code.
- command="$base_compile $pic_flag -DPIC $srcfile"
+ command="$base_compile $srcfile $pic_flag -DPIC"
if test "$build_old_libs" = yes; then
lo_libobj="$libobj"
dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
exit $error
fi
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
+ libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
# Now arrange that obj and lo_libobj become the same file
- $show "$LN_S $obj $lo_libobj"
- if $run $LN_S $obj $lo_libobj; then
+ $show "(cd $xdir && $LN_S $baseobj $libobj)"
+ if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
exit 0
else
error=$?
# libtool link mode
link)
modename="$modename: link"
- C_compiler="$CC" # save it, to compile generated C sources
- CC="$nonopt"
case "$host" in
*-*-cygwin* | *-*-mingw* | *-*-os2*)
# It is impossible to link a dll without this setting, and
# #undef WIN32_LEAN_AND_MEAN
# #include <stdio.h>
#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
# #ifdef __cplusplus
# extern "C" {
# #endif
# }
# #endif
#
+# #ifdef __CYGWIN__
# #include <cygwin/cygwin_dll.h>
# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
# HINSTANCE __hDllInstance_base;
#
# BOOL APIENTRY
allow_undefined=yes
;;
esac
- compile_command="$CC"
- finalize_command="$CC"
+ compile_command="$nonopt"
+ finalize_command="$nonopt"
compile_rpath=
finalize_rpath=
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
fi
if test -n "$dependency_libs"; then
- # Extract -R from dependency_libs
+ # Extract -R and -L from dependency_libs
temp_deplibs=
for deplib in $dependency_libs; do
case "$deplib" in
-L*) case "$compile_command $temp_deplibs " in
*" $deplib "*) ;;
*) temp_deplibs="$temp_deplibs $deplib";;
- esac;;
+ esac
+ temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ case " $lib_search_path " in
+ *" $temp_dir "*) ;;
+ *) lib_search_path="$lib_search_path $temp_dir";;
+ esac
+ ;;
*) temp_deplibs="$temp_deplibs $deplib";;
esac
done
int main() { return 0; }
EOF
$rm conftest
- $C_compiler -o conftest conftest.c $deplibs
+ $CC -o conftest conftest.c $deplibs
if test $? -eq 0 ; then
ldd_output=`ldd conftest`
for i in $deplibs; do
# If $name is empty we are operating on a -L argument.
if test "$name" != "" ; then
$rm conftest
- $C_compiler -o conftest conftest.c $i
+ $CC -o conftest conftest.c $i
# Did it work?
if test $? -eq 0 ; then
ldd_output=`ldd conftest`
done
# Ensure that we have .o objects for linkers which dislike .lo
- # (e.g. aix) incase we are running --disable-static
+ # (e.g. aix) in case we are running --disable-static
for obj in $libobjs; do
- oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"`
- if test ! -f $oldobj; then
- $show "${LN_S} $obj $oldobj"
- $run ${LN_S} $obj $oldobj || exit $?
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
+ if test ! -f $xdir/$oldobj; then
+ $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
+ $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
fi
done
# Use standard objects if they are pic
test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- if test -n "$whole_archive_flag_spec"; then
- if test -n "$convenience"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- fi
- else
- gentop="$output_objdir/${outputname}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "mkdir $gentop"
- $run mkdir "$gentop"
- status=$?
- if test $status -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- for xlib in $convenience; do
- # Extract the objects.
- case "$xlib" in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "mkdir $xdir"
- $run mkdir "$xdir"
- status=$?
- if test $status -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
- libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
- done
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- linkopts="$linkopts $flag"
- fi
-
# Prepare the list of exported symbols
if test -z "$export_symbols"; then
if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
$run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
fi
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${outputname}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
+ for xlib in $convenience; do
+ # Extract the objects.
+ case "$xlib" in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
+
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linkopts="$linkopts $flag"
+ fi
+
# Do each of the archive commands.
if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
eval cmds=\"$archive_expsym_cmds\"
# Delete the old objects.
$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
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${obj}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
+ for xlib in $convenience; do
+ # Extract the objects.
+ case "$xlib" in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
+
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
+ fi
+
# Create the old-style object.
- reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
+ reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
output="$obj"
eval cmds=\"$reload_cmds\"
IFS="$save_ifs"
# Exit if we aren't doing a library object file.
- test -z "$libobj" && exit 0
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit 0
+ fi
if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${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"
if test -n "$pic_flag"; then
# Only do commands if we really have different PIC objects.
- reload_objs="$libobjs"
+ reload_objs="$libobjs $reload_conv_objs"
output="$libobj"
eval cmds=\"$reload_cmds\"
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
# Just create a symlink.
$show $rm $libobj
$run $rm $libobj
- $show "$LN_S $obj $libobj"
- $run $LN_S $obj $libobj || exit $?
+ xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$libobj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
+ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
+ $show "(cd $xdir && $LN_S $oldobj $baseobj)"
+ $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
+ fi
+
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
fi
exit 0
fi
dlsyms=
- if test -n "$dlfiles$dlprefiles" || test "$dlself" = yes; then
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
if test -n "$NM" && test -n "$global_symbol_pipe"; then
dlsyms="${outputname}S.c"
else
# 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*)
+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)\r
case "$compile_command " in
*" -static "*) ;;
*) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
+ esac;;
+ *-*-hpux*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DPIC";;
esac
esac
# Now compile the dynamic symbol file.
- $show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
- $run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+ $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+ $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
# Clean up the generated files.
$show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi
+if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
relink_command=\"$relink_command\"
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
eval cmds=\"$old_archive_from_new_cmds\"
else
- # Ensure that we have .o objects in place incase we decided
+ # Ensure that we have .o objects in place in case we decided
# not to build a shared library, and have fallen back to building
# static libs even though --disable-static was passed!
for oldobj in $oldobjs; do
if test ! -f $oldobj; then
- obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"`
- $show "${LN_S} $obj $oldobj"
- $run ${LN_S} $obj $oldobj || exit $?
+ xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$oldobj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
+ obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
+ $show "(cd $xdir && ${LN_S} $obj $baseobj)"
+ $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
fi
done
# Install the shared library and build the symlinks.
$show "$install_prog $dir/$realname $destdir/$realname"
$run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
- test "X$dlname" = "X$realname" && dlname=
if test $# -gt 0; then
# Delete the old symlinks, and create new ones.
for linkname
do
- test "X$dlname" = "X$linkname" && dlname=
if test "$linkname" != "$realname"; then
$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
done
fi
- if test -n "$dlname"; then
- # Install the dynamically-loadable library.
- $show "$install_prog $dir/$dlname $destdir/$dlname"
- $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $?
- fi
-
# Do each command in the postinstall commands.
lib="$destdir/$realname"
eval cmds=\"$postinstall_cmds\"
done
if test -z "$run"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
# Restore saved enviroment variables
if test "${save_LC_ALL+set}" = set; then
exit 1
else
# Display what would be done.
- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
- $echo "export $shlibpath_var"
+ if test -n "$shlibpath_var"; then
+ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+ $echo "export $shlibpath_var"
+ fi
$echo "$cmd$args"
exit 0
fi
# Delete the libtool libraries and symlinks.
for n in $library_names; do
rmfiles="$rmfiles $dir/$n"
- test "X$n" = "X$dlname" && dlname=
done
- test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname"
test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
$show "$rm $rmfiles"
+1999-12-14 François Pinard <pinard@iro.umontreal.ca>
+
+ * Makefile.am: Adapt to the gettext scheme used in wdiff.
+
+ * gettext.m4: New file. Have getcwd checked at configuration time.
+ * nls.m4: Deleted.
+\f
1998-10-20 François Pinard <pinard@iro.umontreal.ca>
* Makefile.am (AUTOMAKE_OPTIONS): Add --gnits.
AUTOMAKE_OPTIONS = gnits
-EXTRA_DIST = atconfig.m4 malloc.m4 microsoft.m4 nls.m4 realloc.m4
+EXTRA_DIST = atconfig.m4 gettext.m4 malloc.m4 microsoft.m4 realloc.m4
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_MOFILES = @ALL_MOFILES@
+ALL_POFILES = @ALL_POFILES@
AS = @AS@
AT_TESTPATH = @AT_TESTPATH@
-AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
-LD = @LD@
LEX = @LEX@
+LIBOBJS = @LIBOBJS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
+MOFILES = @MOFILES@
MSGFMT = @MSGFMT@
-NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
AUTOMAKE_OPTIONS = gnits
-EXTRA_DIST = atconfig.m4 malloc.m4 microsoft.m4 nls.m4 realloc.m4
+EXTRA_DIST = atconfig.m4 gettext.m4 malloc.m4 microsoft.m4 realloc.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
-# Select gettext and choose translations to install.
+# Select gettext and choose translations to install. -*- shell-script -*-
# François Pinard <pinard@iro.umontreal.ca>, 1998.
+# Here is a check list about how one could use this macro.
+# - In the build directory, execute `make distclean'.
+# - Rename `po/' to `i18n/'.
+# - Recursively delete directory `intl/'.
+# - Add the following files:
+# . `i18n/Makefile.am'
+# . `m4/gettext.m4'
+# . `lib/gettext.c'
+# . `lib/gettext.h'.
+# - In top level `configure.in':
+# . use `fp_WITH_GETTEXT'.
+# . delete `AM_GNU_GETTEXT' and any `AC_LINK_FILES' for $nls variables.
+# . add `i18n/Makefile' to `AC_OUTPUT'.
+# . delete `intl/Makefile' and `po/Makefile.in' from `AC_OUTPUT'.
+# - In top level `Makefile.am':
+# . add `i18n' in SUBDIRS, and remove `intl' and `po'.
+# . define `POTFILES' (peek at previous `i18n/POTFILES.in).
+# . add `$(srcdir)/stamp-pot' to `all-local'.
+# . add rule for `$(srcdir)/stamp-pot'.
+# - In top level `acconfig.h':
+# . document `HAVE_DCGETTEXT' and `LOCALEDIR'.
+# . delete documentation for `HAVE_CATGETS'.
+# - In `lib/Makefile.am':
+# . add `gettext.c' to `EXTRA_DIST'.
+# . add `gettext.h' to `noinstl_HEADERS'.
+# . add definitions for `localdir' and `aliaspath'.
+# . add special rules for `gettext.o' and `gettext._o'.
+# - In `m4/Makefile.am':
+# . add `gettext.m4' to `EXTRA_DIST'.
+# - In `src/Makefile.am':
+# . delete `-I/..intl' from `INCLUDES'.
+# . delete `@INTLLIBS@' from `LDADD'.
+# . delete `localedir' and its references.
+# - Clean up directory `i18n/':
+# . delete `Makefile.in.in' and `POTFILES.in'.
+# . delete all `*.gmo' files, `cat-id-tbl.c' and `stamp-cat-id'.
+# - In the top level distribution directory:
+# . run `aclocal -I m4'.
+# . run `autoreconf'.
+# - In the build directory:
+# . run `$top_srcdir/configure'.
+# . run `make check'.
+
AC_DEFUN(fp_WITH_GETTEXT, [
AC_MSG_CHECKING(whether NLS is wanted)
fi
AC_CHECK_HEADERS(locale.h)
- AC_CHECK_FUNCS(setlocale)
+ AC_CHECK_FUNCS(getcwd setlocale stpcpy)
AM_LC_MESSAGES
if test -z "$ALL_LINGUAS"; then
AC_MSG_RESULT($ac_print)
fi
+ if test "x$prefix" = xNONE; then
+ AC_DEFINE_UNQUOTED(LOCALEDIR, "$ac_default_prefix/share/locale")
+ else
+ AC_DEFINE_UNQUOTED(LOCALEDIR, "$prefix/share/locale")
+ fi
fi])
+++ /dev/null
-# Makefile for program source directory in GNU NLS utilities package.
-# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file file be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = $(prefix)/@DATADIRNAME@
-localedir = $(datadir)/locale
-gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = $(prefix)/share/gettext/po
-subdir = po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
-
-CC = @CC@
-GENCAT = @GENCAT@
-GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
-MSGMERGE = PATH=../src:$$PATH msgmerge
-
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-
-INCLUDES = -I.. -I$(top_srcdir)/intl
-
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-
-SOURCES = cat-id-tbl.c
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
-stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-INSTOBJEXT = @INSTOBJEXT@
-
-.SUFFIXES:
-.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
-
-.c.o:
- $(COMPILE) $<
-
-.po.pox:
- $(MAKE) $(PACKAGE).pot
- $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
-
-.po.mo:
- $(MSGFMT) -o $@ $<
-
-.po.gmo:
- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
- && rm -f $$file && $(GMSGFMT) -o $$file $<
-
-.po.cat:
- sed -f ../intl/po2msg.sed < $< > $*.msg \
- && rm -f $@ && $(GENCAT) $@ $*.msg
-
-
-all: all-@USE_NLS@
-
-all-yes: cat-id-tbl.c $(CATALOGS)
-all-no:
-
-$(srcdir)/$(PACKAGE).pot: $(POTFILES)
- $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
- --add-comments --keyword=_ --keyword=N_ \
- --files-from=$(srcdir)/POTFILES.in \
- && test ! -f $(PACKAGE).po \
- || ( rm -f $(srcdir)/$(PACKAGE).pot \
- && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
-
-$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
-$(srcdir)/stamp-cat-id: $(PACKAGE).pot
- rm -f cat-id-tbl.tmp
- sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
- | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
- if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
- rm cat-id-tbl.tmp; \
- else \
- echo cat-id-tbl.c changed; \
- rm -f $(srcdir)/cat-id-tbl.c; \
- mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
- fi
- cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
-install-data-no: all
-install-data-yes: all
- if test -r "$(MKINSTALLDIRS)"; then \
- $(MKINSTALLDIRS) $(datadir); \
- else \
- $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
- fi
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- case "$$cat" in \
- *.gmo) destdir=$(gnulocaledir);; \
- *) destdir=$(localedir);; \
- esac; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- dir=$$destdir/$$lang/LC_MESSAGES; \
- if test -r "$(MKINSTALLDIRS)"; then \
- $(MKINSTALLDIRS) $$dir; \
- else \
- $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
- fi; \
- if test -r $$cat; then \
- $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
- else \
- $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $(srcdir)/$$cat as" \
- "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
- fi; \
- if test -r $$cat.m; then \
- $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
- else \
- if test -r $(srcdir)/$$cat.m ; then \
- $(INSTALL_DATA) $(srcdir)/$$cat.m \
- $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $(srcdir)/$$cat as" \
- "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
- else \
- true; \
- fi; \
- fi; \
- done
- if test "$(PACKAGE)" = "gettext"; then \
- if test -r "$(MKINSTALLDIRS)"; then \
- $(MKINSTALLDIRS) $(gettextsrcdir); \
- else \
- $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
- fi; \
- $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
- $(gettextsrcdir)/Makefile.in.in; \
- else \
- : ; \
- fi
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- done
- rm -f $(gettextsrcdir)/po-Makefile.in.in
-
-check: all
-
-cat-id-tbl.o: ../intl/libgettext.h
-
-dvi info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
-
-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 $(GMOFILES)
-
-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: update-po $(DISTFILES)
- dists="$(DISTFILES)"; \
- for file in $$dists; do \
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
- || cp -p $(srcdir)/$$file $(distdir); \
- done
-
-update-po: Makefile
- $(MAKE) $(PACKAGE).pot
- PATH=`pwd`/../src:$$PATH; \
- cd $(srcdir); \
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- mv $$lang.po $$lang.old.po; \
- echo "$$lang:"; \
- if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
- rm -f $$lang.old.po; \
- else \
- echo "msgmerge for $$cat failed!"; \
- rm -f $$lang.po; \
- mv $$lang.old.po $$lang.po; \
- fi; \
- done
-
-POTFILES: POTFILES.in
- ( if test 'x$(srcdir)' != 'x.'; then \
- posrcprefix='$(top_srcdir)/'; \
- else \
- posrcprefix="../"; \
- fi; \
- rm -f $@-t $@ \
- && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
- -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
- | sed -e '$$s/\\$$//') > $@-t \
- && chmod a-w $@-t \
- && mv $@-t $@ )
-
-Makefile: Makefile.in.in ../config.status POTFILES
- cd .. \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-# 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:
+++ /dev/null
-# List of files which contain translatable strings.
-# Copyright (C) 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
-
-# Package source files
-src/debug.c
-src/main.c
-src/names.c
-src/outer.c
-src/recode.c
-src/request.c
-src/strip-data.c
-src/task.c
+++ /dev/null
-/* Automatically generated by po2tbl.sed from recode.pot. */
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include "libgettext.h"
-
-const struct _msg_ent _msg_tbl[] = {
- {"", 1},
- {"\
-UCS2 Mne Description\n\
-\n", 2},
- {"No error", 3},
- {"Non canonical input", 4},
- {"Ambiguous output", 5},
- {"Untranslatable input", 6},
- {"Invalid input", 7},
- {"System detected problem", 8},
- {"Misuse of recoding library", 9},
- {"Internal recoding bug", 10},
- {"\
-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", 11},
- {"Try `%s %s' for more information.\n", 12},
- {"\
-Free `recode' converts files between various character sets and surfaces.\n", 13},
- {"\
-\n\
-Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n", 14},
- {"\
-\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", 15},
- {"\
-\n\
-Listings:\n\
- -l, --list[=FORMAT] list one or all known charsets\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", 16},
- {"\
-\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", 17},
- {" -p, --sequence=pipe use pipe machinery for sequencing passes\n", 18},
- {" -p, --sequence=pipe same as -i (on this system)\n", 19},
- {"\
-\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", 20},
- {"\
-\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", 21},
- {"\
-Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n", 22},
- {"CHARSET has no default, define DEFAULT_CHARSET in the environment.\n", 23},
- {"\
-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", 24},
- {"\
-LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n", 25},
- {"\
-\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", 26},
- {"\
-\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", 27},
- {"\
-\n\
-Report bugs to <recode-bugs@iro.umontreal.ca>.\n", 28},
- {"Ambiguous sequence `%s'", 29},
- {"Unknown sequence `%s'", 30},
- {"Ambiguous language `%s'", 31},
- {"Unknown language `%s'", 32},
- {"Ambiguous format `%s'", 33},
- {"Unknown format `%s'", 34},
- {"\
-\n\
-Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n", 35},
- {"\
-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", 36},
- {"\
-\n\
-Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n", 37},
- {"Deprecated syntax, please prefer `%s'", 38},
- {"Erroneous request `%s'", 39},
- {"Recoding %s...", 40},
- {" done\n", 41},
- {" failed: %s in %s..%s\n", 42},
- {"%s failed: %s in %s..%s", 43},
- {"%s in %s..%s", 44},
- {"Charset %s already exists and is not %s", 45},
- {"Cannot list `%s', no names available for this charset", 46},
- {"Dec Oct Hex UCS2 Mne %s\n", 47},
- {"Sorry, no names available for `%s'", 48},
- {"Resurfacer set more than once for `%s'", 49},
- {"Unsurfacer set more than once for `%s'", 50},
- {"Virtual memory exhausted", 51},
- {"Codes %3d and %3d both recode to %3d", 52},
- {"No character recodes to %3d", 53},
- {"Cannot invert given one-to-one table", 54},
- {"Following diagnostics for `%s' to `%s'", 55},
- {"Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>", 56},
- {"Cannot complete table from set of known pairs", 57},
- {"Identity recoding, not worth a table", 58},
- {"Recoding is too complex for a mere table", 59},
- {"%sConversion table generated mechanically by Free `%s' %s", 60},
- {"%sfor sequence %s.%s", 61},
- {"No table to print", 62},
- {"reversible", 63},
- {"%s to %s", 64},
- {"byte", 65},
- {"ucs2", 66},
- {"variable", 67},
- {"*Unachievable*", 68},
- {"*mere copy*", 69},
- {"Virtual memory exhausted!", 70},
- {"Step initialisation failed", 71},
- {"Step initialisation failed (unprocessed options)", 72},
- {"Request: %s\n", 73},
- {"Shrunk to: %s\n", 74},
- {"Unrecognised surface name `%s'", 75},
- {"No way to recode from `%s' to `%s'", 76},
- {"Expecting `..' in request", 77},
- {"Child process wait status is 0x%0.2x", 78},
-};
-
-int _msg_tbl_length = 78;
+1999-12-18 François Pinard <pinard@iro.umontreal.ca>
+
+ * vn.c: New file.
+ * Makefile.am: Adjusted.
+ Reported by Nguyên-Ðai Quý.
+
+1999-12-14 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * html.c (transform_ucs2_html): Pass HT undisturbed.
+ Reported by Andreas Frick.
+
+1999-09-21 Andreas Schwab <schwab@suse.de>
+
+ * main.c (main): Always read the file attributes and restore the
+ permission bits when recoding in place.
+
+1999-08-17 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * main.c (main): Adjust diagnostics so to quote step names.
+ Reported by Per Starback.
+
+1999-06-22 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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.
+\f
1999-04-18 François Pinard <pinard@iro.umontreal.ca>
* request.c (scan_charset): Ignore implied surfaces when the only
AUTOMAKE_OPTIONS = gnits ansi2knr
bin_PROGRAMS = recode
-#noinst_PROGRAMS = d.recode
lib_LTLIBRARIES = librecode.la
+man_MANS = recode.1
include_HEADERS = recode.h recodext.h
noinst_HEADERS = argmatch.h charname.h common.h decsteps.h \
fr-charname.h hash.h inisteps.h rfc1345.h $(H_FALLBACKS) $(H_SURFACES)
-EXTRA_DIST = stamp-steps $(L_STEPS) mergelex.awk
+EXTRA_DIST = stamp-steps $(L_STEPS) mergelex.py $(MANS)
C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c \
debug.c ebcdic.c ibmpc.c iconqnx.c lat1asci.c mule.c strip-data.c \
-ucs.c utf16.c utf7.c utf8.c varia.c $(C_FALLBACKS) $(C_SURFACES)
+ucs.c utf16.c utf7.c utf8.c varia.c vn.c $(C_FALLBACKS) $(C_SURFACES)
OLD_C_STEPS = next.c
L_STEPS = ascilat1.l $(L_FALLBACKS) $(L_SURFACES)
L_SURFACES =
recode_SOURCES = main.c freeze.c mixed.c
-recode_LDADD = librecode.la ../lib/libreco.a @INTLLIBS@
+recode_LDADD = librecode.la ../lib/libreco.a
#d_recode = main.c
#d_recode_LDADD = librecode.la ../lib/libreco.la @INTLLIBS@
#d_recode_LDFLAGS = -static
$(C_STEPS)
librecode_la_LDFLAGS = -version-info 0:0:0
-INCLUDES = -I.. -I../intl -I$(srcdir) -I$(top_srcdir)/lib
+INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib
ETAGS_ARGS = $(L_STEPS)
TAGS_DEPENDENCIES = $(L_STEPS)
-localedir = $(prefix)/@DATADIRNAME@/locale
-
# 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.
-AWK = @AWK@
LEX = @LEX@
+PERL = perl
+PYTHON = python
$(srcdir)/decsteps.h $(srcdir)/inisteps.h: stamp-steps
stamp-steps: $(C_STEPS) merged.c
else mv inisteps.tmp $(srcdir)/inisteps.h; fi
@echo timestamp > $(srcdir)/stamp-steps
-main.o: main.c ../config.status common.h recode.h
- $(COMPILE) -DLOCALEDIR=\"$(localedir)\" -c $<
-
+main.o: main.c ../config.status
+#main.o: common.h recode.h (should be automatic?)
outer.o: stamp-steps
-$(srcdir)/merged.c: mergelex.awk $(L_STEPS)
- (cd $(srcdir) \
- && $(AWK) -f mergelex.awk $(L_STEPS) \
- && rm merged1.tmp merged2.tmp merged3.tmp) > merged.tm1
+$(srcdir)/merged.c: mergelex.py $(L_STEPS)
+ (cd $(srcdir) && cat $(L_STEPS)) \
+ | $(PYTHON) $(srcdir)/mergelex.py > merged.tm1
$(LEX) -t8 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 --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
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_MOFILES = @ALL_MOFILES@
+ALL_POFILES = @ALL_POFILES@
AS = @AS@
AT_TESTPATH = @AT_TESTPATH@
CATALOGS = @CATALOGS@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
-LD = @LD@
+LIBOBJS = @LIBOBJS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
+MOFILES = @MOFILES@
MSGFMT = @MSGFMT@
-NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
AUTOMAKE_OPTIONS = gnits ansi2knr
bin_PROGRAMS = recode
-#noinst_PROGRAMS = d.recode
lib_LTLIBRARIES = librecode.la
+man_MANS = recode.1
include_HEADERS = recode.h recodext.h
noinst_HEADERS = argmatch.h charname.h common.h decsteps.h fr-charname.h hash.h inisteps.h rfc1345.h $(H_FALLBACKS) $(H_SURFACES)
-EXTRA_DIST = stamp-steps $(L_STEPS) mergelex.awk
+EXTRA_DIST = stamp-steps $(L_STEPS) mergelex.py $(MANS)
-C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c debug.c ebcdic.c ibmpc.c iconqnx.c lat1asci.c mule.c strip-data.c ucs.c utf16.c utf7.c utf8.c varia.c $(C_FALLBACKS) $(C_SURFACES)
+C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c debug.c ebcdic.c ibmpc.c iconqnx.c lat1asci.c mule.c strip-data.c ucs.c utf16.c utf7.c utf8.c varia.c vn.c $(C_FALLBACKS) $(C_SURFACES)
OLD_C_STEPS = next.c
L_STEPS = ascilat1.l $(L_FALLBACKS) $(L_SURFACES)
L_SURFACES =
recode_SOURCES = main.c freeze.c mixed.c
-recode_LDADD = librecode.la ../lib/libreco.a @INTLLIBS@
+recode_LDADD = librecode.la ../lib/libreco.a
#d_recode = main.c
#d_recode_LDADD = librecode.la ../lib/libreco.la @INTLLIBS@
#d_recode_LDFLAGS = -static
librecode_la_LDFLAGS = -version-info 0:0:0
-INCLUDES = -I.. -I../intl -I$(srcdir) -I$(top_srcdir)/lib
+INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib
ETAGS_ARGS = $(L_STEPS)
TAGS_DEPENDENCIES = $(L_STEPS)
-localedir = $(prefix)/@DATADIRNAME@/locale
-
# 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.
-AWK = @AWK@
LEX = @LEX@
+PERL = perl
+PYTHON = python
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
afrtran$U.lo applemac$U.lo atarist$U.lo bangbang$U.lo cdcnos$U.lo \
debug$U.lo ebcdic$U.lo ibmpc$U.lo iconqnx$U.lo lat1asci$U.lo mule$U.lo \
strip-data$U.lo ucs$U.lo utf16$U.lo utf7$U.lo utf8$U.lo varia$U.lo \
-flat$U.lo html$U.lo lat1ltex$U.lo lat1texi$U.lo lat1txte$U.lo \
+vn$U.lo flat$U.lo html$U.lo lat1ltex$U.lo lat1texi$U.lo lat1txte$U.lo \
rfc1345$U.lo base64$U.lo dump$U.lo endline$U.lo permut$U.lo quoted$U.lo
PROGRAMS = $(bin_PROGRAMS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+man1dir = $(mandir)/man1
+MANS = $(man_MANS)
+
+NROFF = nroff
HEADERS = $(include_HEADERS) $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in ansi2knr.1 ansi2knr.c
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/utf8.c; then echo $(srcdir)/utf8.c; else echo utf8.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > utf8_.c
varia_.c: varia.c $(ANSI2KNR)
$(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/varia.c; then echo $(srcdir)/varia.c; else echo varia.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > varia_.c
+vn_.c: vn.c $(ANSI2KNR)
+ $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/vn.c; then echo $(srcdir)/vn.c; else echo vn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > vn_.c
african_.o african_.lo afrtran_.o afrtran_.lo applemac_.o applemac_.lo \
argmatch_.o argmatch_.lo atarist_.o atarist_.lo bangbang_.o \
bangbang_.lo base64_.o base64_.lo cdcnos_.o cdcnos_.lo charname_.o \
request_.o request_.lo rfc1345_.o rfc1345_.lo strip-data_.o \
strip-data_.lo strip-pool_.o strip-pool_.lo task_.o task_.lo ucs_.o \
ucs_.lo utf16_.o utf16_.lo utf7_.o utf7_.lo utf8_.o utf8_.lo varia_.o \
-varia_.lo : $(ANSI2KNR)
+varia_.lo vn_.o vn_.lo : $(ANSI2KNR)
+
+install-man1:
+ $(mkinstalldirs) $(DESTDIR)$(man1dir)
+ @list='$(man1_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+ done
+
+uninstall-man1:
+ @list='$(man1_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man1dir)/$$inst; \
+ done
+install-man: $(MANS)
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-man1
+uninstall-man:
+ @$(NORMAL_UNINSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-man1
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
../lib/error.h recodext.h recode.h
lat1txte.lo lat1txte.o : lat1txte.c common.h ../config.h ../lib/xalloc.h \
../lib/error.h recodext.h recode.h
+main.o: main.c common.h ../config.h ../lib/xalloc.h ../lib/error.h \
+ recodext.h recode.h ../lib/getopt.h
merged.lo merged.o : merged.c common.h ../config.h ../lib/xalloc.h \
../lib/error.h recodext.h recode.h
mixed.o: mixed.c common.h ../config.h ../lib/xalloc.h ../lib/error.h \
quoted.lo quoted.o : quoted.c common.h ../config.h ../lib/xalloc.h \
../lib/error.h recodext.h recode.h
recode.lo recode.o : recode.c common.h ../config.h ../lib/xalloc.h \
- ../lib/error.h recodext.h recode.h hash.h
+ ../lib/error.h recodext.h recode.h ../lib/getopt.h hash.h
request.lo request.o : request.c common.h ../config.h ../lib/xalloc.h \
../lib/error.h recodext.h recode.h
rfc1345.lo rfc1345.o : rfc1345.c common.h ../config.h ../lib/xalloc.h \
../lib/error.h recodext.h recode.h
varia.lo varia.o : varia.c common.h ../config.h ../lib/xalloc.h \
../lib/error.h recodext.h recode.h
+viet.lo viet.o : viet.c common.h ../config.h ../lib/xalloc.h \
+ ../lib/error.h recodext.h recode.h
+vietnam.lo vietnam.o : vietnam.c common.h ../config.h ../lib/xalloc.h \
+ ../lib/error.h recodext.h recode.h
+vn.lo vn.o : vn.c common.h ../config.h ../lib/xalloc.h ../lib/error.h \
+ recodext.h recode.h
info-am:
info: info-am
install-exec-am: install-libLTLIBRARIES install-binPROGRAMS
install-exec: install-exec-am
-install-data-am: install-includeHEADERS
+install-data-am: install-man install-includeHEADERS
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-libLTLIBRARIES uninstall-binPROGRAMS \
- uninstall-includeHEADERS
+ uninstall-man uninstall-includeHEADERS
uninstall: uninstall-am
-all-am: Makefile $(ANSI2KNR) $(LTLIBRARIES) $(PROGRAMS) $(HEADERS)
+all-am: Makefile $(ANSI2KNR) $(LTLIBRARIES) $(PROGRAMS) $(MANS) \
+ $(HEADERS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \
- $(DESTDIR)$(includedir)
+ $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(includedir)
mostlyclean-generic:
clean-krextra maintainer-clean-krextra mostlyclean-kr distclean-kr \
clean-kr maintainer-clean-kr mostlyclean-binPROGRAMS \
distclean-binPROGRAMS clean-binPROGRAMS maintainer-clean-binPROGRAMS \
-uninstall-binPROGRAMS install-binPROGRAMS uninstall-includeHEADERS \
+uninstall-binPROGRAMS install-binPROGRAMS install-man1 uninstall-man1 \
+install-man uninstall-man uninstall-includeHEADERS \
install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
else mv inisteps.tmp $(srcdir)/inisteps.h; fi
@echo timestamp > $(srcdir)/stamp-steps
-main.o: main.c ../config.status common.h recode.h
- $(COMPILE) -DLOCALEDIR=\"$(localedir)\" -c $<
-
+main.o: main.c ../config.status
+#main.o: common.h recode.h (should be automatic?)
outer.o: stamp-steps
-$(srcdir)/merged.c: mergelex.awk $(L_STEPS)
- (cd $(srcdir) \
- && $(AWK) -f mergelex.awk $(L_STEPS) \
- && rm merged1.tmp merged2.tmp merged3.tmp) > merged.tm1
+$(srcdir)/merged.c: mergelex.py $(L_STEPS)
+ (cd $(srcdir) && cat $(L_STEPS)) \
+ | $(PYTHON) $(srcdir)/mergelex.py > merged.tm1
$(LEX) -t8 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 --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
+
# 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:
#include "common.h"
+/* Bambara, Ewondo and Fulfude. */
+
static const unsigned short ful_data[] =
- {
- 161, 0x0181, DONE,
- 162, 0x018A, DONE,
- 163, 0x0194, DONE,
- 164, 0x0198, DONE,
- 165, 0x01A4, DONE,
- 166, 0x01AC, DONE,
- 167, 0x01A9, DONE,
- 168, 0x019D, DONE,
- 169, 0x014A, DONE,
- 170, 0x0189, DONE,
- 172, 0x0191, DONE,
- 174, 0x01B3, DONE,
- 175, 0x0193, DONE,
- 177, 0x0253, DONE,
- 178, 0x0257, DONE,
- 179, 0x0263, DONE,
- 180, 0x0199, DONE,
- 181, 0x01A5, DONE,
- 182, 0x01AD, DONE,
- 183, 0x0283, DONE,
- 184, 0x0272, DONE,
- 185, 0x014B, DONE,
- 186, 0x0256, DONE,
- 188, 0x0192, DONE,
- 189, 0x0294, DONE,
- 190, 0x01B4, DONE,
- 191, 0x0260, DONE,
- 197, 0x018E, DONE,
- 208, 0x0190, DONE,
- 215, 0x0152, DONE,
- 216, 0x0186, DONE,
- 221, 0x018E, 0x0301, DONE,
- 222, 0x0186, 0x0301, DONE,
- 223, 0x01B2, DONE,
- 229, 0x0259, DONE,
- 240, 0x025B, DONE,
- 247, 0x0153, DONE,
- 248, 0x0254, DONE,
- 253, 0x0259, 0x0301, DONE,
- 254, 0x0254, 0x0301, DONE,
- 255, 0x028B, DONE,
- DONE
- };
-/* -- */
+{
+ 161, 0x0181, DONE,
+ 162, 0x018A, DONE,
+ 163, 0x0194, DONE,
+ 164, 0x0198, DONE,
+ 165, 0x01A4, DONE,
+ 166, 0x01AC, DONE,
+ 167, 0x01A9, DONE,
+ 168, 0x019D, DONE,
+ 169, 0x014A, DONE,
+ 170, 0x0189, DONE,
+ 172, 0x0191, DONE,
+ 174, 0x01B3, DONE,
+ 175, 0x0193, DONE,
+ 177, 0x0253, DONE,
+ 178, 0x0257, DONE,
+ 179, 0x0263, DONE,
+ 180, 0x0199, DONE,
+ 181, 0x01A5, DONE,
+ 182, 0x01AD, DONE,
+ 183, 0x0283, DONE,
+ 184, 0x0272, DONE,
+ 185, 0x014B, DONE,
+ 186, 0x0256, DONE,
+ 188, 0x0192, DONE,
+ 189, 0x0294, DONE,
+ 190, 0x01B4, DONE,
+ 191, 0x0260, DONE,
+ 197, 0x018E, DONE,
+ 208, 0x0190, DONE,
+ 215, 0x0152, DONE,
+ 216, 0x0186, DONE,
+ 221, 0x018E, 0x0301, DONE,
+ 222, 0x0186, 0x0301, DONE,
+ 223, 0x01B2, DONE,
+ 229, 0x0259, DONE,
+ 240, 0x025B, DONE,
+ 247, 0x0153, DONE,
+ 248, 0x0254, DONE,
+ 253, 0x0259, 0x0301, DONE,
+ 254, 0x0254, 0x0301, DONE,
+ 255, 0x028B, DONE,
+ DONE
+};
+
+/* Linguala, Sango and Wolof. */
static const unsigned short lin_data[] =
- {
- 161, 0x0190, 0x0300, DONE,
- 162, 0x0190, 0x0301, DONE,
- 163, 0x0190, 0x0302, DONE,
- 164, 0x0190, 0x030C, DONE,
- 165, 0x0186, 0x0300, DONE,
- 166, 0x0186, 0x0301, DONE,
- 167, 0x0186, 0x0302, DONE,
- 168, 0x019D, DONE,
- 169, 0x014A, DONE,
- 170, 0x004E, 0x0302, DONE,
- 172, 0x004E, 0x0308, DONE,
- 174, 0x01B3, DONE,
- 175, 0x0186, 0x030C, DONE,
- 177, 0x025B, 0x0300, DONE,
- 178, 0x025B, 0x0301, DONE,
- 179, 0x025B, 0x0302, DONE,
- 180, 0x025B, 0x030C, DONE,
- 181, 0x0254, 0x0300, DONE,
- 182, 0x0254, 0x0301, DONE,
- 183, 0x0254, 0x0302, DONE,
- 184, 0x0272, DONE,
- 185, 0x014B, DONE,
- 186, 0x006E, 0x0302, DONE,
- 188, 0x006E, 0x0308, DONE,
- 189, 0x0294, DONE,
- 190, 0x01B4, DONE,
- 191, 0x0254, 0x030C, DONE,
- 195, 0x01CD, DONE,
- 197, 0x018E, DONE,
- 208, 0x0190, DONE,
- 213, 0x01D1, DONE,
- 215, 0x0152, DONE,
- 216, 0x0186, DONE,
- 221, 0x011A, DONE,
- 222, 0x01CF, DONE,
- 223, 0x01D3, DONE,
- 227, 0x01CE, DONE,
- 229, 0x0259, DONE,
- 240, 0x025B, DONE,
- 245, 0x01D2, DONE,
- 247, 0x0153, DONE,
- 248, 0x0254, DONE,
- 253, 0x011B, DONE,
- 254, 0x01D0, DONE,
- 255, 0x01D4, DONE,
- DONE
- };
-/* -- */
+{
+ 161, 0x0190, 0x0300, DONE,
+ 162, 0x0190, 0x0301, DONE,
+ 163, 0x0190, 0x0302, DONE,
+ 164, 0x0190, 0x030C, DONE,
+ 165, 0x0186, 0x0300, DONE,
+ 166, 0x0186, 0x0301, DONE,
+ 167, 0x0186, 0x0302, DONE,
+ 168, 0x019D, DONE,
+ 169, 0x014A, DONE,
+ 170, 0x004E, 0x0302, DONE,
+ 172, 0x004E, 0x0308, DONE,
+ 174, 0x01B3, DONE,
+ 175, 0x0186, 0x030C, DONE,
+ 177, 0x025B, 0x0300, DONE,
+ 178, 0x025B, 0x0301, DONE,
+ 179, 0x025B, 0x0302, DONE,
+ 180, 0x025B, 0x030C, DONE,
+ 181, 0x0254, 0x0300, DONE,
+ 182, 0x0254, 0x0301, DONE,
+ 183, 0x0254, 0x0302, DONE,
+ 184, 0x0272, DONE,
+ 185, 0x014B, DONE,
+ 186, 0x006E, 0x0302, DONE,
+ 188, 0x006E, 0x0308, DONE,
+ 189, 0x0294, DONE,
+ 190, 0x01B4, DONE,
+ 191, 0x0254, 0x030C, DONE,
+ 195, 0x01CD, DONE,
+ 197, 0x018E, DONE,
+ 208, 0x0190, DONE,
+ 213, 0x01D1, DONE,
+ 215, 0x0152, DONE,
+ 216, 0x0186, DONE,
+ 221, 0x011A, DONE,
+ 222, 0x01CF, DONE,
+ 223, 0x01D3, DONE,
+ 227, 0x01CE, DONE,
+ 229, 0x0259, DONE,
+ 240, 0x025B, DONE,
+ 245, 0x01D2, DONE,
+ 247, 0x0153, DONE,
+ 248, 0x0254, DONE,
+ 253, 0x011B, DONE,
+ 254, 0x01D0, DONE,
+ 255, 0x01D4, DONE,
+ DONE
+};
bool
module_african (RECODE_OUTER outer)
static const recode_ucs2 pool[256] =
{
- /* 0 */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
- /* 8 */ 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
- /* 16 */ 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
- /* 24 */ 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F,
- /* 32 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
- /* 40 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
- /* 48 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
- /* 56 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
- /* 64 */ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
- /* 72 */ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
- /* 80 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
- /* 88 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
- /* 96 */ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
- /* 104 */ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
- /* 112 */ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
- /* 120 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
- /* 128 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
- /* 136 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
- /* 144 */ 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
- /* 152 */ 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x00DF, 0x0192,
- /* 160 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
- /* 168 */ 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
- /* 176 */ 0x00E3, 0x00F5, 0x00D8, 0x00F8, 0x0153, 0x0152, 0x00C0, 0x00C3,
- /* 184 */ 0x00D5, 0x00A8, 0x00B4, 0x2020, 0x00B6, 0x00A9, 0x00AE, 0x2122,
- /* 192 */ 0x0133, 0x0132, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5,
- /* 200 */ 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DB, 0x05DC, 0x05DE, 0x05E0,
- /* 208 */ 0x05E1, 0x05E2, 0x05E4, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA,
- /* 216 */ 0x05DF, 0x05DA, 0x05DD, 0x05E3, 0x05E5, 0x00A7, 0x2038, 0x221E,
- /* 224 */ 0x03B1, 0x03B2, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
- /* 232 */ 0x03A6, 0x03B8, 0x2126, 0x03B4, 0x222E, 0x03C6, 0x2208, 0x220F,
- /* 240 */ 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
- /* 248 */ 0x00B0, 0x2022, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x00B3, 0x00AF
+ /* 0 */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
+ /* 8 */ 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
+ /* 16 */ 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
+ /* 24 */ 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F,
+ /* 32 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
+ /* 40 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
+ /* 48 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+ /* 56 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
+ /* 64 */ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ /* 72 */ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
+ /* 80 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ /* 88 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
+ /* 96 */ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ /* 104 */ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
+ /* 112 */ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ /* 120 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
+ /* 128 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
+ /* 136 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
+ /* 144 */ 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
+ /* 152 */ 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x00DF, 0x0192,
+ /* 160 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
+ /* 168 */ 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
+ /* 176 */ 0x00E3, 0x00F5, 0x00D8, 0x00F8, 0x0153, 0x0152, 0x00C0, 0x00C3,
+ /* 184 */ 0x00D5, 0x00A8, 0x00B4, 0x2020, 0x00B6, 0x00A9, 0x00AE, 0x2122,
+ /* 192 */ 0x0133, 0x0132, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5,
+ /* 200 */ 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DB, 0x05DC, 0x05DE, 0x05E0,
+ /* 208 */ 0x05E1, 0x05E2, 0x05E4, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA,
+ /* 216 */ 0x05DF, 0x05DA, 0x05DD, 0x05E3, 0x05E5, 0x00A7, 0x2038, 0x221E,
+ /* 224 */ 0x03B1, 0x03B2, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
+ /* 232 */ 0x03A6, 0x03B8, 0x2126, 0x03B4, 0x222E, 0x03C6, 0x2208, 0x220F,
+ /* 240 */ 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
+ /* 248 */ 0x00B0, 0x2022, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x00B3, 0x00AF
};
static struct strip_data table =
{
pool,
{
- 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88,
- 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184,
- 192, 200, 208, 216, 224, 232, 240, 248
+ 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88,
+ 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184,
+ 192, 200, 208, 216, 224, 232, 240, 248
}
- };
+};
#else /* not USE_RFC1345_STEP */
static bool
transform_base64_data (RECODE_CONST_STEP step, RECODE_TASK task)
{
- int counter;
+ int counter = 0;
int character;
unsigned value;
- counter = 0;
while (true)
{
/* Accept wrapping lines, reversibly if at each 76 characters. */
if (character == '\n')
{
- character = get_byte (task);
- if (character == EOF)
- TASK_RETURN (task);
if (counter != MIME_LINE_LENGTH / 4)
RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
- counter = 1;
+ counter = 0;
+ continue;
}
- else
- counter++;
/* Process first byte of a quadruplet. */
+ counter++;
+
if (IS_BASE64 (character))
value = base64_char_to_value[character] << 18;
else
-/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.pl'. */
+/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.py'. */
/* Conversion of files between different charsets and surfaces.
Copyright © 1999 Free Software Foundation, Inc.
Suite 330, Boston, MA 02111-1307, USA. */
#define NUMBER_OF_SINGLES 252
-#define MAX_CHARNAME_LENGTH 66
+#define MAX_CHARNAME_LENGTH 56
#define NUMBER_OF_CHARNAMES 1827
static const char *const word[794] =
"diaeresis", /* \037 */
"parenthesized", /* \040 */
"i", /* \041 */
- "final", /* \042 */
- "tilde", /* \043 */
- "bopomofo", /* \044 */
+ "tilde", /* \042 */
+ "bopomofo", /* \043 */
+ "final", /* \044 */
"caron", /* \045 */
"mark", /* \046 */
"grave", /* \047 */
- "isolated", /* \050 */
- "macron", /* \051 */
+ "macron", /* \050 */
+ "isolated", /* \051 */
"line", /* \052 */
"up", /* \053 */
"down", /* \054 */
"g", /* \075 */
"initial", /* \076 */
"l", /* \077 */
- "(character", /* \100 */
- "non-spacing", /* \101 */
- "part)", /* \102 */
- "stop", /* \103 */
- "y", /* \104 */
- "d", /* \105 */
- "h", /* \106 */
- "horn", /* \107 */
- "t", /* \110 */
- "z", /* \111 */
- "of", /* \112 */
- "to", /* \113 */
- "bracket", /* \114 */
- "c", /* \115 */
- "ligature", /* \116 */
- "one", /* \117 */
- "r", /* \120 */
- "superscript", /* \121 */
- "w", /* \122 */
- "fraction", /* \123 */
- "k", /* \124 */
- "stroke", /* \125 */
- "two", /* \126 */
- "square", /* \127 */
- "subscript", /* \130 */
- "three", /* \131 */
- "vulgar", /* \132 */
- "(iso-ir-103", /* \133 */
- "number", /* \134 */
- "ogonek", /* \135 */
- "arrow", /* \136 */
- "b", /* \137 */
- "lam", /* \140 */
- "quotation", /* \141 */
- "ring", /* \142 */
- "dash", /* \143 */
- "five", /* \144 */
- "four", /* \145 */
- "m", /* \146 */
- "space", /* \147 */
- "accent", /* \150 */
- "seven", /* \151 */
- "x", /* \152 */
- "angle", /* \153 */
- "arabic-indic", /* \154 */
- "eastern", /* \155 */
- "eight", /* \156 */
- "equal", /* \157 */
- "half", /* \160 */
- "hamza", /* \161 */
- "ideograph", /* \162 */
- "nine", /* \163 */
- "p", /* \164 */
+ "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 */
static const struct charname charname[NUMBER_OF_CHARNAMES] =
{
{0x0000, "\376\267\375\367"},
- {0x0001, "\260\112\376\215\376\005"},
- {0x0002, "\260\112\375\252\376\015"},
- {0x0003, "\212\112\375\252\375\336"},
- {0x0004, "\212\112\375\257\375\331"},
+ {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"},
{0x000E, "\375\234\376\277\376\004"},
{0x000F, "\375\234\376\226\376\003"},
{0x0010, "\376\143\375\105\375\326"},
- {0x0011, "\232\211\117\375\320"},
- {0x0012, "\232\211\126\375\321"},
- {0x0013, "\232\211\131\375\322"},
- {0x0014, "\232\211\145\375\323"},
+ {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\112\375\257\207\375\335"},
+ {0x0017, "\212\110\375\257\207\375\335"},
{0x0018, "\375\051\375\314"},
- {0x0019, "\212\112\375\156\375\327"},
+ {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, "\147"},
+ {0x0020, "\146"},
{0x0021, "\360\046"},
- {0x0022, "\141\046"},
- {0x0023, "\134\036"},
+ {0x0022, "\140\046"},
+ {0x0023, "\133\036"},
{0x0024, "\376\150\036"},
{0x0025, "\376\305\036"},
{0x0026, "\376\066"},
{0x002B, "\375\002\036"},
{0x002C, "\346"},
{0x002D, "\376\221"},
- {0x002E, "\074\103"},
+ {0x002E, "\074\101"},
{0x002F, "\375\011"},
{0x0030, "\025\225"},
- {0x0031, "\025\117"},
- {0x0032, "\025\126"},
- {0x0033, "\025\131"},
- {0x0034, "\025\145"},
- {0x0035, "\025\144"},
+ {0x0031, "\025\115"},
+ {0x0032, "\025\125"},
+ {0x0033, "\025\130"},
+ {0x0034, "\025\144"},
+ {0x0035, "\025\143"},
{0x0036, "\025\165"},
- {0x0037, "\025\151"},
- {0x0038, "\025\156"},
- {0x0039, "\025\163"},
+ {0x0037, "\025\150"},
+ {0x0038, "\025\155"},
+ {0x0039, "\025\162"},
{0x003A, "\376\126"},
{0x003B, "\375\226"},
{0x003C, "\311\036"},
{0x003F, "\375\003\046"},
{0x0040, "\376\127\376\077"},
{0x0041, "\002\005\001\030"},
- {0x0042, "\002\005\001\137"},
- {0x0043, "\002\005\001\115"},
- {0x0044, "\002\005\001\105"},
+ {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\106"},
+ {0x0048, "\002\005\001\104"},
{0x0049, "\002\005\001\041"},
{0x004A, "\002\005\001\171"},
- {0x004B, "\002\005\001\124"},
+ {0x004B, "\002\005\001\123"},
{0x004C, "\002\005\001\077"},
- {0x004D, "\002\005\001\146"},
+ {0x004D, "\002\005\001\145"},
{0x004E, "\002\005\001\061"},
{0x004F, "\002\005\001\023"},
- {0x0050, "\002\005\001\164"},
+ {0x0050, "\002\005\001\163"},
{0x0051, "\002\005\001\220"},
- {0x0052, "\002\005\001\120"},
+ {0x0052, "\002\005\001\116"},
{0x0053, "\002\005\001\070"},
- {0x0054, "\002\005\001\110"},
+ {0x0054, "\002\005\001\106"},
{0x0055, "\002\005\001\024"},
{0x0056, "\002\005\001\167"},
- {0x0057, "\002\005\001\122"},
- {0x0058, "\002\005\001\152"},
- {0x0059, "\002\005\001\104"},
- {0x005A, "\002\005\001\111"},
- {0x005B, "\034\127\114"},
+ {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\127\114"},
- {0x005E, "\027\150"},
+ {0x005D, "\035\126\112"},
+ {0x005E, "\027\147"},
{0x005F, "\312\052"},
- {0x0060, "\047\150"},
+ {0x0060, "\047\147"},
{0x0061, "\002\004\001\030"},
- {0x0062, "\002\004\001\137"},
- {0x0063, "\002\004\001\115"},
- {0x0064, "\002\004\001\105"},
+ {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\106"},
+ {0x0068, "\002\004\001\104"},
{0x0069, "\002\004\001\041"},
{0x006A, "\002\004\001\171"},
- {0x006B, "\002\004\001\124"},
+ {0x006B, "\002\004\001\123"},
{0x006C, "\002\004\001\077"},
- {0x006D, "\002\004\001\146"},
+ {0x006D, "\002\004\001\145"},
{0x006E, "\002\004\001\061"},
{0x006F, "\002\004\001\023"},
- {0x0070, "\002\004\001\164"},
+ {0x0070, "\002\004\001\163"},
{0x0071, "\002\004\001\220"},
- {0x0072, "\002\004\001\120"},
+ {0x0072, "\002\004\001\116"},
{0x0073, "\002\004\001\070"},
- {0x0074, "\002\004\001\110"},
+ {0x0074, "\002\004\001\106"},
{0x0075, "\002\004\001\024"},
{0x0076, "\002\004\001\167"},
- {0x0077, "\002\004\001\122"},
- {0x0078, "\002\004\001\152"},
- {0x0079, "\002\004\001\104"},
- {0x007A, "\002\004\001\111"},
- {0x007B, "\034\375\063\114"},
+ {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\114"},
- {0x007E, "\043"},
+ {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"},
{0x0083, "\374\375\045\375\126\375\365"},
{0x0084, "\364\375\350"},
{0x0085, "\375\170\052\375\366"},
- {0x0086, "\260\112\375\225\271\376\012"},
- {0x0087, "\212\112\375\225\271\375\333"},
+ {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\126\376\010"},
- {0x008F, "\375\236\131\376\011"},
+ {0x008E, "\375\236\125\376\010"},
+ {0x008F, "\375\236\130\376\011"},
{0x0090, "\232\211\375\012\375\324"},
- {0x0091, "\375\206\375\266\117\375\375"},
- {0x0092, "\375\206\375\266\126\375\376"},
+ {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\112\375\123\271\376\007"},
- {0x0097, "\212\112\375\123\271\375\332"},
- {0x0098, "\260\112\375\012\376\006"},
+ {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"},
{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\147"},
+ {0x00A0, "\376\266\146"},
{0x00A1, "\306\360\046"},
{0x00A2, "\376\121\036"},
{0x00A3, "\376\315\036"},
{0x00A8, "\037"},
{0x00A9, "\375\061\036"},
{0x00AA, "\376\167\375\201\375\135"},
- {0x00AB, "\245\064\153\141\046"},
+ {0x00AB, "\245\064\152\140\046"},
{0x00AC, "\251\036"},
{0x00AD, "\375\010\375\133"},
{0x00AE, "\376\337\036"},
- {0x00AF, "\051"},
+ {0x00AF, "\050"},
{0x00B0, "\350\036"},
{0x00B1, "\376\312\036"},
- {0x00B2, "\121\126"},
- {0x00B3, "\121\131"},
- {0x00B4, "\013\150"},
+ {0x00B2, "\120\125"},
+ {0x00B3, "\120\130"},
+ {0x00B4, "\013\147"},
{0x00B5, "\376\253\036"},
{0x00B6, "\376\311\036"},
{0x00B7, "\247\015"},
{0x00B8, "\060"},
- {0x00B9, "\121\117"},
+ {0x00B9, "\120\115"},
{0x00BA, "\376\251\375\201\375\135"},
- {0x00BB, "\254\064\153\141\046"},
- {0x00BC, "\132\123\117\375\211"},
- {0x00BD, "\132\123\117\160"},
- {0x00BE, "\132\123\131\376\330"},
+ {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\043"},
+ {0x00C3, "\002\005\001\030\003\042"},
{0x00C4, "\002\005\001\030\003\037"},
- {0x00C5, "\002\005\001\030\003\142\016"},
+ {0x00C5, "\002\005\001\030\003\141\016"},
{0x00C6, "\002\005\001\206"},
- {0x00C7, "\002\005\001\115\003\060"},
+ {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"},
{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\043"},
+ {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\043"},
+ {0x00D5, "\002\005\001\023\003\042"},
{0x00D6, "\002\005\001\023\003\037"},
{0x00D7, "\376\260\036"},
- {0x00D8, "\002\005\001\023\003\125"},
+ {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\104\003\013"},
+ {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\043"},
+ {0x00E3, "\002\004\001\030\003\042"},
{0x00E4, "\002\004\001\030\003\037"},
- {0x00E5, "\002\004\001\030\003\142\016"},
+ {0x00E5, "\002\004\001\030\003\141\016"},
{0x00E6, "\002\004\001\206"},
- {0x00E7, "\002\004\001\115\003\060"},
+ {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"},
{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\043"},
+ {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\043"},
+ {0x00F5, "\002\004\001\023\003\042"},
{0x00F6, "\002\004\001\023\003\037"},
{0x00F7, "\376\147\036"},
- {0x00F8, "\002\004\001\023\003\125"},
+ {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\104\003\013"},
+ {0x00FD, "\002\004\001\102\003\013"},
{0x00FE, "\002\004\001\375\254\266"},
- {0x00FF, "\002\004\001\104\003\037"},
- {0x0100, "\002\005\001\030\003\051"},
- {0x0101, "\002\004\001\030\003\051"},
+ {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\135"},
- {0x0105, "\002\004\001\030\003\135"},
- {0x0106, "\002\005\001\115\003\013"},
- {0x0107, "\002\004\001\115\003\013"},
- {0x0108, "\002\005\001\115\003\027"},
- {0x0109, "\002\004\001\115\003\027"},
- {0x010A, "\002\005\001\115\003\015\016"},
- {0x010B, "\002\004\001\115\003\015\016"},
- {0x010C, "\002\005\001\115\003\045"},
- {0x010D, "\002\004\001\115\003\045"},
- {0x010E, "\002\005\001\105\003\045"},
- {0x010F, "\002\004\001\105\003\045"},
- {0x0110, "\002\005\001\105\003\125"},
- {0x0111, "\002\004\001\105\003\125"},
- {0x0112, "\002\005\001\033\003\051"},
- {0x0113, "\002\004\001\033\003\051"},
+ {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\135"},
- {0x0119, "\002\004\001\033\003\135"},
+ {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"},
{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\106\003\027"},
- {0x0125, "\002\004\001\106\003\027"},
- {0x0126, "\002\005\001\106\003\125"},
- {0x0127, "\002\004\001\106\003\125"},
- {0x0128, "\002\005\001\041\003\043"},
- {0x0129, "\002\004\001\041\003\043"},
- {0x012A, "\002\005\001\041\003\051"},
- {0x012B, "\002\004\001\041\003\051"},
+ {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\135"},
- {0x012F, "\002\004\001\041\003\135"},
+ {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\116\375\134"},
- {0x0133, "\002\004\116\375\134"},
+ {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\124\003\060"},
- {0x0137, "\002\004\001\124\003\060"},
+ {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"},
{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\125"},
- {0x0142, "\002\004\001\077\003\125"},
+ {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"},
{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\051"},
- {0x014D, "\002\004\001\023\003\051"},
+ {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\116\375\177"},
- {0x0153, "\002\004\116\375\177"},
- {0x0154, "\002\005\001\120\003\013"},
- {0x0155, "\002\004\001\120\003\013"},
- {0x0156, "\002\005\001\120\003\060"},
- {0x0157, "\002\004\001\120\003\060"},
- {0x0158, "\002\005\001\120\003\045"},
- {0x0159, "\002\004\001\120\003\045"},
+ {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"},
{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\110\003\060"},
- {0x0163, "\002\004\001\110\003\060"},
- {0x0164, "\002\005\001\110\003\045"},
- {0x0165, "\002\004\001\110\003\045"},
- {0x0166, "\002\005\001\110\003\125"},
- {0x0167, "\002\004\001\110\003\125"},
- {0x0168, "\002\005\001\024\003\043"},
- {0x0169, "\002\004\001\024\003\043"},
- {0x016A, "\002\005\001\024\003\051"},
- {0x016B, "\002\004\001\024\003\051"},
+ {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\142\016"},
- {0x016F, "\002\004\001\024\003\142\016"},
+ {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\135"},
- {0x0173, "\002\004\001\024\003\135"},
- {0x0174, "\002\005\001\122\003\027"},
- {0x0175, "\002\004\001\122\003\027"},
- {0x0176, "\002\005\001\104\003\027"},
- {0x0177, "\002\004\001\104\003\027"},
- {0x0178, "\002\005\001\104\003\037"},
- {0x0179, "\002\005\001\111\003\013"},
- {0x017A, "\002\004\001\111\003\013"},
- {0x017B, "\002\005\001\111\003\015\016"},
- {0x017C, "\002\004\001\111\003\015\016"},
- {0x017D, "\002\005\001\111\003\045"},
- {0x017E, "\002\004\001\111\003\045"},
- {0x01A0, "\002\005\001\023\003\107"},
- {0x01A1, "\002\004\001\023\003\107"},
+ {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\107"},
- {0x01B0, "\002\004\001\024\003\107"},
- {0x01B5, "\002\005\001\111\003\125"},
- {0x01B6, "\002\004\001\111\003\125"},
+ {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"},
{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\051"},
- {0x01D6, "\002\004\001\024\003\037\007\051"},
+ {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\051"},
- {0x01DF, "\002\004\001\030\003\037\007\051"},
- {0x01E0, "\002\005\001\030\003\015\016\007\051"},
- {0x01E1, "\002\004\001\030\003\015\016\007\051"},
- {0x01E2, "\002\005\001\206\003\051"},
- {0x01E3, "\002\004\001\206\003\051"},
- {0x01E4, "\002\005\001\075\003\125"},
- {0x01E5, "\002\004\001\075\003\125"},
+ {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\124\003\045"},
- {0x01E9, "\002\004\001\124\003\045"},
- {0x01EA, "\002\005\001\023\003\135"},
- {0x01EB, "\002\004\001\023\003\135"},
- {0x01EC, "\002\005\001\023\003\135\007\051"},
- {0x01ED, "\002\004\001\023\003\135\007\051"},
+ {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\142\016\007\013"},
- {0x01FB, "\002\004\001\030\003\142\016\007\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\125\007\013"},
- {0x01FF, "\002\004\001\023\003\125\007\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\160\142"},
+ {0x02BB, "\376\257\001\034\157\141"},
{0x02C7, "\045"},
{0x02D8, "\057"},
{0x02D9, "\015\016"},
- {0x02DA, "\142\016"},
- {0x02DB, "\135"},
- {0x02DD, "\064\013\150"},
+ {0x02DA, "\141\016"},
+ {0x02DB, "\134"},
+ {0x02DD, "\064\013\147"},
{0x0374, "\012\055\036"},
{0x0375, "\012\173\055\036"},
{0x037A, "\012\170\020"},
- {0x0385, "\013\150\007\037\376\020\007\376\145"},
+ {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"},
{0x03BF, "\012\004\001\317"},
{0x03C0, "\012\004\001\321"},
{0x03C1, "\012\004\001\375\216"},
- {0x03C2, "\012\004\001\042\375\007"},
+ {0x03C2, "\012\004\001\044\375\007"},
{0x03C3, "\012\004\001\375\007"},
{0x03C4, "\012\004\001\375\251"},
{0x03C5, "\012\004\001\204"},
{0x05D7, "\056\001\376\216"},
{0x05D8, "\056\001\377\003"},
{0x05D9, "\056\001\377\035"},
- {0x05DA, "\056\001\042\202"},
+ {0x05DA, "\056\001\044\202"},
{0x05DB, "\056\001\202"},
{0x05DC, "\056\001\376\241"},
- {0x05DD, "\056\001\042\375\157"},
+ {0x05DD, "\056\001\044\375\157"},
{0x05DE, "\056\001\375\157"},
- {0x05DF, "\056\001\042\375\176"},
+ {0x05DF, "\056\001\044\375\176"},
{0x05E0, "\056\001\375\176"},
{0x05E1, "\056\001\376\344"},
{0x05E2, "\056\001\376\101"},
- {0x05E3, "\056\001\042\216"},
+ {0x05E3, "\056\001\044\216"},
{0x05E4, "\056\001\216"},
- {0x05E5, "\056\001\042\375\260"},
+ {0x05E5, "\056\001\044\375\260"},
{0x05E6, "\056\001\375\260"},
{0x05E7, "\056\001\376\327"},
{0x05E8, "\056\001\376\340"},
{0x060C, "\006\346"},
{0x061B, "\006\375\226"},
{0x061F, "\006\375\003\046"},
- {0x0621, "\006\001\161"},
+ {0x0621, "\006\001\160"},
{0x0622, "\006\001\073\003\313\016"},
- {0x0623, "\006\001\073\003\161\016"},
- {0x0624, "\006\001\336\003\161\016"},
- {0x0625, "\006\001\073\003\161\020"},
- {0x0626, "\006\001\223\003\161\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"},
{0x0641, "\006\001\234"},
{0x0642, "\006\001\253"},
{0x0643, "\006\001\202"},
- {0x0644, "\006\001\140"},
+ {0x0644, "\006\001\137"},
{0x0645, "\006\001\246"},
{0x0646, "\006\001\250"},
{0x0647, "\006\001\237"},
{0x0650, "\006\376\235"},
{0x0651, "\006\375\230"},
{0x0652, "\006\376\366"},
- {0x0660, "\155\154\025\225"},
- {0x0661, "\155\154\025\117"},
- {0x0662, "\155\154\025\126"},
- {0x0663, "\155\154\025\131"},
- {0x0664, "\155\154\025\145"},
- {0x0665, "\155\154\025\144"},
- {0x0666, "\155\154\025\165"},
- {0x0667, "\155\154\025\151"},
- {0x0668, "\155\154\025\156"},
- {0x0669, "\155\154\025\163"},
- {0x0670, "\121\006\001\073"},
+ {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\142\020"},
- {0x1E01, "\002\004\001\030\003\142\020"},
- {0x1E02, "\002\005\001\137\003\015\016"},
- {0x1E03, "\002\004\001\137\003\015\016"},
- {0x1E04, "\002\005\001\137\003\015\020"},
- {0x1E05, "\002\004\001\137\003\015\020"},
- {0x1E06, "\002\005\001\137\003\052\020"},
- {0x1E07, "\002\004\001\137\003\052\020"},
- {0x1E08, "\002\005\001\115\003\060\007\013"},
- {0x1E09, "\002\004\001\115\003\060\007\013"},
- {0x1E0A, "\002\005\001\105\003\015\016"},
- {0x1E0B, "\002\004\001\105\003\015\016"},
- {0x1E0C, "\002\005\001\105\003\015\020"},
- {0x1E0D, "\002\004\001\105\003\015\020"},
- {0x1E0E, "\002\005\001\105\003\052\020"},
- {0x1E0F, "\002\004\001\105\003\052\020"},
- {0x1E10, "\002\005\001\105\003\060"},
- {0x1E11, "\002\004\001\105\003\060"},
- {0x1E12, "\002\005\001\105\003\027\020"},
- {0x1E13, "\002\004\001\105\003\027\020"},
- {0x1E14, "\002\005\001\033\003\051\007\047"},
- {0x1E15, "\002\004\001\033\003\051\007\047"},
- {0x1E16, "\002\005\001\033\003\051\007\013"},
- {0x1E17, "\002\004\001\033\003\051\007\013"},
+ {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\043\020"},
- {0x1E1B, "\002\004\001\033\003\043\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\051"},
- {0x1E21, "\002\004\001\075\003\051"},
- {0x1E22, "\002\005\001\106\003\015\016"},
- {0x1E23, "\002\004\001\106\003\015\016"},
- {0x1E24, "\002\005\001\106\003\015\020"},
- {0x1E25, "\002\004\001\106\003\015\020"},
- {0x1E26, "\002\005\001\106\003\037"},
- {0x1E27, "\002\004\001\106\003\037"},
- {0x1E28, "\002\005\001\106\003\060"},
- {0x1E29, "\002\004\001\106\003\060"},
- {0x1E2A, "\002\005\001\106\003\057\020"},
- {0x1E2B, "\002\004\001\106\003\057\020"},
- {0x1E2C, "\002\005\001\041\003\043\020"},
- {0x1E2D, "\002\004\001\041\003\043\020"},
+ {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\124\003\013"},
- {0x1E31, "\002\004\001\124\003\013"},
- {0x1E32, "\002\005\001\124\003\015\020"},
- {0x1E33, "\002\004\001\124\003\015\020"},
- {0x1E34, "\002\005\001\124\003\052\020"},
- {0x1E35, "\002\004\001\124\003\052\020"},
+ {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\146\003\013"},
- {0x1E3F, "\002\004\001\146\003\013"},
- {0x1E40, "\002\005\001\146\003\015\016"},
- {0x1E41, "\002\004\001\146\003\015\016"},
- {0x1E42, "\002\005\001\146\003\015\020"},
- {0x1E43, "\002\004\001\146\003\015\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"},
{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\043\007\013"},
- {0x1E4D, "\002\004\001\023\003\043\007\013"},
- {0x1E4E, "\002\005\001\023\003\043\007\037"},
- {0x1E4F, "\002\004\001\023\003\043\007\037"},
- {0x1E50, "\002\005\001\023\003\051\007\047"},
- {0x1E51, "\002\004\001\023\003\051\007\047"},
- {0x1E52, "\002\005\001\023\003\051\007\013"},
- {0x1E53, "\002\004\001\023\003\051\007\013"},
- {0x1E54, "\002\005\001\164\003\013"},
- {0x1E55, "\002\004\001\164\003\013"},
- {0x1E56, "\002\005\001\164\003\015\016"},
- {0x1E57, "\002\004\001\164\003\015\016"},
- {0x1E58, "\002\005\001\120\003\015\016"},
- {0x1E59, "\002\004\001\120\003\015\016"},
- {0x1E5A, "\002\005\001\120\003\015\020"},
- {0x1E5B, "\002\004\001\120\003\015\020"},
- {0x1E5E, "\002\005\001\120\003\052\020"},
- {0x1E5F, "\002\004\001\120\003\052\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"},
{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\110\003\015\016"},
- {0x1E6B, "\002\004\001\110\003\015\016"},
- {0x1E6C, "\002\005\001\110\003\015\020"},
- {0x1E6D, "\002\004\001\110\003\015\020"},
- {0x1E6E, "\002\005\001\110\003\052\020"},
- {0x1E6F, "\002\004\001\110\003\052\020"},
- {0x1E70, "\002\005\001\110\003\027\020"},
- {0x1E71, "\002\004\001\110\003\027\020"},
- {0x1E74, "\002\005\001\024\003\043\020"},
- {0x1E75, "\002\004\001\024\003\043\020"},
+ {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\043\007\013"},
- {0x1E79, "\002\004\001\024\003\043\007\013"},
- {0x1E7A, "\002\005\001\024\003\051\007\037"},
- {0x1E7B, "\002\004\001\024\003\051\007\037"},
- {0x1E7C, "\002\005\001\167\003\043"},
- {0x1E7D, "\002\004\001\167\003\043"},
+ {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\122\003\047"},
- {0x1E81, "\002\004\001\122\003\047"},
- {0x1E82, "\002\005\001\122\003\013"},
- {0x1E83, "\002\004\001\122\003\013"},
- {0x1E84, "\002\005\001\122\003\037"},
- {0x1E85, "\002\004\001\122\003\037"},
- {0x1E86, "\002\005\001\122\003\015\016"},
- {0x1E87, "\002\004\001\122\003\015\016"},
- {0x1E88, "\002\005\001\122\003\015\020"},
- {0x1E89, "\002\004\001\122\003\015\020"},
- {0x1E8A, "\002\005\001\152\003\015\016"},
- {0x1E8B, "\002\004\001\152\003\015\016"},
- {0x1E8C, "\002\005\001\152\003\037"},
- {0x1E8D, "\002\004\001\152\003\037"},
- {0x1E8E, "\002\005\001\104\003\015\016"},
- {0x1E8F, "\002\004\001\104\003\015\016"},
- {0x1E90, "\002\005\001\111\003\027"},
- {0x1E91, "\002\004\001\111\003\027"},
- {0x1E92, "\002\005\001\111\003\015\020"},
- {0x1E93, "\002\004\001\111\003\015\020"},
- {0x1E94, "\002\005\001\111\003\052\020"},
- {0x1E95, "\002\004\001\111\003\052\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"},
{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\043"},
- {0x1EAB, "\002\004\001\030\003\027\007\043"},
+ {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\043"},
- {0x1EB5, "\002\004\001\030\003\057\007\043"},
+ {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\043"},
- {0x1EBD, "\002\004\001\033\003\043"},
+ {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\043"},
- {0x1EC5, "\002\004\001\033\003\027\007\043"},
+ {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"},
{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\043"},
- {0x1ED7, "\002\004\001\023\003\027\007\043"},
- {0x1EDA, "\002\005\001\023\003\107\007\013"},
- {0x1EDB, "\002\004\001\023\003\107\007\013"},
- {0x1EDC, "\002\005\001\023\003\107\007\047"},
- {0x1EDD, "\002\004\001\023\003\107\007\047"},
- {0x1EDE, "\002\005\001\023\003\107\007\065\016"},
- {0x1EDF, "\002\004\001\023\003\107\007\065\016"},
- {0x1EE0, "\002\005\001\023\003\107\007\043"},
- {0x1EE1, "\002\004\001\023\003\107\007\043"},
+ {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\107\007\013"},
- {0x1EE9, "\002\004\001\024\003\107\007\013"},
- {0x1EEA, "\002\005\001\024\003\107\007\047"},
- {0x1EEB, "\002\004\001\024\003\107\007\047"},
- {0x1EEC, "\002\005\001\024\003\107\007\065\016"},
- {0x1EED, "\002\004\001\024\003\107\007\065\016"},
- {0x1EEE, "\002\005\001\024\003\107\007\043"},
- {0x1EEF, "\002\004\001\024\003\107\007\043"},
- {0x1EF2, "\002\005\001\104\003\047"},
- {0x1EF3, "\002\004\001\104\003\047"},
- {0x1EF4, "\002\005\001\104\003\015\020"},
- {0x1EF5, "\002\004\001\104\003\015\020"},
- {0x1EF6, "\002\005\001\104\003\065\016"},
- {0x1EF7, "\002\004\001\104\003\065\016"},
- {0x1EF8, "\002\005\001\104\003\043"},
- {0x1EF9, "\002\004\001\104\003\043"},
+ {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\150"},
+ {0x1FCE, "\012\252\007\013\147"},
{0x1FCF, "\012\252\007\320"},
{0x1FDD, "\012\231\007\334"},
- {0x1FDE, "\012\231\007\013\150"},
+ {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\147"},
- {0x2003, "\276\147"},
- {0x2004, "\377\013\147"},
- {0x2005, "\376\203\147"},
- {0x2006, "\376\354\147"},
- {0x2009, "\377\006\147"},
- {0x200A, "\376\214\147"},
+ {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\143"},
- {0x2014, "\276\143"},
+ {0x2013, "\233\142"},
+ {0x2014, "\276\142"},
{0x2015, "\066\375\040"},
{0x2016, "\064\063\052"},
{0x2017, "\064\312\052"},
- {0x2018, "\034\175\141\046"},
- {0x2019, "\035\175\141\046"},
- {0x201A, "\175\375\153\141\046"},
- {0x201B, "\175\375\130\141\046"},
- {0x201C, "\034\064\141\046"},
- {0x201D, "\035\064\141\046"},
- {0x201E, "\064\375\153\141\046"},
- {0x201F, "\064\375\130\141\046"},
+ {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, "\126\015\376\243"},
+ {0x2025, "\125\015\376\243"},
{0x2026, "\376\254\066\375\103"},
{0x2030, "\376\304\376\255\036"},
{0x2032, "\217"},
{0x2036, "\324\064\217"},
{0x2037, "\324\221\217"},
{0x2038, "\376\117"},
- {0x2039, "\175\245\153\141\046"},
- {0x203A, "\175\254\153\141\046"},
+ {0x2039, "\175\245\152\140\046"},
+ {0x203A, "\175\254\152\140\046"},
{0x203B, "\376\336\046"},
{0x203C, "\064\360\046"},
{0x203E, "\376\300"},
- {0x2044, "\123\376\361"},
- {0x2070, "\121\025\225"},
- {0x2074, "\121\025\145"},
- {0x2075, "\121\025\144"},
- {0x2076, "\121\025\165"},
- {0x2077, "\121\025\151"},
- {0x2078, "\121\025\156"},
- {0x2079, "\121\025\163"},
- {0x207A, "\121\375\002\036"},
- {0x207B, "\121\372"},
- {0x207C, "\121\356\036"},
- {0x207D, "\121\034\215"},
- {0x207E, "\121\035\215"},
- {0x207F, "\121\002\004\001\061"},
- {0x2080, "\130\025\225"},
- {0x2081, "\130\025\117"},
- {0x2082, "\130\025\126"},
- {0x2083, "\130\025\131"},
- {0x2084, "\130\025\145"},
- {0x2085, "\130\025\144"},
- {0x2086, "\130\025\165"},
- {0x2087, "\130\025\151"},
- {0x2088, "\130\025\156"},
- {0x2089, "\130\025\163"},
- {0x208A, "\130\375\002\036"},
- {0x208B, "\130\372"},
- {0x208C, "\130\356\036"},
- {0x208D, "\130\034\215"},
- {0x208E, "\130\035\215"},
+ {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\112"},
+ {0x2105, "\376\116\110"},
{0x2109, "\350\376\163"},
{0x2116, "\376\270\036"},
{0x2117, "\330\376\335\375\061"},
{0x2122, "\377\015\046\036"},
{0x2126, "\376\272\036"},
{0x212B, "\376\071\036"},
- {0x2153, "\132\123\117\377\007"},
- {0x2154, "\132\123\126\377\010"},
- {0x2155, "\132\123\117\376\175"},
- {0x2156, "\132\123\126\362"},
- {0x2157, "\132\123\131\362"},
- {0x2158, "\132\123\145\362"},
- {0x2159, "\132\123\117\376\357"},
- {0x215A, "\132\123\144\376\360"},
- {0x215B, "\132\123\117\352"},
- {0x215C, "\132\123\131\353"},
- {0x215D, "\132\123\144\353"},
- {0x215E, "\132\123\151\353"},
- {0x2160, "\062\055\117"},
- {0x2161, "\062\055\126"},
- {0x2162, "\062\055\131"},
- {0x2163, "\062\055\145"},
- {0x2164, "\062\055\144"},
+ {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\151"},
- {0x2167, "\062\055\156"},
- {0x2168, "\062\055\163"},
+ {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\117"},
- {0x2171, "\004\062\055\126"},
- {0x2172, "\004\062\055\131"},
- {0x2173, "\004\062\055\145"},
- {0x2174, "\004\062\055\144"},
+ {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\151"},
- {0x2177, "\004\062\055\156"},
- {0x2178, "\004\062\055\163"},
+ {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\136"},
- {0x2191, "\377\022\136"},
- {0x2192, "\375\005\136"},
- {0x2193, "\376\152\136"},
- {0x2194, "\034\035\136"},
- {0x2195, "\053\054\136"},
- {0x2196, "\375\173\375\271\136"},
- {0x2197, "\375\173\375\100\136"},
- {0x2198, "\375\241\375\100\136"},
- {0x2199, "\375\241\375\271\136"},
+ {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\136"},
- {0x21D2, "\375\005\064\136"},
- {0x21D4, "\034\035\064\136"},
+ {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\112"},
+ {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, "\142\203"},
+ {0x2218, "\141\203"},
{0x2219, "\375\047\203"},
- {0x221A, "\127\376\342"},
- {0x221D, "\376\326\113"},
+ {0x221A, "\126\376\342"},
+ {0x221D, "\376\326\111"},
{0x221E, "\376\230"},
- {0x221F, "\035\153"},
- {0x2220, "\153"},
- {0x2225, "\376\302\113"},
+ {0x221F, "\035\152"},
+ {0x2220, "\152"},
+ {0x2225, "\376\302\111"},
{0x2227, "\375\152\007"},
{0x2228, "\375\152\214"},
{0x2229, "\376\231"},
{0x2235, "\376\106"},
{0x2236, "\376\331"},
{0x2237, "\376\325"},
- {0x223C, "\043\203"},
+ {0x223C, "\042\203"},
{0x223E, "\306\376\242\070"},
- {0x2243, "\376\076\157\113"},
- {0x2245, "\375\035\157\113"},
- {0x2248, "\376\064\157\113"},
- {0x224C, "\375\033\157\113"},
- {0x2253, "\376\225\112\214\375\035\157\113"},
- {0x2260, "\251\157\113"},
- {0x2261, "\376\222\113"},
- {0x2264, "\311\214\157\113"},
- {0x2265, "\303\214\157\113"},
+ {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\112"},
- {0x2283, "\375\247\112"},
- {0x2286, "\375\246\112\214\157\113"},
- {0x2287, "\375\247\112\214\157\113"},
+ {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\142\203"},
+ {0x229A, "\026\141\203"},
{0x22A5, "\053\376\374"},
{0x22C5, "\015\203"},
{0x22EE, "\063\375\103"},
{0x2310, "\324\251\036"},
{0x2312, "\376\074"},
{0x2315, "\375\013\376\334"},
- {0x2320, "\377\014\160\240"},
- {0x2321, "\376\111\160\240"},
- {0x2329, "\245\153\114"},
- {0x232A, "\254\153\114"},
+ {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\112\375\054"},
- {0x2448, "\174\143"},
- {0x2449, "\174\376\136\376\061\134"},
- {0x2460, "\026\025\117"},
- {0x2461, "\026\025\126"},
- {0x2462, "\026\025\131"},
- {0x2463, "\026\025\145"},
- {0x2464, "\026\025\144"},
+ {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\151"},
- {0x2467, "\026\025\156"},
- {0x2468, "\026\025\163"},
- {0x2474, "\040\025\117"},
- {0x2475, "\040\025\126"},
- {0x2476, "\040\025\131"},
- {0x2477, "\040\025\145"},
- {0x2478, "\040\025\144"},
+ {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\151"},
- {0x247B, "\040\025\156"},
- {0x247C, "\040\025\163"},
- {0x2488, "\025\117\074\103"},
- {0x2489, "\025\126\074\103"},
- {0x248A, "\025\131\074\103"},
- {0x248B, "\025\145\074\103"},
- {0x248C, "\025\144\074\103"},
- {0x248D, "\025\165\074\103"},
- {0x248E, "\025\151\074\103"},
- {0x248F, "\025\156\074\103"},
- {0x2490, "\025\163\074\103"},
- {0x2491, "\134\332\074\103"},
- {0x2492, "\134\354\074\103"},
- {0x2493, "\134\375\015\074\103"},
- {0x2494, "\134\377\011\074\103"},
- {0x2495, "\134\376\204\074\103"},
- {0x2496, "\134\376\174\074\103"},
- {0x2497, "\134\376\355\074\103"},
- {0x2498, "\134\376\351\074\103"},
- {0x2499, "\134\376\156\074\103"},
- {0x249A, "\134\376\265\074\103"},
- {0x249B, "\134\377\017\074\103"},
+ {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\137"},
- {0x249E, "\040\002\004\001\115"},
- {0x249F, "\040\002\004\001\105"},
+ {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\106"},
+ {0x24A3, "\040\002\004\001\104"},
{0x24A4, "\040\002\004\001\041"},
{0x24A5, "\040\002\004\001\171"},
- {0x24A6, "\040\002\004\001\124"},
+ {0x24A6, "\040\002\004\001\123"},
{0x24A7, "\040\002\004\001\077"},
- {0x24A8, "\040\002\004\001\146"},
+ {0x24A8, "\040\002\004\001\145"},
{0x24A9, "\040\002\004\001\061"},
{0x24AA, "\040\002\004\001\023"},
- {0x24AB, "\040\002\004\001\164"},
+ {0x24AB, "\040\002\004\001\163"},
{0x24AC, "\040\002\004\001\220"},
- {0x24AD, "\040\002\004\001\120"},
+ {0x24AD, "\040\002\004\001\116"},
{0x24AE, "\040\002\004\001\070"},
- {0x24AF, "\040\002\004\001\110"},
+ {0x24AF, "\040\002\004\001\106"},
{0x24B0, "\040\002\004\001\024"},
{0x24B1, "\040\002\004\001\167"},
- {0x24B2, "\040\002\004\001\122"},
- {0x24B3, "\040\002\004\001\152"},
- {0x24B4, "\040\002\004\001\104"},
- {0x24B5, "\040\002\004\001\111"},
+ {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\137"},
- {0x24B8, "\026\002\005\001\115"},
- {0x24B9, "\026\002\005\001\105"},
+ {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\106"},
+ {0x24BD, "\026\002\005\001\104"},
{0x24BE, "\026\002\005\001\041"},
{0x24BF, "\026\002\005\001\171"},
- {0x24C0, "\026\002\005\001\124"},
+ {0x24C0, "\026\002\005\001\123"},
{0x24C1, "\026\002\005\001\077"},
- {0x24C2, "\026\002\005\001\146"},
+ {0x24C2, "\026\002\005\001\145"},
{0x24C3, "\026\002\005\001\061"},
{0x24C4, "\026\002\005\001\023"},
- {0x24C5, "\026\002\005\001\164"},
+ {0x24C5, "\026\002\005\001\163"},
{0x24C6, "\026\002\005\001\220"},
- {0x24C7, "\026\002\005\001\120"},
+ {0x24C7, "\026\002\005\001\116"},
{0x24C8, "\026\002\005\001\070"},
- {0x24C9, "\026\002\005\001\110"},
+ {0x24C9, "\026\002\005\001\106"},
{0x24CA, "\026\002\005\001\024"},
{0x24CB, "\026\002\005\001\167"},
- {0x24CC, "\026\002\005\001\122"},
- {0x24CD, "\026\002\005\001\152"},
- {0x24CE, "\026\002\005\001\104"},
- {0x24CF, "\026\002\005\001\111"},
+ {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\137"},
- {0x24D2, "\026\002\004\001\115"},
- {0x24D3, "\026\002\004\001\105"},
+ {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\106"},
+ {0x24D7, "\026\002\004\001\104"},
{0x24D8, "\026\002\004\001\041"},
{0x24D9, "\026\002\004\001\171"},
- {0x24DA, "\026\002\004\001\124"},
+ {0x24DA, "\026\002\004\001\123"},
{0x24DB, "\026\002\004\001\077"},
- {0x24DC, "\026\002\004\001\146"},
+ {0x24DC, "\026\002\004\001\145"},
{0x24DD, "\026\002\004\001\061"},
{0x24DE, "\026\002\004\001\023"},
- {0x24DF, "\026\002\004\001\164"},
+ {0x24DF, "\026\002\004\001\163"},
{0x24E0, "\026\002\004\001\220"},
- {0x24E1, "\026\002\004\001\120"},
+ {0x24E1, "\026\002\004\001\116"},
{0x24E2, "\026\002\004\001\070"},
- {0x24E3, "\026\002\004\001\110"},
+ {0x24E3, "\026\002\004\001\106"},
{0x24E4, "\026\002\004\001\024"},
{0x24E5, "\026\002\004\001\167"},
- {0x24E6, "\026\002\004\001\122"},
- {0x24E7, "\026\002\004\001\152"},
- {0x24E8, "\026\002\004\001\104"},
- {0x24E9, "\026\002\004\001\111"},
+ {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\143\066"},
- {0x2505, "\021\022\032\221\143\066"},
- {0x2506, "\021\022\031\221\143\063"},
- {0x2507, "\021\022\032\221\143\063"},
- {0x2508, "\021\022\031\323\143\066"},
- {0x2509, "\021\022\032\323\143\066"},
- {0x250A, "\021\022\031\323\143\063"},
- {0x250B, "\021\022\032\323\143\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"},
{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\113\173\034"},
- {0x2572, "\021\022\031\351\264\034\113\173\035"},
- {0x2580, "\264\160\207"},
- {0x2584, "\173\160\207"},
+ {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\160\207"},
- {0x2590, "\035\160\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\127"},
- {0x25A1, "\067\127"},
- {0x25A2, "\067\127\003\376\343\376\133"},
- {0x25A3, "\067\127\376\130\071\004\127"},
- {0x25A4, "\127\003\066\213"},
- {0x25A5, "\127\003\063\213"},
- {0x25A6, "\127\003\376\275\375\062\213"},
- {0x25A7, "\127\003\264\034\113\173\035\213"},
- {0x25A8, "\127\003\264\035\113\173\034\213"},
- {0x25A9, "\127\003\351\375\062\213"},
- {0x25AA, "\071\004\127"},
+ {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"},
{0x25CB, "\067\210"},
{0x25CE, "\376\114"},
{0x25CF, "\071\210"},
- {0x25D0, "\210\003\034\160\071"},
- {0x25D1, "\210\003\035\160\071"},
+ {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"},
{0x266E, "\373\376\262\036"},
{0x266F, "\373\375\231\036"},
{0x2713, "\375\054\046"},
- {0x2717, "\376\104\152"},
+ {0x2717, "\376\104\151"},
{0x2720, "\376\250\376\134"},
- {0x3000, "\201\147"},
+ {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\134\225"},
- {0x300A, "\034\064\153\114"},
- {0x300B, "\035\064\153\114"},
- {0x300C, "\034\273\114"},
- {0x300D, "\035\273\114"},
- {0x300E, "\034\067\273\114"},
- {0x300F, "\035\067\273\114"},
- {0x3010, "\034\071\310\114"},
- {0x3011, "\035\071\310\114"},
+ {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\114"},
- {0x3015, "\035\375\256\375\233\114"},
- {0x3016, "\034\067\310\114"},
- {0x3017, "\035\067\310\114"},
- {0x301C, "\377\032\143"},
+ {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"},
{0x3065, "\017\001\375\075"},
{0x3066, "\017\001\331"},
{0x3067, "\017\001\274"},
- {0x3068, "\017\001\113"},
+ {0x3068, "\017\001\111"},
{0x3069, "\017\001\375\073"},
{0x306A, "\017\001\375\166"},
{0x306B, "\017\001\375\171"},
{0x30C5, "\014\001\375\075"},
{0x30C6, "\014\001\331"},
{0x30C7, "\014\001\274"},
- {0x30C8, "\014\001\113"},
+ {0x30C8, "\014\001\111"},
{0x30C9, "\014\001\375\073"},
{0x30CA, "\014\001\375\166"},
{0x30CB, "\014\001\375\171"},
{0x30FC, "\366\376\324\330\046"},
{0x30FD, "\014\241\046"},
{0x30FE, "\014\375\020\241\046"},
- {0x3105, "\044\001\137"},
- {0x3106, "\044\001\164"},
- {0x3107, "\044\001\146"},
- {0x3108, "\044\001\172"},
- {0x3109, "\044\001\105"},
- {0x310A, "\044\001\110"},
- {0x310B, "\044\001\061"},
- {0x310C, "\044\001\077"},
- {0x310D, "\044\001\075"},
- {0x310E, "\044\001\124"},
- {0x310F, "\044\001\106"},
- {0x3110, "\044\001\171"},
- {0x3111, "\044\001\220"},
- {0x3112, "\044\001\152"},
- {0x3113, "\044\001\377\040"},
- {0x3114, "\044\001\376\123"},
- {0x3115, "\044\001\376\352"},
- {0x3116, "\044\001\120"},
- {0x3117, "\044\001\111"},
- {0x3118, "\044\001\115"},
- {0x3119, "\044\001\070"},
- {0x311A, "\044\001\030"},
- {0x311B, "\044\001\023"},
- {0x311C, "\044\001\033"},
- {0x311D, "\044\001\376\154"},
- {0x311E, "\044\001\376\063"},
- {0x311F, "\044\001\376\155"},
- {0x3120, "\044\001\376\100"},
- {0x3121, "\044\001\376\276"},
- {0x3122, "\044\001\376\067"},
- {0x3123, "\044\001\233"},
- {0x3124, "\044\001\376\070"},
- {0x3125, "\044\001\355"},
- {0x3126, "\044\001\357"},
- {0x3127, "\044\001\041"},
- {0x3128, "\044\001\024"},
- {0x3129, "\044\001\376\232"},
- {0x312A, "\044\001\167"},
- {0x312B, "\044\001\376\264"},
- {0x312C, "\044\001\376\210"},
- {0x3220, "\040\162\117"},
- {0x3221, "\040\162\126"},
- {0x3222, "\040\162\131"},
- {0x3223, "\040\162\145"},
- {0x3224, "\040\162\144"},
- {0x3225, "\040\162\165"},
- {0x3226, "\040\162\151"},
- {0x3227, "\040\162\156"},
- {0x3228, "\040\162\163"},
- {0x3229, "\040\162\332"},
+ {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, "\101\377\020\375\023\375\027\100\102"},
- {0xE001, "\101\037\003\150\375\357\376\040\100\102"},
- {0xE002, "\101\047\150\133\376\041\100\102"},
- {0xE003, "\101\013\150\133\376\042\100\102"},
- {0xE004, "\101\027\150\133\376\043\100\102"},
- {0xE005, "\101\043\133\376\044\100\102"},
- {0xE006, "\101\051\133\376\045\100\102"},
- {0xE007, "\101\057\133\376\046\100\102"},
- {0xE008, "\101\015\016\133\376\047\100\102"},
- {0xE009, "\101\037\133\376\050\100\102"},
- {0xE00A, "\101\142\016\133\376\051\100\102"},
- {0xE00B, "\101\060\133\376\052\100\102"},
- {0xE00C, "\101\312\052\133\375\030\100\102"},
- {0xE00D, "\101\064\376\062\133\375\030\100\102"},
- {0xE00E, "\101\135\133\375\031\100\102"},
- {0xE00F, "\101\045\133\375\031\100\102"},
- {0xE010, "\101\064\312\052\375\023\376\053\100\102"},
- {0xE011, "\101\376\245\375\011\375\355\375\027\100\102"},
- {0xE012, "\012\101\252\322\344\376\054\100\102"},
- {0xE013, "\012\101\231\322\344\376\055\100\102"},
- {0xE014, "\012\101\170\020\344\376\056\100\102"},
+ {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\042\010\375\060\375\347\376\036"},
+ {0xE016, "\006\001\073\044\010\375\060\375\347\376\036"},
{0xE017, "\377\001\375\060\036\342\376\025"},
- {0xE018, "\375\016\147\030\375\024\376\032"},
- {0xE019, "\375\016\147\137\375\024\376\033"},
+ {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\116\376\170"},
- {0xFB01, "\002\004\116\376\173"},
- {0xFB02, "\002\004\116\376\177"},
- {0xFB03, "\002\004\116\376\171"},
- {0xFB04, "\002\004\116\376\172"},
- {0xFB06, "\002\004\116\376\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\042\010"},
- {0xFE84, "\006\001\073\003\161\016\042\010"},
- {0xFE8D, "\006\001\073\050\010"},
- {0xFE8E, "\006\001\073\042\010"},
- {0xFE8F, "\006\001\227\050\010"},
- {0xFE90, "\006\001\227\042\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\050\010"},
- {0xFE94, "\006\001\177\371\042\010"},
- {0xFE95, "\006\001\177\050\010"},
- {0xFE96, "\006\001\177\042\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\050\010"},
- {0xFE9A, "\006\001\263\042\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\050\010"},
- {0xFE9E, "\006\001\242\042\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\050\010"},
- {0xFEA2, "\006\001\236\042\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\050\010"},
- {0xFEA6, "\006\001\244\042\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\050\010"},
- {0xFEAA, "\006\001\347\042\010"},
- {0xFEAB, "\006\001\375\014\050\010"},
- {0xFEAC, "\006\001\375\014\042\010"},
- {0xFEAD, "\006\001\375\004\050\010"},
- {0xFEAE, "\006\001\375\004\042\010"},
- {0xFEAF, "\006\001\375\021\050\010"},
- {0xFEB0, "\006\001\375\021\042\010"},
- {0xFEB1, "\006\001\256\050\010"},
- {0xFEB2, "\006\001\256\042\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\050\010"},
- {0xFEB6, "\006\001\257\042\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\050\010"},
- {0xFEBA, "\006\001\255\042\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\050\010"},
- {0xFEBE, "\006\001\230\042\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\050\010"},
- {0xFEC2, "\006\001\262\042\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\050\010"},
- {0xFEC6, "\006\001\265\042\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\050\010"},
- {0xFECA, "\006\001\226\042\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\050\010"},
- {0xFECE, "\006\001\235\042\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\050\010"},
- {0xFED2, "\006\001\234\042\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\050\010"},
- {0xFED6, "\006\001\253\042\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\050\010"},
- {0xFEDA, "\006\001\202\042\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\140\050\010"},
- {0xFEDE, "\006\001\140\042\010"},
- {0xFEDF, "\006\001\140\076\010"},
- {0xFEE0, "\006\001\140\072\010"},
- {0xFEE1, "\006\001\246\050\010"},
- {0xFEE2, "\006\001\246\042\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\050\010"},
- {0xFEE6, "\006\001\250\042\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\050\010"},
- {0xFEEA, "\006\001\237\042\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\050\010"},
- {0xFEEE, "\006\001\336\042\010"},
- {0xFEEF, "\006\001\073\370\050\010"},
- {0xFEF0, "\006\001\073\370\042\010"},
- {0xFEF1, "\006\001\223\050\010"},
- {0xFEF2, "\006\001\223\042\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\116\140\003\073\003\313\016\050\010"},
- {0xFEF6, "\006\116\140\003\073\003\313\016\042\010"},
- {0xFEF7, "\006\116\140\003\073\003\161\016\050\010"},
- {0xFEF8, "\006\116\140\003\073\003\161\016\042\010"},
- {0xFEF9, "\006\116\140\003\073\003\161\020\050\010"},
- {0xFEFA, "\006\116\140\003\073\003\161\020\042\010"},
- {0xFEFB, "\006\116\140\003\073\050\010"},
- {0xFEFC, "\006\116\140\003\073\042\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"},
};
/* FIXME: Cleanup memory at end of job, and softly report errors. */
-/* Date: 1998-12-11 20:20 -0500
-X-From-Line: recode-forum-owner@IRO.UMontreal.CA Fri Dec 11 21:22:51 1998
-Return-Path: <recode-forum-owner@iro.umontreal.ca>
-Received: from degusse.IRO.UMontreal.CA (degusse.IRO.UMontreal.CA [132.204.24.51])
- by lagrande.IRO.UMontreal.CA (8.9.1/8.9.1) with ESMTP id VAA08222
- for <pinard@lagrande.IRO.UMontreal.CA>; Fri, 11 Dec 1998 21:22:51 -0500 (EST)
-Received: by degusse.IRO.UMontreal.CA (8.9.1/8.9.1) id VAA11542
- for recode-forum-outgoing; Fri, 11 Dec 1998 21:22:44 -0500 (EST)
-Received: from jupiter.rtsq.qc.ca (rtsq.grics.qc.ca [199.84.132.81])
- by degusse.IRO.UMontreal.CA (8.9.1/8.9.1) with ESMTP id VAA11529
- for <recode-forum@iro.umontreal.ca>; Fri, 11 Dec 1998 21:22:38 -0500 (EST)
-Received: from ariel.progiciels-bpi.ca by jupiter.rtsq.qc.ca (8.8.8/8.8.8) with SMTP id VAA10935 for <@jupiter.rtsq.qc.ca:recode-forum@iro.umontreal.ca>; Fri, 11 Dec 1998 21:22:10 -0500
-Received: from icule.progiciels-bpi.ca (uucp@localhost) by ariel.progiciels-bpi.ca (950413.SGI.8.6.12/950213.SGI) via UUCP id VAA17236 for recode-forum@iro.umontreal.ca; Fri, 11 Dec 1998 21:23:51 -0800
-Received: by icule.progiciels-bpi.ca (8.8.8/8.8.8) id UAA05839; Fri, 11 Dec 1998 20:21:00 -0500
-X-Face: "b_m|CE6#'Q8fliQrwHl9K,]PA_o'*S~Dva{~b1n*)K*A(BIwQW.:LY?t4~xhYka_.LV?Qq
- `}X|71X0ea&H]9Dsk!`kxBXlG;q$mLfv_vtaHK_rHFKu]4'<*LWCyUe@ZcI6"*wB5M@[m<Ok5/cC^=
- CxDhg=TJi^o[E
-Message-ID: <oq90ge17gk.fsf@icule.progiciels-bpi.ca>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=iso-8859-1
-Content-Transfer-Encoding: 8bit
-Sender: owner-recode-forum@IRO.UMontreal.CA
-Precedence: bulk
-Lines: 49
-Xref: titan.progiciels-bpi.ca entretien.recode:1739
-
- Let me take a few minutes of rest, and share with you the state of combining
- in `recode'. Fun enough, my initial writing of it, which was using some
- space while it was boiling, reduced to something small and rather simple
- after some time, from merging of structures and functions, and removal of
- some limits. It does not even show, now, that it once was more complicated!
-
- The satisfactory aspects are that `recode' is now able to combine a set of
+/* 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
- codes into the original sequence. It may happen that many sequences
- reduce to the same code, one of them is arbitrarily taken as canonical.
- Any combining sequence of an equivalent set produces the equivalent code,
- but at explode time, codes are always turned into their canonical sequence.
- I did not limit the length of a combining sequence, yet it is usually small.
- Also, I did not put any limit on the number of possibly equivalent sequences.
- For combining, for each possible partial match in any sequence, there is
- a state. States corresponding to the scan of a single code are found by
- hash coding, while other states are linearly searched on a linked list of
- possible shifts, rooted on the state corresponding to the partial sequence,
- but without its last code. I expect this combination of methods to execute
- reasonably fast. Exploding is much simpler, and I merely use 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 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
+ codes into the original sequence. It may happen that many sequences reduce
+ to the same code, one of them is arbitrarily taken as canonical. Any
+ combining sequence of an equivalent set produces the equivalent code, but
+ at explode time, codes are always turned into their canonical sequence. I
+ did not limit the length of a combining sequence, yet it is usually small.
+ Also, I did not put any limit on the number of possibly equivalent
+ sequences. For combining, for each possible partial match in any sequence,
+ there is a state. States corresponding to the scan of a single code are
+ found by hash coding, while other states are linearly searched on a linked
+ list of possible shifts, rooted on the state corresponding to the partial
+ sequence, but without its last code. I expect this combination of methods
+ to execute reasonably fast. Exploding is much simpler, and I merely use
+ 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
+ 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
transliteration matters. Even if built on UCS-2, combining matters would
have natural extensions in other _smaller_ charsets, and it would be nice
being able to derive the functionality automatically. One difficulty to
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
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.
+ 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.
Also, I'm pretty sure that scrutinizing the documents (from w3.org or
- Unicode) that were suggested to us will raise new specific concerns.
-
- In any case, I'll try to clean a bit more around, for a few hours or maybe
- a few days, who knows :-), and prepare a new pretest offering "combined".
- Hmph! Some documentation, even if terse, would also be welcome. More
- later. */
+ Unicode) that were suggested to us will raise new specific concerns. */
\f
/* Exploding. */
unsigned short result; /* character equivalent to the combination */
struct state *shift; /* list of states for one more character */
struct state *unshift; /* state for one less character (back link) */
- struct state *next; /* next state within a linked chain of states */
+ struct state *next; /* next state in a linked chain of states */
};
/*---------------------------.
bool module_utf8 PARAMS ((struct recode_outer *));
bool module_varia PARAMS ((struct recode_outer *));
bool module_varia PARAMS ((struct recode_outer *));
+bool module_viet PARAMS ((struct recode_outer *));
+bool module_viet PARAMS ((struct recode_outer *));
bool module_flat PARAMS ((struct recode_outer *));
bool module_flat PARAMS ((struct recode_outer *));
bool module_html PARAMS ((struct recode_outer *));
-/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.pl'. */
+/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.py'. */
/* Conversion of files between different charsets and surfaces.
Copyright © 1999 Free Software Foundation, Inc.
#define MAX_CHARNAME_LENGTH 90
#define NUMBER_OF_CHARNAMES 6369
-static const char *const word[2006] =
+static const char *const word[2007] =
{
"lettre", /* \001 */
"arabe", /* \002 */
"ta", /* \371\017 */
"tcha", /* \371\020 */
"yo", /* \371\021 */
- "brisé", /* \371\022 */
- "commande", /* \371\023 */
- "d'échecs", /* \371\024 */
- "espace", /* \371\025 */
- "harpon", /* \371\026 */
- "jeu", /* \371\027 */
- "mai", /* \371\030 */
- "opérateur", /* \371\031 */
- "petite", /* \371\032 */
- "rr", /* \371\033 */
- "waw", /* \371\034 */
- "kirghize", /* \371\035 */
- "moins", /* \371\036 */
- "médian", /* \371\037 */
- "oe", /* \371\040 */
- "par", /* \371\041 */
- "roc", /* \371\042 */
- "sens", /* \371\043 */
- "shadda", /* \371\044 */
- "so", /* \371\045 */
- "souligné", /* \371\046 */
- "triple", /* \371\047 */
- "you", /* \371\050 */
- "arc", /* \371\051 */
- "ba", /* \371\052 */
- "cha", /* \371\053 */
- "digramme", /* \371\054 */
- "ee", /* \371\055 */
- "ga", /* \371\056 */
- "ghé", /* \371\057 */
- "ho", /* \371\060 */
- "kha", /* \371\061 */
- "normal", /* \371\062 */
- "oo", /* \371\063 */
- "prime", /* \371\064 */
- "q", /* \371\065 */
- "rétroflexe", /* \371\066 */
- "son", /* \371\067 */
- "tho", /* \371\070 */
- "tiret", /* \371\071 */
- "étendu", /* \371\072 */
- "chin", /* \371\073 */
- "comme", /* \371\074 */
- "coup", /* \371\075 */
- "dans", /* \371\076 */
- "dja", /* \371\077 */
- "empennage", /* \371\100 */
- "glotte", /* \371\101 */
- "hangzhou", /* \371\102 */
- "he", /* \371\103 */
- "huitièmes", /* \371\104 */
- "intégrale", /* \371\105 */
- "large", /* \371\106 */
- "longueur", /* \371\107 */
- "losange", /* \371\110 */
- "mais", /* \371\111 */
- "ne", /* \371\112 */
- "nga", /* \371\113 */
- "nna", /* \371\114 */
- "pe", /* \371\115 */
- "tchiûtch", /* \371\116 */
- "tta", /* \371\117 */
- "virama", /* \371\120 */
- "wa", /* \371\121 */
- "wo", /* \371\122 */
- "zay", /* \371\123 */
- "ña", /* \371\124 */
- "abkhasien", /* \371\125 */
- "bha", /* \371\126 */
- "bref", /* \371\127 */
- "candra", /* \371\130 */
- "d'exclamation", /* \371\131 */
- "d'un", /* \371\132 */
- "dal", /* \371\133 */
- "dda", /* \371\134 */
- "ddha", /* \371\135 */
- "dent", /* \371\136 */
- "dha", /* \371\137 */
- "douze", /* \371\140 */
- "début", /* \371\141 */
- "ej", /* \371\142 */
- "enne", /* \371\143 */
- "gaf", /* \371\144 */
- "gha", /* \371\145 */
- "grosse", /* \371\146 */
- "hiûh", /* \371\147 */
- "index", /* \371\150 */
- "iûng", /* \371\151 */
- "jé", /* \371\152 */
- "k'iûk'", /* \371\153 */
- "kiyok", /* \371\154 */
- "ll", /* \371\155 */
- "lla", /* \371\156 */
- "mille", /* \371\157 */
- "miûm", /* \371\160 */
- "monétaire", /* \371\161 */
- "niûn", /* \371\162 */
- "no", /* \371\163 */
- "ombrée", /* \371\164 */
- "p'iûp'", /* \371\165 */
- "pha", /* \371\166 */
- "piûp", /* \371\167 */
- "rhô", /* \371\170 */
- "riûl", /* \371\171 */
- "rra", /* \371\172 */
- "siôs", /* \371\173 */
- "sous-groupe", /* \371\174 */
- "ssa", /* \371\175 */
- "supérieure", /* \371\176 */
- "t'iût'", /* \371\177 */
- "tch'iûtch'", /* \371\200 */
- "tchha", /* \371\201 */
- "tha", /* \371\202 */
- "tikût", /* \371\203 */
- "trigramme", /* \371\204 */
- "ttha", /* \371\205 */
- "va", /* \371\206 */
- "visarga", /* \371\207 */
- "yousse", /* \371\210 */
- "za'", /* \371\211 */
- "écaille", /* \371\212 */
- "ajouré", /* \371\213 */
- "anousvara", /* \371\214 */
- "apostrophe", /* \371\215 */
- "au", /* \371\216 */
- "barrée", /* \371\217 */
- "bouclé", /* \371\220 */
- "cadratin", /* \371\221 */
- "cent", /* \371\222 */
- "coeur", /* \371\223 */
- "d'interrogation", /* \371\224 */
- "d'union", /* \371\225 */
- "djha", /* \371\226 */
- "famille", /* \371\227 */
- "fantaisie", /* \371\230 */
- "gôl", /* \371\231 */
- "image", /* \371\232 */
- "inférieure", /* \371\233 */
- "ié", /* \371\234 */
- "ke", /* \371\235 */
- "kho", /* \371\236 */
- "ko", /* \371\237 */
- "mo", /* \371\240 */
- "nord-est", /* \371\241 */
- "ombre", /* \371\242 */
- "onze", /* \371\243 */
- "par-dessus", /* \371\244 */
- "pointé", /* \371\245 */
- "schwa", /* \371\246 */
- "seize", /* \371\247 */
- "souscrits", /* \371\250 */
- "sud-est", /* \371\251 */
- "sur", /* \371\252 */
- "to", /* \371\253 */
- "transmission", /* \371\254 */
- "tu", /* \371\255 */
- "yu", /* \371\256 */
- "é", /* \371\257 */
- "accolade", /* \371\260 */
- "alef", /* \371\261 */
- "angle", /* \371\262 */
- "candrabindou", /* \371\263 */
- "carrée", /* \371\264 */
- "contient", /* \371\265 */
- "couvrante", /* \371\266 */
- "delta", /* \371\267 */
- "demi-rond", /* \371\270 */
- "dz", /* \371\271 */
- "farsi", /* \371\272 */
- "gamma", /* \371\273 */
- "inversée", /* \371\274 */
- "iotacisme", /* \371\275 */
- "katakana-hiragana", /* \371\276 */
- "lenticulaire", /* \371\277 */
- "logique", /* \371\300 */
- "madda", /* \371\301 */
- "mien", /* \371\302 */
- "ng", /* \371\303 */
- "nu", /* \371\304 */
- "numérateur", /* \371\305 */
- "ouvert", /* \371\306 */
- "pi", /* \371\307 */
- "ponctuation", /* \371\310 */
- "positif", /* \371\311 */
- "produit", /* \371\312 */
- "quadrant", /* \371\313 */
- "re", /* \371\314 */
- "rectangle", /* \371\315 */
- "répétition", /* \371\316 */
- "se", /* \371\317 */
- "soung", /* \371\320 */
- "sous-ensemble", /* \371\321 */
- "suit", /* \371\322 */
- "sur-ensemble", /* \371\323 */
- "tam", /* \371\324 */
- "triangulaire", /* \371\325 */
- "té", /* \371\326 */
- "vrachy", /* \371\327 */
- "wi", /* \371\330 */
- "yod", /* \371\331 */
- "zé", /* \371\332 */
- "ajourée", /* \371\333 */
- "approximativement", /* \371\334 */
- "arménien", /* \371\335 */
- "bea'", /* \371\336 */
- "beha'", /* \371\337 */
- "bourre", /* \371\340 */
- "bulletin", /* \371\341 */
- "clic", /* \371\342 */
- "culbutée", /* \371\343 */
- "d'appareil", /* \371\344 */
- "d'itération", /* \371\345 */
- "damma", /* \371\346 */
- "deux-points", /* \371\347 */
- "dix-huit", /* \371\350 */
- "dix-neuf", /* \371\351 */
- "dix-sept", /* \371\352 */
- "do", /* \371\353 */
- "doatchachmi", /* \371\354 */
- "dya'", /* \371\355 */
- "encadré", /* \371\356 */
- "esse", /* \371\357 */
- "est", /* \371\360 */
- "fatha", /* \371\361 */
- "fathatan", /* \371\362 */
- "gothique", /* \371\363 */
- "gua'", /* \371\364 */
- "hachuré", /* \371\365 */
- "huitième", /* \371\366 */
- "jusqu'à", /* \371\367 */
- "kana", /* \371\370 */
- "kasra", /* \371\371 */
- "keha'", /* \371\372 */
- "lo", /* \371\373 */
- "ngoa'", /* \371\374 */
- "nord-ouest", /* \371\375 */
- "noukta", /* \371\376 */
- "nya'", /* \371\377 */
- "ondulé", /* \372\001 */
- "original", /* \372\002 */
- "ouïgour", /* \372\003 */
- "pa'", /* \372\004 */
- "peha'", /* \372\005 */
- "pho", /* \372\006 */
- "point-virgule", /* \372\007 */
- "précède", /* \372\010 */
- "quatorze", /* \372\011 */
- "quinze", /* \372\012 */
- "rnoûn", /* \372\013 */
- "ro", /* \372\014 */
- "soleil", /* \372\015 */
- "tcheha'", /* \372\016 */
- "tchim'", /* \372\017 */
- "teha'", /* \372\020 */
- "terre", /* \372\021 */
- "ti", /* \372\022 */
- "treize", /* \372\023 */
- "tta'", /* \372\024 */
- "tteha'", /* \372\025 */
- "va'", /* \372\026 */
- "vav", /* \372\027 */
- "vingt", /* \372\030 */
- "voisé", /* \372\031 */
- "vote", /* \372\032 */
- "we", /* \372\033 */
- "élevé", /* \372\034 */
- "", /* \372\035 */
+ "*", /* \371\022 */
+ "brisé", /* \371\023 */
+ "commande", /* \371\024 */
+ "d'échecs", /* \371\025 */
+ "espace", /* \371\026 */
+ "harpon", /* \371\027 */
+ "jeu", /* \371\030 */
+ "mai", /* \371\031 */
+ "opérateur", /* \371\032 */
+ "petite", /* \371\033 */
+ "rr", /* \371\034 */
+ "waw", /* \371\035 */
+ "kirghize", /* \371\036 */
+ "moins", /* \371\037 */
+ "médian", /* \371\040 */
+ "oe", /* \371\041 */
+ "par", /* \371\042 */
+ "roc", /* \371\043 */
+ "sens", /* \371\044 */
+ "shadda", /* \371\045 */
+ "so", /* \371\046 */
+ "souligné", /* \371\047 */
+ "triple", /* \371\050 */
+ "you", /* \371\051 */
+ "arc", /* \371\052 */
+ "ba", /* \371\053 */
+ "cha", /* \371\054 */
+ "digramme", /* \371\055 */
+ "ee", /* \371\056 */
+ "ga", /* \371\057 */
+ "ghé", /* \371\060 */
+ "ho", /* \371\061 */
+ "kha", /* \371\062 */
+ "normal", /* \371\063 */
+ "oo", /* \371\064 */
+ "prime", /* \371\065 */
+ "q", /* \371\066 */
+ "rétroflexe", /* \371\067 */
+ "son", /* \371\070 */
+ "tho", /* \371\071 */
+ "tiret", /* \371\072 */
+ "étendu", /* \371\073 */
+ "chin", /* \371\074 */
+ "comme", /* \371\075 */
+ "coup", /* \371\076 */
+ "dans", /* \371\077 */
+ "dja", /* \371\100 */
+ "empennage", /* \371\101 */
+ "glotte", /* \371\102 */
+ "hangzhou", /* \371\103 */
+ "he", /* \371\104 */
+ "huitièmes", /* \371\105 */
+ "intégrale", /* \371\106 */
+ "large", /* \371\107 */
+ "longueur", /* \371\110 */
+ "losange", /* \371\111 */
+ "mais", /* \371\112 */
+ "ne", /* \371\113 */
+ "nga", /* \371\114 */
+ "nna", /* \371\115 */
+ "pe", /* \371\116 */
+ "tchiûtch", /* \371\117 */
+ "tta", /* \371\120 */
+ "virama", /* \371\121 */
+ "wa", /* \371\122 */
+ "wo", /* \371\123 */
+ "zay", /* \371\124 */
+ "ña", /* \371\125 */
+ "abkhasien", /* \371\126 */
+ "bha", /* \371\127 */
+ "bref", /* \371\130 */
+ "candra", /* \371\131 */
+ "d'exclamation", /* \371\132 */
+ "d'un", /* \371\133 */
+ "dal", /* \371\134 */
+ "dda", /* \371\135 */
+ "ddha", /* \371\136 */
+ "dent", /* \371\137 */
+ "dha", /* \371\140 */
+ "douze", /* \371\141 */
+ "début", /* \371\142 */
+ "ej", /* \371\143 */
+ "enne", /* \371\144 */
+ "gaf", /* \371\145 */
+ "gha", /* \371\146 */
+ "grosse", /* \371\147 */
+ "hiûh", /* \371\150 */
+ "index", /* \371\151 */
+ "iûng", /* \371\152 */
+ "jé", /* \371\153 */
+ "k'iûk'", /* \371\154 */
+ "kiyok", /* \371\155 */
+ "ll", /* \371\156 */
+ "lla", /* \371\157 */
+ "mille", /* \371\160 */
+ "miûm", /* \371\161 */
+ "monétaire", /* \371\162 */
+ "niûn", /* \371\163 */
+ "no", /* \371\164 */
+ "ombrée", /* \371\165 */
+ "p'iûp'", /* \371\166 */
+ "pha", /* \371\167 */
+ "piûp", /* \371\170 */
+ "rhô", /* \371\171 */
+ "riûl", /* \371\172 */
+ "rra", /* \371\173 */
+ "siôs", /* \371\174 */
+ "sous-groupe", /* \371\175 */
+ "ssa", /* \371\176 */
+ "supérieure", /* \371\177 */
+ "t'iût'", /* \371\200 */
+ "tch'iûtch'", /* \371\201 */
+ "tchha", /* \371\202 */
+ "tha", /* \371\203 */
+ "tikût", /* \371\204 */
+ "trigramme", /* \371\205 */
+ "ttha", /* \371\206 */
+ "va", /* \371\207 */
+ "visarga", /* \371\210 */
+ "yousse", /* \371\211 */
+ "za'", /* \371\212 */
+ "écaille", /* \371\213 */
+ "ajouré", /* \371\214 */
+ "anousvara", /* \371\215 */
+ "apostrophe", /* \371\216 */
+ "au", /* \371\217 */
+ "barrée", /* \371\220 */
+ "bouclé", /* \371\221 */
+ "cadratin", /* \371\222 */
+ "cent", /* \371\223 */
+ "coeur", /* \371\224 */
+ "d'interrogation", /* \371\225 */
+ "d'union", /* \371\226 */
+ "djha", /* \371\227 */
+ "famille", /* \371\230 */
+ "fantaisie", /* \371\231 */
+ "gôl", /* \371\232 */
+ "image", /* \371\233 */
+ "inférieure", /* \371\234 */
+ "ié", /* \371\235 */
+ "ke", /* \371\236 */
+ "kho", /* \371\237 */
+ "ko", /* \371\240 */
+ "mo", /* \371\241 */
+ "nord-est", /* \371\242 */
+ "ombre", /* \371\243 */
+ "onze", /* \371\244 */
+ "par-dessus", /* \371\245 */
+ "pointé", /* \371\246 */
+ "schwa", /* \371\247 */
+ "seize", /* \371\250 */
+ "souscrits", /* \371\251 */
+ "sud-est", /* \371\252 */
+ "sur", /* \371\253 */
+ "to", /* \371\254 */
+ "transmission", /* \371\255 */
+ "tu", /* \371\256 */
+ "yu", /* \371\257 */
+ "é", /* \371\260 */
+ "accolade", /* \371\261 */
+ "alef", /* \371\262 */
+ "angle", /* \371\263 */
+ "candrabindou", /* \371\264 */
+ "carrée", /* \371\265 */
+ "contient", /* \371\266 */
+ "couvrante", /* \371\267 */
+ "delta", /* \371\270 */
+ "demi-rond", /* \371\271 */
+ "dz", /* \371\272 */
+ "farsi", /* \371\273 */
+ "gamma", /* \371\274 */
+ "inversée", /* \371\275 */
+ "iotacisme", /* \371\276 */
+ "katakana-hiragana", /* \371\277 */
+ "lenticulaire", /* \371\300 */
+ "logique", /* \371\301 */
+ "madda", /* \371\302 */
+ "mien", /* \371\303 */
+ "ng", /* \371\304 */
+ "nu", /* \371\305 */
+ "numérateur", /* \371\306 */
+ "ouvert", /* \371\307 */
+ "pi", /* \371\310 */
+ "ponctuation", /* \371\311 */
+ "positif", /* \371\312 */
+ "produit", /* \371\313 */
+ "quadrant", /* \371\314 */
+ "re", /* \371\315 */
+ "rectangle", /* \371\316 */
+ "répétition", /* \371\317 */
+ "se", /* \371\320 */
+ "soung", /* \371\321 */
+ "sous-ensemble", /* \371\322 */
+ "suit", /* \371\323 */
+ "sur-ensemble", /* \371\324 */
+ "tam", /* \371\325 */
+ "triangulaire", /* \371\326 */
+ "té", /* \371\327 */
+ "vrachy", /* \371\330 */
+ "wi", /* \371\331 */
+ "yod", /* \371\332 */
+ "zé", /* \371\333 */
+ "ajourée", /* \371\334 */
+ "approximativement", /* \371\335 */
+ "arménien", /* \371\336 */
+ "bea'", /* \371\337 */
+ "beha'", /* \371\340 */
+ "bourre", /* \371\341 */
+ "bulletin", /* \371\342 */
+ "clic", /* \371\343 */
+ "culbutée", /* \371\344 */
+ "d'appareil", /* \371\345 */
+ "d'itération", /* \371\346 */
+ "damma", /* \371\347 */
+ "deux-points", /* \371\350 */
+ "dix-huit", /* \371\351 */
+ "dix-neuf", /* \371\352 */
+ "dix-sept", /* \371\353 */
+ "do", /* \371\354 */
+ "doatchachmi", /* \371\355 */
+ "dya'", /* \371\356 */
+ "encadré", /* \371\357 */
+ "esse", /* \371\360 */
+ "est", /* \371\361 */
+ "fatha", /* \371\362 */
+ "fathatan", /* \371\363 */
+ "gothique", /* \371\364 */
+ "gua'", /* \371\365 */
+ "hachuré", /* \371\366 */
+ "huitième", /* \371\367 */
+ "jusqu'à", /* \371\370 */
+ "kana", /* \371\371 */
+ "kasra", /* \371\372 */
+ "keha'", /* \371\373 */
+ "lo", /* \371\374 */
+ "ngoa'", /* \371\375 */
+ "nord-ouest", /* \371\376 */
+ "noukta", /* \371\377 */
+ "nya'", /* \372\001 */
+ "ondulé", /* \372\002 */
+ "original", /* \372\003 */
+ "ouïgour", /* \372\004 */
+ "pa'", /* \372\005 */
+ "peha'", /* \372\006 */
+ "pho", /* \372\007 */
+ "point-virgule", /* \372\010 */
+ "précède", /* \372\011 */
+ "quatorze", /* \372\012 */
+ "quinze", /* \372\013 */
+ "rnoûn", /* \372\014 */
+ "ro", /* \372\015 */
+ "soleil", /* \372\016 */
+ "tcheha'", /* \372\017 */
+ "tchim'", /* \372\020 */
+ "teha'", /* \372\021 */
+ "terre", /* \372\022 */
+ "ti", /* \372\023 */
+ "treize", /* \372\024 */
+ "tta'", /* \372\025 */
+ "tteha'", /* \372\026 */
+ "va'", /* \372\027 */
+ "vav", /* \372\030 */
+ "vingt", /* \372\031 */
+ "voisé", /* \372\032 */
+ "vote", /* \372\033 */
+ "we", /* \372\034 */
+ "élevé", /* \372\035 */
"ae", /* \372\036 */
"anglais", /* \372\037 */
"angulaire", /* \372\040 */
"ô", /* \373\020 */
"û", /* \373\021 */
"ûi", /* \373\022 */
- "accusé", /* \373\023 */
- "activateur", /* \373\024 */
- "aib", /* \373\025 */
- "alayhe", /* \373\026 */
- "alliance", /* \373\027 */
- "ang", /* \373\030 */
- "annulation", /* \373\031 */
- "appartient", /* \373\032 */
- "arrière", /* \373\033 */
- "arèa", /* \373\034 */
- "ascendant", /* \373\035 */
- "astérisque-hélice", /* \373\036 */
- "asymptotiquement", /* \373\037 */
- "avoir", /* \373\040 */
- "aïn", /* \373\041 */
- "ban", /* \373\042 */
- "bashkir", /* \373\043 */
- "be", /* \373\044 */
- "beaucoup", /* \373\045 */
- "bec", /* \373\046 */
- "bi", /* \373\047 */
- "bien", /* \373\050 */
- "biélorusse", /* \373\051 */
- "biélorusse-ukrainien", /* \373\052 */
- "bois", /* \373\053 */
- "bu", /* \373\054 */
- "bé", /* \373\055 */
- "carreau", /* \373\056 */
- "cavalier", /* \373\057 */
- "cciar", /* \373\060 */
- "central", /* \373\061 */
- "centré", /* \373\062 */
- "cents", /* \373\063 */
- "chan", /* \373\064 */
- "changement", /* \373\065 */
- "chariot", /* \373\066 */
- "chhan", /* \373\067 */
- "chtcha", /* \373\070 */
- "cin", /* \373\071 */
- "cinquante", /* \373\072 */
- "colon", /* \373\073 */
- "considéralement", /* \373\074 */
- "consonne", /* \373\075 */
- "copyright", /* \373\076 */
- "coranique", /* \373\077 */
- "coronis", /* \373\100 */
- "courbée", /* \373\101 */
- "cqar", /* \373\102 */
- "croches", /* \373\103 */
- "d'accolade", /* \373\104 */
- "d'accusé", /* \373\105 */
- "d'annulation", /* \373\106 */
- "d'arrêt", /* \373\107 */
- "d'en-tête", /* \373\110 */
- "d'insertion", /* \373\111 */
- "d'intégrale", /* \373\112 */
- "d'une", /* \373\113 */
- "d'échange", /* \373\114 */
- "dame", /* \373\115 */
- "danda", /* \373\116 */
- "danger", /* \373\117 */
- "dché", /* \373\120 */
- "dei", /* \373\121 */
- "demande", /* \373\122 */
- "demi-anneau", /* \373\123 */
- "demi-disque", /* \373\124 */
- "demi-voyelle", /* \373\125 */
- "dessus", /* \373\126 */
- "deuxième", /* \373\127 */
- "di", /* \373\130 */
- "diagonaux", /* \373\131 */
- "différence", /* \373\132 */
- "disque", /* \373\133 */
- "diviseur", /* \373\134 */
- "djhe", /* \373\135 */
- "don", /* \373\136 */
- "dsa", /* \373\137 */
- "dza", /* \373\140 */
- "dzêta", /* \373\141 */
- "dé", /* \373\142 */
- "dénominateur", /* \373\143 */
- "ed", /* \373\144 */
- "effe", /* \373\145 */
- "ei", /* \373\146 */
- "elle", /* \373\147 */
- "emme", /* \373\150 */
- "enchâssement", /* \373\151 */
- "encochée", /* \373\152 */
- "entreprise", /* \373\153 */
- "erre", /* \373\154 */
- "facteur", /* \373\155 */
- "far", /* \373\156 */
- "fe", /* \373\157 */
- "fei", /* \373\160 */
- "femelle", /* \373\161 */
- "fi", /* \373\162 */
- "fichier", /* \373\163 */
- "financier", /* \373\164 */
- "fine", /* \373\165 */
- "fita", /* \373\166 */
- "floral", /* \373\167 */
- "formage", /* \373\170 */
- "formatage", /* \373\171 */
- "formes", /* \373\172 */
- "forçage", /* \373\173 */
- "fou", /* \373\174 */
- "fourche", /* \373\175 */
- "fourchette", /* \373\176 */
- "fractionnaire", /* \373\177 */
- "félicitations", /* \373\200 */
- "gauche-droite", /* \373\201 */
- "ge", /* \373\202 */
- "ghan", /* \373\203 */
- "ghat", /* \373\204 */
- "ghha", /* \373\205 */
- "ghhan", /* \373\206 */
- "gi", /* \373\207 */
- "gian", /* \373\210 */
- "giangia", /* \373\211 */
- "gim", /* \373\212 */
- "gjé", /* \373\213 */
- "go", /* \373\214 */
- "groupe", /* \373\215 */
- "gu", /* \373\216 */
- "guimel", /* \373\217 */
- "géométriquement", /* \373\220 */
- "hhae", /* \373\221 */
- "hhar", /* \373\222 */
- "hhoe", /* \373\223 */
- "hie", /* \373\224 */
- "holam", /* \373\225 */
- "hori", /* \373\226 */
- "hors", /* \373\227 */
- "hue", /* \373\230 */
- "ia", /* \373\231 */
- "ici", /* \373\232 */
- "identique", /* \373\233 */
- "ij", /* \373\234 */
- "il", /* \373\235 */
- "inhibiteur", /* \373\236 */
- "insécable", /* \373\237 */
- "io", /* \373\240 */
- "iou", /* \373\241 */
- "isshar", /* \373\242 */
- "iûng-kiyok", /* \373\243 */
- "je", /* \373\244 */
- "jeth", /* \373\245 */
- "kapyo-ounssangpiûp", /* \373\246 */
- "kazakhe", /* \373\247 */
- "kg", /* \373\250 */
- "khakassien", /* \373\251 */
- "khei", /* \373\252 */
- "khha", /* \373\253 */
- "kien", /* \373\254 */
- "kjé", /* \373\255 */
- "ksi", /* \373\256 */
- "l'arrière", /* \373\257 */
- "lame", /* \373\260 */
- "larmées", /* \373\261 */
- "las", /* \373\262 */
- "liant", /* \373\263 */
- "ling", /* \373\264 */
- "liun", /* \373\265 */
- "livre", /* \373\266 */
- "lj", /* \373\267 */
- "main", /* \373\270 */
- "man", /* \373\271 */
- "marchandises", /* \373\272 */
- "mb", /* \373\273 */
- "message", /* \373\274 */
- "mesuré", /* \373\275 */
- "milliers", /* \373\276 */
- "mince", /* \373\277 */
- "miûm-pansiôs", /* \373\300 */
- "miûm-siôs", /* \373\301 */
- "molette", /* \373\302 */
- "mouche", /* \373\303 */
- "moue", /* \373\304 */
- "mouillure", /* \373\305 */
- "moyenne", /* \373\306 */
- "mv", /* \373\307 */
- "mw", /* \373\310 */
- "mâle", /* \373\311 */
- "métal", /* \373\312 */
- "nar", /* \373\313 */
- "ngo", /* \373\314 */
- "niûn-kiyok", /* \373\315 */
- "niûn-pansiôs", /* \373\316 */
- "niûn-siôs", /* \373\317 */
- "nj", /* \373\320 */
- "nnna", /* \373\321 */
- "nom", /* \373\322 */
- "norme", /* \373\323 */
- "note", /* \373\324 */
- "nul", /* \373\325 */
- "numéral", /* \373\326 */
- "numérique", /* \373\327 */
- "numéro", /* \373\330 */
- "obliquement", /* \373\331 */
- "obèle", /* \373\332 */
- "oh", /* \373\333 */
- "om", /* \373\334 */
- "on", /* \373\335 */
- "ondé", /* \373\336 */
- "ordinal", /* \373\337 */
- "ornée", /* \373\340 */
- "otte", /* \373\341 */
- "ouk", /* \373\342 */
- "oï", /* \373\343 */
- "p'iûp'-piûp", /* \373\344 */
- "page", /* \373\345 */
- "papillon", /* \373\346 */
- "parallélogramme", /* \373\347 */
- "partiel", /* \373\350 */
- "penchée", /* \373\351 */
- "percé", /* \373\352 */
- "pied", /* \373\353 */
- "pion", /* \373\354 */
- "piur", /* \373\355 */
- "piûp-kiyok", /* \373\356 */
- "piûp-p'iûp'", /* \373\357 */
- "piûp-siôs-kiyok", /* \373\360 */
- "piûp-siôs-tikût", /* \373\361 */
- "piûp-t'iût'", /* \373\362 */
- "piûp-tchiûtch", /* \373\363 */
- "piûp-tikût", /* \373\364 */
- "plafond", /* \373\365 */
- "plancher", /* \373\366 */
- "planck", /* \373\367 */
- "plein", /* \373\370 */
- "plume", /* \373\371 */
- "pneumata", /* \373\372 */
- "pommetée", /* \373\373 */
- "pont", /* \373\374 */
- "premier", /* \373\375 */
- "projetée", /* \373\376 */
- "proportion", /* \373\377 */
- "protégée", /* \374\001 */
- "précédant", /* \374\002 */
- "pu", /* \374\003 */
- "qof", /* \374\004 */
- "quadrillé", /* \374\005 */
- "quartier", /* \374\006 */
- "quatrième", /* \374\007 */
- "quintefeuille", /* \374\010 */
- "rae", /* \374\011 */
- "ramées", /* \374\012 */
- "rayonnante", /* \374\013 */
- "rayons", /* \374\014 */
- "recourbé", /* \374\015 */
- "rectiligne", /* \374\016 */
- "relation", /* \374\017 */
- "repos", /* \374\020 */
- "ressource", /* \374\021 */
- "retour", /* \374\022 */
- "riûl-kiyok-siôs", /* \374\023 */
- "riûl-niûn", /* \374\024 */
- "riûl-pansiôs", /* \374\025 */
- "riûl-piûp-siôs", /* \374\026 */
- "riûl-tikût", /* \374\027 */
- "riûl-yorinhiûh", /* \374\030 */
- "roi", /* \374\031 */
- "réfléchie", /* \374\032 */
- "salla", /* \374\033 */
- "san", /* \374\034 */
- "saturne", /* \374\035 */
- "scei", /* \374\036 */
- "scima", /* \374\037 */
- "scin", /* \374\040 */
- "segol", /* \374\041 */
- "semi-circulaire", /* \374\042 */
- "sgian", /* \374\043 */
- "shha", /* \374\044 */
- "siôs-niûn", /* \374\045 */
- "siôs-riûl", /* \374\046 */
- "siôs-tchiûtch", /* \374\047 */
- "sonnerie", /* \374\050 */
- "souriant", /* \374\051 */
- "spécial", /* \374\052 */
- "ssanghiûh", /* \374\053 */
- "ssangniûn", /* \374\054 */
- "ssangriûl", /* \374\055 */
- "substitution", /* \374\056 */
- "suivant", /* \374\057 */
- "support", /* \374\060 */
- "suppression", /* \374\061 */
- "suspension", /* \374\062 */
- "symétrique", /* \374\063 */
- "synchronisation", /* \374\064 */
- "szen", /* \374\065 */
- "sélecteur", /* \374\066 */
- "sélectionnée", /* \374\067 */
- "tar", /* \374\070 */
- "tatouïl", /* \374\071 */
- "tau", /* \374\072 */
- "tce", /* \374\073 */
- "tet", /* \374\074 */
- "thorn", /* \374\075 */
- "thue", /* \374\076 */
- "tikût-kiyok", /* \374\077 */
- "tirant", /* \374\100 */
- "tire-bouchon", /* \374\101 */
- "tiun", /* \374\102 */
- "tour", /* \374\103 */
- "travail", /* \374\104 */
- "trompe-l'oeil", /* \374\105 */
- "trèfle", /* \374\106 */
- "très", /* \374\107 */
- "ukrainien", /* \374\110 */
- "usage", /* \374\111 */
- "utilisé", /* \374\112 */
- "vecteur", /* \374\113 */
- "vin", /* \374\114 */
- "vingt-deux", /* \374\115 */
- "vingt-et-un", /* \374\116 */
- "vingt-quatre", /* \374\117 */
- "vingt-trois", /* \374\120 */
- "visible", /* \374\121 */
- "voisée", /* \374\122 */
- "vrai", /* \374\123 */
- "vu", /* \374\124 */
- "vé", /* \374\125 */
- "vérification", /* \374\126 */
- "wasallam", /* \374\127 */
- "won", /* \374\130 */
- "xi", /* \374\131 */
- "yate", /* \374\132 */
- "yen", /* \374\133 */
- "yesiûng-pansiôs", /* \374\134 */
- "yesiûng-siôs", /* \374\135 */
- "you-i", /* \374\136 */
- "you-yo", /* \374\137 */
- "you-yé", /* \374\140 */
- "yô-i", /* \374\141 */
- "yô-ya", /* \374\142 */
- "yô-yè", /* \374\143 */
- "zaïn", /* \374\144 */
- "ze", /* \374\145 */
- "zi", /* \374\146 */
- "zil", /* \374\147 */
- "zo", /* \374\150 */
- "zu", /* \374\151 */
- "zzan", /* \374\152 */
- "zzil", /* \374\153 */
- "éclairée", /* \374\154 */
- "étincellement", /* \374\155 */
- "étude", /* \374\156 */
- "ño", /* \374\157 */
- "(ack)", /* \374\160 */
- "(apc)", /* \374\161 */
- "(bel)", /* \374\162 */
- "(bph)", /* \374\163 */
- "(bs)", /* \374\164 */
- "(can)", /* \374\165 */
- "(cch)", /* \374\166 */
- "(cr)", /* \374\167 */
- "(csi)", /* \374\170 */
- "(dc1)", /* \374\171 */
- "(dc2)", /* \374\172 */
- "(dc3)", /* \374\173 */
- "(dc4)", /* \374\174 */
- "(dcs)", /* \374\175 */
- "(del)", /* \374\176 */
- "(dle)", /* \374\177 */
- "(ega)", /* \374\200 */
- "(em)", /* \374\201 */
- "(enq)", /* \374\202 */
- "(eot)", /* \374\203 */
- "(esa)", /* \374\204 */
- "(esc)", /* \374\205 */
- "(etb)", /* \374\206 */
- "(etx)", /* \374\207 */
- "(ff)", /* \374\210 */
- "(fs)", /* \374\211 */
- "(gs)", /* \374\212 */
- "(hop)", /* \374\213 */
- "(ht)", /* \374\214 */
- "(htj)", /* \374\215 */
- "(hts)", /* \374\216 */
- "(ind)", /* \374\217 */
- "(lf)", /* \374\220 */
- "(mw)", /* \374\221 */
- "(nak)", /* \374\222 */
- "(nbh)", /* \374\223 */
- "(nel)", /* \374\224 */
- "(nul)", /* \374\225 */
- "(osc)", /* \374\226 */
- "(pad)", /* \374\227 */
- "(pld)", /* \374\230 */
- "(plu)", /* \374\231 */
- "(pm)", /* \374\232 */
- "(pu1)", /* \374\233 */
- "(pu2)", /* \374\234 */
- "(ri)", /* \374\235 */
- "(rs)", /* \374\236 */
- "(sci)", /* \374\237 */
- "(sga)", /* \374\240 */
- "(sgci)", /* \374\241 */
- "(si)", /* \374\242 */
- "(so)", /* \374\243 */
- "(soh)", /* \374\244 */
- "(sos)", /* \374\245 */
- "(ss2)", /* \374\246 */
- "(ss3)", /* \374\247 */
- "(ssa)", /* \374\250 */
- "(st)", /* \374\251 */
- "(sts)", /* \374\252 */
- "(stx)", /* \374\253 */
- "(sub)", /* \374\254 */
- "(syn)", /* \374\255 */
- "(us)", /* \374\256 */
- "(vt)", /* \374\257 */
- "(vts)", /* \374\260 */
- "a-ou", /* \374\261 */
- "a-ô", /* \374\262 */
- "aaru", /* \374\263 */
- "abat-jour", /* \374\264 */
- "abîme", /* \374\265 */
- "accentué", /* \374\266 */
- "acceptable", /* \374\267 */
- "acceptées", /* \374\270 */
- "addak", /* \374\271 */
- "adi", /* \374\272 */
- "africain", /* \374\273 */
- "akat", /* \374\274 */
- "akbar", /* \374\275 */
- "aleph", /* \374\276 */
- "alignés", /* \374\277 */
- "allah", /* \374\300 */
- "aloha", /* \374\301 */
- "alternative", /* \374\302 */
- "alvéolaire", /* \374\303 */
- "alésage", /* \374\304 */
- "ampères", /* \374\305 */
- "angkhankhou", /* \374\306 */
- "angström", /* \374\307 */
- "anneau", /* \374\310 */
- "ano", /* \374\311 */
- "anousvâra", /* \374\312 */
- "anpea", /* \374\313 */
- "anti-liant", /* \374\314 */
- "anudatta", /* \374\315 */
- "août", /* \374\316 */
- "apaato", /* \374\317 */
- "appel", /* \374\320 */
- "arrondi", /* \374\321 */
- "arrondie", /* \374\322 */
- "arrondis", /* \374\323 */
- "article", /* \374\324 */
- "aruhua", /* \374\325 */
- "arèa-i", /* \374\326 */
- "arèa-o", /* \374\327 */
- "arèa-ou", /* \374\330 */
- "arèè", /* \374\331 */
- "as", /* \374\332 */
- "assertion", /* \374\333 */
- "astérique", /* \374\334 */
- "astérisme", /* \374\335 */
- "atteindre", /* \374\336 */
- "attente", /* \374\337 */
- "attention", /* \374\340 */
- "aucun", /* \374\341 */
- "aux", /* \374\342 */
- "avion", /* \374\343 */
- "avril", /* \374\344 */
- "ay", /* \374\345 */
- "ayah", /* \374\346 */
- "baareru", /* \374\347 */
- "baht", /* \374\350 */
- "baimai", /* \374\351 */
- "balance", /* \374\352 */
- "bancaire", /* \374\353 */
- "bar", /* \374\354 */
- "barbiche", /* \374\355 */
- "barricade", /* \374\356 */
- "base", /* \374\357 */
- "beeta", /* \374\360 */
- "beigne", /* \374\361 */
- "benzène", /* \374\362 */
- "bilabial", /* \374\363 */
- "bindi", /* \374\364 */
- "biologique", /* \374\365 */
- "biru", /* \374\366 */
- "bisectrice", /* \374\367 */
- "blancs", /* \374\370 */
- "bonhomme", /* \374\371 */
- "bons", /* \374\372 */
- "boruto", /* \374\373 */
- "bouton", /* \374\374 */
- "boîte", /* \374\375 */
- "bq", /* \374\376 */
- "brisée", /* \374\377 */
- "bussyeru", /* \375\001 */
- "bécarre", /* \375\002 */
- "bélier", /* \375\003 */
- "bémol", /* \375\004 */
- "cada", /* \375\005 */
- "cadrat", /* \375\006 */
- "caducée", /* \375\007 */
- "cal", /* \375\010 */
- "cancer", /* \375\011 */
- "capricorne", /* \375\012 */
- "care-of", /* \375\013 */
- "carotte", /* \375\014 */
- "catawa", /* \375\015 */
- "cc", /* \375\016 */
- "cd", /* \375\017 */
- "ce", /* \375\020 */
- "ceinture", /* \375\021 */
- "celsius", /* \375\022 */
- "ch", /* \375\023 */
- "chadda", /* \375\024 */
- "chaise", /* \375\025 */
- "chapeau", /* \375\026 */
- "chaudes", /* \375\027 */
- "cheva", /* \375\030 */
- "chevron", /* \375\031 */
- "chevrons", /* \375\032 */
- "chifre", /* \375\033 */
- "chèque", /* \375\034 */
- "circulaire", /* \375\035 */
- "citron", /* \375\036 */
- "clavier", /* \375\037 */
- "coché", /* \375\040 */
- "coins", /* \375\041 */
- "commerce", /* \375\042 */
- "complément", /* \375\043 */
- "compte", /* \375\044 */
- "compte-client", /* \375\045 */
- "comète", /* \375\046 */
- "concave", /* \375\047 */
- "conique", /* \375\050 */
- "conjonction", /* \375\051 */
- "conjuguée", /* \375\052 */
- "conservateur", /* \375\053 */
- "conséquent", /* \375\054 */
- "contenant", /* \375\055 */
- "contre-cotice", /* \375\056 */
- "copie", /* \375\057 */
- "coproduit", /* \375\060 */
- "corbeau", /* \375\061 */
- "correct", /* \375\062 */
- "correspond", /* \375\063 */
- "coréenne", /* \375\064 */
- "cotice", /* \375\065 */
- "coupe", /* \375\066 */
- "coupure", /* \375\067 */
- "courbé", /* \375\070 */
- "couronne", /* \375\071 */
- "course", /* \375\072 */
- "croche", /* \375\073 */
- "croissant", /* \375\074 */
- "croisée", /* \375\075 */
- "cruzeiro", /* \375\076 */
- "cubique", /* \375\077 */
- "cursif", /* \375\100 */
- "cylindricité", /* \375\101 */
- "d'abbréviation", /* \375\102 */
- "d'abréviation", /* \375\103 */
- "d'article", /* \375\104 */
- "d'emplacement", /* \375\105 */
- "d'enregistrement", /* \375\106 */
- "d'ensemble", /* \375\107 */
- "d'euler", /* \375\110 */
- "d'exploitation", /* \375\111 */
- "d'intérêt", /* \375\112 */
- "d'inversion", /* \375\113 */
- "d'unité", /* \375\114 */
- "d'échappement", /* \375\115 */
- "d'écrire", /* \375\116 */
- "daasu", /* \375\117 */
- "dagech", /* \375\120 */
- "david", /* \375\121 */
- "db", /* \375\122 */
- "dddha", /* \375\123 */
- "dej", /* \375\124 */
- "dek", /* \375\125 */
- "del", /* \375\126 */
- "demi", /* \375\127 */
- "demi-cadrat", /* \375\130 */
- "demi-espace", /* \375\131 */
- "dental", /* \375\132 */
- "dernier", /* \375\133 */
- "descendant", /* \375\134 */
- "descendu", /* \375\135 */
- "desi", /* \375\136 */
- "dessous", /* \375\137 */
- "dharma", /* \375\140 */
- "diagonale", /* \375\141 */
- "diamètre", /* \375\142 */
- "digamma", /* \375\143 */
- "dingot", /* \375\144 */
- "directionnel", /* \375\145 */
- "divisé", /* \375\146 */
- "dièse", /* \375\147 */
- "djalladjalalouhou", /* \375\150 */
- "dl", /* \375\151 */
- "domino", /* \375\152 */
- "dong", /* \375\153 */
- "doru", /* \375\154 */
- "doubles", /* \375\155 */
- "doute", /* \375\156 */
- "décembre", /* \375\157 */
- "décimal", /* \375\160 */
- "définition", /* \375\161 */
- "démontrer", /* \375\162 */
- "dépilement", /* \375\163 */
- "déposée", /* \375\164 */
- "dérivée", /* \375\165 */
- "dérouleur", /* \375\166 */
- "eekaa", /* \375\167 */
- "effacement", /* \375\170 */
- "effachement", /* \375\171 */
- "egal", /* \375\172 */
- "eh", /* \375\173 */
- "el", /* \375\174 */
- "enfer", /* \375\175 */
- "enregistreur", /* \375\176 */
- "ensemble", /* \375\177 */
- "entièrement", /* \375\200 */
- "entrant", /* \375\201 */
- "enveloppe", /* \375\202 */
- "er", /* \375\203 */
- "esh", /* \375\204 */
- "estime", /* \375\205 */
- "estimé", /* \375\206 */
- "esukuudo", /* \375\207 */
- "euro", /* \375\210 */
- "excellent", /* \375\211 */
- "exclarrogatif", /* \375\212 */
- "exclusif", /* \375\213 */
- "excès", /* \375\214 */
- "existe", /* \375\215 */
- "exécution", /* \375\216 */
- "fahrenheit", /* \375\217 */
- "fallait", /* \375\220 */
- "fan", /* \375\221 */
- "faucille", /* \375\222 */
- "fermeture", /* \375\223 */
- "festival", /* \375\224 */
- "ff", /* \375\225 */
- "ffi", /* \375\226 */
- "ffl", /* \375\227 */
- "fixe", /* \375\230 */
- "fl", /* \375\231 */
- "fm", /* \375\232 */
- "folioles", /* \375\233 */
- "foncée", /* \375\234 */
- "fongman", /* \375\235 */
- "fraisage", /* \375\236 */
- "franc", /* \375\237 */
- "français", /* \375\240 */
- "fuseau", /* \375\241 */
- "féminin", /* \375\242 */
- "février", /* \375\243 */
- "ganma", /* \375\244 */
- "garon", /* \375\245 */
- "gb", /* \375\246 */
- "gerchâïm", /* \375\247 */
- "gerech", /* \375\250 */
- "ghz", /* \375\251 */
- "giga", /* \375\252 */
- "gimel", /* \375\253 */
- "ginii", /* \375\254 */
- "girudaa", /* \375\255 */
- "gn", /* \375\256 */
- "gpa", /* \375\257 */
- "graphique", /* \375\260 */
- "grimaçant", /* \375\261 */
- "guillemets", /* \375\262 */
- "guramu", /* \375\263 */
- "guramuton", /* \375\264 */
- "gy", /* \375\265 */
- "gémeaux", /* \375\266 */
- "géométrique", /* \375\267 */
- "géorgien", /* \375\270 */
- "gêta", /* \375\271 */
- "haitu", /* \375\272 */
- "han", /* \375\273 */
- "haute", /* \375\274 */
- "heisei", /* \375\275 */
- "hekutaaru", /* \375\276 */
- "hermitienne", /* \375\277 */
- "herutu", /* \375\300 */
- "het", /* \375\301 */
- "hip", /* \375\302 */
- "hiriq", /* \375\303 */
- "hizb", /* \375\304 */
- "hiûh-miûm", /* \375\305 */
- "hiûh-niûn", /* \375\306 */
- "hiûh-piûp", /* \375\307 */
- "hiûh-riûl", /* \375\310 */
- "homothétique", /* \375\311 */
- "hon", /* \375\312 */
- "hoon", /* \375\313 */
- "hooru", /* \375\314 */
- "horizontalement", /* \375\315 */
- "horizontaux", /* \375\316 */
- "hors-tout", /* \375\317 */
- "hp", /* \375\320 */
- "hpa", /* \375\321 */
- "huarado", /* \375\322 */
- "huiito", /* \375\323 */
- "huran", /* \375\324 */
- "hv", /* \375\325 */
- "hz", /* \375\326 */
- "i-a", /* \375\327 */
- "i-arèa", /* \375\330 */
- "i-ou", /* \375\331 */
- "i-ya", /* \375\332 */
- "i-ô", /* \375\333 */
- "i-û", /* \375\334 */
- "identification", /* \375\335 */
- "ie", /* \375\336 */
- "imprimer", /* \375\337 */
- "incrément", /* \375\340 */
- "industrielle", /* \375\341 */
- "infini", /* \375\342 */
- "info", /* \375\343 */
- "iningu", /* \375\344 */
- "intercale", /* \375\345 */
- "interrompue", /* \375\346 */
- "inti", /* \375\347 */
- "inutilisé", /* \375\350 */
- "inversé", /* \375\351 */
- "iri", /* \375\352 */
- "iu", /* \375\353 */
- "iûng-k'iûk'", /* \375\354 */
- "iûng-miûm", /* \375\355 */
- "iûng-p'iûp'", /* \375\356 */
- "iûng-pansiôs", /* \375\357 */
- "iûng-piûp", /* \375\360 */
- "iûng-siôs", /* \375\361 */
- "iûng-ssangkiyok", /* \375\362 */
- "iûng-t'iût'", /* \375\363 */
- "iûng-tch'iûtch'", /* \375\364 */
- "iûng-tchiûtch", /* \375\365 */
- "iûng-tikût", /* \375\366 */
- "janvier", /* \375\367 */
- "japonaise", /* \375\370 */
- "judéo-espagnol", /* \375\371 */
- "juillet", /* \375\372 */
- "juin", /* \375\373 */
- "jupiter", /* \375\374 */
- "justification", /* \375\375 */
- "jérusalem", /* \375\376 */
- "kai", /* \375\377 */
- "kairi", /* \376\001 */
- "kapyo-ounriûl", /* \376\002 */
- "karatto", /* \376\003 */
- "karorii", /* \376\004 */
- "kb", /* \376\005 */
- "kcal", /* \376\006 */
- "keesu", /* \376\007 */
- "kelvin", /* \376\010 */
- "khai", /* \376\011 */
- "khomout", /* \376\012 */
- "khon", /* \376\013 */
- "khouat", /* \376\014 */
- "khwai", /* \376\015 */
- "khz", /* \376\016 */
- "kiro", /* \376\017 */
- "kiroguramu", /* \376\020 */
- "kiromeetoru", /* \376\021 */
- "kirowatto", /* \376\022 */
- "kiyok-riûl", /* \376\023 */
- "kiyok-siôs-kiyok", /* \376\024 */
- "kk", /* \376\025 */
- "kl", /* \376\026 */
- "kon", /* \376\027 */
- "koopo", /* \376\030 */
- "koruna", /* \376\031 */
- "koubouts", /* \376\032 */
- "kpa", /* \376\033 */
- "kra", /* \376\034 */
- "kt", /* \376\035 */
- "kuroone", /* \376\036 */
- "kuruzeiro", /* \376\037 */
- "kv", /* \376\040 */
- "kw", /* \376\041 */
- "kyurii", /* \376\042 */
- "l'espace", /* \376\043 */
- "l'homme", /* \376\044 */
- "lac", /* \376\045 */
- "lakkhangyao", /* \376\046 */
- "laotiens", /* \376\047 */
- "latéral", /* \376\050 */
- "ldjé", /* \376\051 */
- "lej", /* \376\052 */
- "liaison", /* \376\053 */
- "libéral", /* \376\054 */
- "limite", /* \376\055 */
- "lion", /* \376\056 */
- "lire", /* \376\057 */
- "ljé", /* \376\060 */
- "lm", /* \376\061 */
- "ln", /* \376\062 */
- "log", /* \376\063 */
- "lorraine", /* \376\064 */
- "lou", /* \376\065 */
- "lout", /* \376\066 */
- "lunaire", /* \376\067 */
- "lx", /* \376\070 */
- "légère", /* \376\071 */
- "mahha", /* \376\072 */
- "maimalai", /* \376\073 */
- "maimuan", /* \376\074 */
- "maison", /* \376\075 */
- "maitaikhou", /* \376\076 */
- "maiyamok", /* \376\077 */
- "makku", /* \376\100 */
- "malte", /* \376\101 */
- "mansyon", /* \376\102 */
- "maqaf", /* \376\103 */
- "marqué", /* \376\104 */
- "mars", /* \376\105 */
- "marteau", /* \376\106 */
- "masculin", /* \376\107 */
- "matrice", /* \376\110 */
- "mayakru", /* \376\111 */
- "mayakuro", /* \376\112 */
- "meetoru", /* \376\113 */
- "meizi", /* \376\114 */
- "mercure", /* \376\115 */
- "mesure", /* \376\116 */
- "meteg", /* \376\117 */
- "mg", /* \376\120 */
- "mhz", /* \376\121 */
- "micro", /* \376\122 */
- "mikuron", /* \376\123 */
- "mil", /* \376\124 */
- "millième", /* \376\125 */
- "minnie", /* \376\126 */
- "miri", /* \376\127 */
- "miribaaru", /* \376\130 */
- "mise", /* \376\131 */
- "miûm-hiûh", /* \376\132 */
- "miûm-kiyok", /* \376\133 */
- "miûm-riûl", /* \376\134 */
- "miûm-ssangsiôs", /* \376\135 */
- "miûm-tch'iûtch'", /* \376\136 */
- "ml", /* \376\137 */
- "mode", /* \376\140 */
- "modélise", /* \376\141 */
- "mohammad", /* \376\142 */
- "moineau", /* \376\143 */
- "moins-ou-plus", /* \376\144 */
- "mol", /* \376\145 */
- "montagne", /* \376\146 */
- "montant", /* \376\147 */
- "montre", /* \376\150 */
- "mort", /* \376\151 */
- "mot", /* \376\152 */
- "mouette", /* \376\153 */
- "moyen", /* \376\154 */
- "mpa", /* \376\155 */
- "ms", /* \376\156 */
- "multijection", /* \376\157 */
- "médecine", /* \376\160 */
- "médiane", /* \376\161 */
- "médians", /* \376\162 */
- "mégatonne", /* \376\163 */
- "n'appartient", /* \376\164 */
- "n'est", /* \376\165 */
- "n'existe", /* \376\166 */
- "n'oblige", /* \376\167 */
- "nabla", /* \376\170 */
- "naira", /* \376\171 */
- "nangmontho", /* \376\172 */
- "nano", /* \376\173 */
- "nationales", /* \376\174 */
- "ndjé", /* \376\175 */
- "nen", /* \376\176 */
- "neptune", /* \376\177 */
- "nf", /* \376\200 */
- "ngu", /* \376\201 */
- "niggahita", /* \376\202 */
- "nikhahit", /* \376\203 */
- "niûn-piûp", /* \376\204 */
- "niûn-t'iût'", /* \376\205 */
- "njé", /* \376\206 */
- "nm", /* \376\207 */
- "noirs", /* \376\210 */
- "nokhouk", /* \376\211 */
- "nominales", /* \376\212 */
- "non-barre", /* \376\213 */
- "non-et", /* \376\214 */
- "non-ou", /* \376\215 */
- "notto", /* \376\216 */
- "nou", /* \376\217 */
- "nouveau", /* \376\220 */
- "nouvelle", /* \376\221 */
- "novembre", /* \376\222 */
- "ns", /* \376\223 */
- "nuage", /* \376\224 */
- "nuit", /* \376\225 */
- "nv", /* \376\226 */
- "nw", /* \376\227 */
- "o-ou", /* \376\230 */
- "o-ô", /* \376\231 */
- "o-û", /* \376\232 */
- "oblige", /* \376\233 */
- "octet", /* \376\234 */
- "octobre", /* \376\235 */
- "once", /* \376\236 */
- "onkar", /* \376\237 */
- "onsu", /* \376\240 */
- "oomu", /* \376\241 */
- "opposition", /* \376\242 */
- "option", /* \376\243 */
- "orage", /* \376\244 */
- "ordonnances", /* \376\245 */
- "origine", /* \376\246 */
- "orthodoxe", /* \376\247 */
- "ou-a", /* \376\250 */
- "ou-o-û", /* \376\251 */
- "ou-ou", /* \376\252 */
- "ou-yé", /* \376\253 */
- "ou-è", /* \376\254 */
- "oue", /* \376\255 */
- "ouee", /* \376\256 */
- "ouverte", /* \376\257 */
- "ov", /* \376\260 */
- "paasento", /* \376\261 */
- "paatu", /* \376\262 */
- "paix", /* \376\263 */
- "paiyannoi", /* \376\264 */
- "palatalisation", /* \376\265 */
- "palochka", /* \376\266 */
- "parapluie", /* \376\267 */
- "parce", /* \376\270 */
- "partie", /* \376\271 */
- "partielle", /* \376\272 */
- "partir", /* \376\273 */
- "paseq", /* \376\274 */
- "pastille", /* \376\275 */
- "pasuq", /* \376\276 */
- "patak", /* \376\277 */
- "pc", /* \376\300 */
- "peezi", /* \376\301 */
- "penihi", /* \376\302 */
- "pensu", /* \376\303 */
- "pente", /* \376\304 */
- "permis", /* \376\305 */
- "perspective", /* \376\306 */
- "peseta", /* \376\307 */
- "peso", /* \376\310 */
- "pf", /* \376\311 */
- "ph", /* \376\312 */
- "phan", /* \376\313 */
- "phinthou", /* \376\314 */
- "phonogramme", /* \376\315 */
- "phoung", /* \376\316 */
- "phouthao", /* \376\317 */
- "piasutoru", /* \376\320 */
- "piko", /* \376\321 */
- "pikuru", /* \376\322 */
- "piûp-hiûh", /* \376\323 */
- "piûp-niûn", /* \376\324 */
- "piûp-riûl", /* \376\325 */
- "piûp-siôs-piûp", /* \376\326 */
- "piûp-siôs-tchiûtch", /* \376\327 */
- "piûp-ssangsiôs", /* \376\330 */
- "piûp-tch'iûtch'", /* \376\331 */
- "pla", /* \376\332 */
- "place", /* \376\333 */
- "plus-ou-moins", /* \376\334 */
- "pluton", /* \376\335 */
- "pm", /* \376\336 */
- "pointillé", /* \376\337 */
- "pointo", /* \376\340 */
- "poissons", /* \376\341 */
- "pommeté", /* \376\342 */
- "pondo", /* \376\343 */
- "position", /* \376\344 */
- "ppm", /* \376\345 */
- "pr", /* \376\346 */
- "precède", /* \376\347 */
- "profil", /* \376\350 */
- "progiciel", /* \376\351 */
- "projective", /* \376\352 */
- "proportionnel", /* \376\353 */
- "prouve", /* \376\354 */
- "précédent", /* \376\355 */
- "précédée", /* \376\356 */
- "prédéfini", /* \376\357 */
- "ps", /* \376\360 */
- "pv", /* \376\361 */
- "pw", /* \376\362 */
- "qa", /* \376\363 */
- "qala", /* \376\364 */
- "qu'il", /* \376\365 */
- "quad", /* \376\366 */
- "quartefeuille", /* \376\367 */
- "radioactivivité", /* \376\370 */
- "rail", /* \376\371 */
- "rakhang", /* \376\372 */
- "rapport", /* \376\373 */
- "rasoul", /* \376\374 */
- "rayonnant", /* \376\375 */
- "rayé", /* \376\376 */
- "rectangulaire", /* \376\377 */
- "religion", /* \377\001 */
- "remu", /* \377\002 */
- "rentogen", /* \377\003 */
- "représente", /* \377\004 */
- "rhotacisme", /* \377\005 */
- "rhéostat", /* \377\006 */
- "rideaux", /* \377\007 */
- "rira", /* \377\010 */
- "rittoru", /* \377\011 */
- "riûl-k'iûk'", /* \377\012 */
- "riûl-kapyo-ounpiûp", /* \377\013 */
- "riûl-miûm-kiyok", /* \377\014 */
- "riûl-miûm-siôs", /* \377\015 */
- "riûl-piûp-hiûh", /* \377\016 */
- "riûl-ssangsiôs", /* \377\017 */
- "riûl-tikût-hiûh", /* \377\020 */
- "rou", /* \377\021 */
- "roua", /* \377\022 */
- "roub", /* \377\023 */
- "roue", /* \377\024 */
- "rousi", /* \377\025 */
- "ruban", /* \377\026 */
- "rupii", /* \377\027 */
- "ruuburu", /* \377\030 */
- "référence", /* \377\031 */
- "réponse", /* \377\032 */
- "rétrécissement", /* \377\033 */
- "réunion", /* \377\034 */
- "sablier", /* \377\035 */
- "sagittaire", /* \377\036 */
- "saikuru", /* \377\037 */
- "sajdah", /* \377\040 */
- "sala", /* \377\041 */
- "salam", /* \377\042 */
- "sallallahou", /* \377\043 */
- "samek", /* \377\044 */
- "samekh", /* \377\045 */
- "samphao", /* \377\046 */
- "sampi", /* \377\047 */
- "sanglé", /* \377\050 */
- "santiimu", /* \377\051 */
- "sapin", /* \377\052 */
- "saut", /* \377\053 */
- "scorpion", /* \377\054 */
- "scrupule", /* \377\055 */
- "second", /* \377\056 */
- "seconde", /* \377\057 */
- "secret", /* \377\060 */
- "secteur", /* \377\061 */
- "segment", /* \377\062 */
- "senti", /* \377\063 */
- "sento", /* \377\064 */
- "septembre", /* \377\065 */
- "service", /* \377\066 */
- "sh", /* \377\067 */
- "shakti", /* \377\070 */
- "shékel", /* \377\071 */
- "sinusoïde", /* \377\072 */
- "siringu", /* \377\073 */
- "sixièmes", /* \377\074 */
- "sixtefeuille", /* \377\075 */
- "siôs-hiûh", /* \377\076 */
- "siôs-iûng", /* \377\077 */
- "siôs-k'iûk'", /* \377\100 */
- "siôs-miûm", /* \377\101 */
- "siôs-p'iûp'", /* \377\102 */
- "siôs-piûp-kiyok", /* \377\103 */
- "siôs-ssangsiôs", /* \377\104 */
- "siôs-t'iût'", /* \377\105 */
- "siôs-tch'iûtch'", /* \377\106 */
- "sof", /* \377\107 */
- "soi", /* \377\110 */
- "soins", /* \377\111 */
- "sommation", /* \377\112 */
- "sortant", /* \377\113 */
- "soua", /* \377\114 */
- "sources", /* \377\115 */
- "sourire", /* \377\116 */
- "sous-article", /* \377\117 */
- "sphérique", /* \377\120 */
- "sr", /* \377\121 */
- "ssangarèa", /* \377\122 */
- "st", /* \377\123 */
- "stigma", /* \377\124 */
- "succursale", /* \377\125 */
- "suivante", /* \377\126 */
- "supervise", /* \377\127 */
- "superviser", /* \377\130 */
- "surface", /* \377\131 */
- "sv", /* \377\132 */
- "symbolw", /* \377\133 */
- "symétrie", /* \377\134 */
- "syouwa", /* \377\135 */
- "système", /* \377\136 */
- "séquence", /* \377\137 */
- "sérieux", /* \377\140 */
- "sûr", /* \377\141 */
- "tah", /* \377\142 */
- "taisyou", /* \377\143 */
- "tao", /* \377\144 */
- "taureau", /* \377\145 */
- "tc", /* \377\146 */
- "tch'itouûmsiôs", /* \377\147 */
- "tch'itouûmssangsiôs", /* \377\150 */
- "tch'itouûmssangtchiûtch", /* \377\151 */
- "tch'itouûmtch'iûtch'", /* \377\152 */
- "tch'itouûmtchiûtch", /* \377\153 */
- "tch'iûtch'-hiûh", /* \377\154 */
- "tch'iûtch'-k'iûk'", /* \377\155 */
- "tchada", /* \377\156 */
- "tchan", /* \377\157 */
- "tchang", /* \377\160 */
- "tchattawa", /* \377\161 */
- "tching", /* \377\162 */
- "tchiûtch-iûng", /* \377\163 */
- "tchoe", /* \377\164 */
- "tchongtch'iûmsiôs", /* \377\165 */
- "tchongtch'iûmssangsiôs", /* \377\166 */
- "tchongtch'iûmssangtchiûtch",/* \377\167 */
- "tchongtch'iûmtch'iûtch'", /* \377\170 */
- "tchongtch'iûmtchiûtch", /* \377\171 */
- "tchoula", /* \377\172 */
- "teleia", /* \377\173 */
- "tend", /* \377\174 */
- "thahan", /* \377\175 */
- "thanthakhat", /* \377\176 */
- "thong", /* \377\177 */
- "thoung", /* \377\200 */
- "thz", /* \377\201 */
- "tikût-riûl", /* \377\202 */
- "tippi", /* \377\203 */
- "tja", /* \377\204 */
- "tjo", /* \377\205 */
- "tonne", /* \377\206 */
- "tonnerre", /* \377\207 */
- "totale", /* \377\210 */
- "touche", /* \377\211 */
- "tous", /* \377\212 */
- "train", /* \377\213 */
- "traits", /* \377\214 */
- "transpercés", /* \377\215 */
- "trappu", /* \377\216 */
- "trappue", /* \377\217 */
- "traçage", /* \377\220 */
- "trente", /* \377\221 */
- "trente-et-un", /* \377\222 */
- "tri", /* \377\223 */
- "triangulaires", /* \377\224 */
- "troisième", /* \377\225 */
- "tréflée", /* \377\226 */
- "ts", /* \377\227 */
- "tsere", /* \377\230 */
- "tèche", /* \377\231 */
- "téléphonique", /* \377\232 */
- "tête", /* \377\233 */
- "udatta", /* \377\234 */
- "ultra-fine", /* \377\235 */
- "una", /* \377\236 */
- "une", /* \377\237 */
- "uon", /* \377\240 */
- "ura", /* \377\241 */
- "uranus", /* \377\242 */
- "uu", /* \377\243 */
- "variant", /* \377\244 */
- "varika", /* \377\245 */
- "vent", /* \377\246 */
- "verrou", /* \377\247 */
- "verseau", /* \377\250 */
- "versicule", /* \377\251 */
- "verticaux", /* \377\252 */
- "vi", /* \377\253 */
- "victoire", /* \377\254 */
- "vide", /* \377\255 */
- "vidée", /* \377\256 */
- "vierge", /* \377\257 */
- "vingt-cinq", /* \377\260 */
- "vingt-huit", /* \377\261 */
- "vingt-neuf", /* \377\262 */
- "vingt-sept", /* \377\263 */
- "vingt-six", /* \377\264 */
- "virtuel", /* \377\265 */
- "visualisation", /* \377\266 */
- "visuel", /* \377\267 */
- "volume", /* \377\270 */
- "waen", /* \377\271 */
- "watto", /* \377\272 */
- "wb", /* \377\273 */
- "wynn", /* \377\274 */
- "ya-yô", /* \377\275 */
- "ya-ô", /* \377\276 */
- "yaado", /* \377\277 */
- "yaaru", /* \377\300 */
- "yak", /* \377\301 */
- "yamakkan", /* \377\302 */
- "yang", /* \377\303 */
- "yin", /* \377\304 */
- "ying", /* \377\305 */
- "yo-ou", /* \377\306 */
- "yo-ô", /* \377\307 */
- "yot", /* \377\310 */
- "you-a", /* \377\311 */
- "you-o", /* \377\312 */
- "you-ou", /* \377\313 */
- "you-é", /* \377\314 */
- "yr", /* \377\315 */
- "yuan", /* \377\316 */
- "yô-yo", /* \377\317 */
- "yô-ô", /* \377\320 */
- "zh", /* \377\321 */
- "zigzag", /* \377\322 */
- "zilde", /* \377\323 */
- "éclair", /* \377\324 */
- "écrasé", /* \377\325 */
- "écu", /* \377\326 */
- "égalité", /* \377\327 */
- "égyptienne", /* \377\330 */
- "épaisse", /* \377\331 */
- "équiangulaire", /* \377\332 */
- "étagère", /* \377\333 */
- "étiré", /* \377\334 */
- "ô-o", /* \377\335 */
- "ô-ou", /* \377\336 */
- "ô-yé", /* \377\337 */
- "ô-é", /* \377\340 */
- "ô-ô", /* \377\341 */
- "û-ou", /* \377\342 */
- "û-û", /* \377\343 */
- "ûi-ou", /* \377\344 */
+ "<=", /* \373\023 */
+ "accusé", /* \373\024 */
+ "activateur", /* \373\025 */
+ "aib", /* \373\026 */
+ "alayhe", /* \373\027 */
+ "alliance", /* \373\030 */
+ "ang", /* \373\031 */
+ "annulation", /* \373\032 */
+ "appartient", /* \373\033 */
+ "arrière", /* \373\034 */
+ "arèa", /* \373\035 */
+ "ascendant", /* \373\036 */
+ "astérisque-hélice", /* \373\037 */
+ "asymptotiquement", /* \373\040 */
+ "avoir", /* \373\041 */
+ "aïn", /* \373\042 */
+ "ban", /* \373\043 */
+ "bashkir", /* \373\044 */
+ "be", /* \373\045 */
+ "beaucoup", /* \373\046 */
+ "bec", /* \373\047 */
+ "bi", /* \373\050 */
+ "bien", /* \373\051 */
+ "biélorusse", /* \373\052 */
+ "biélorusse-ukrainien", /* \373\053 */
+ "bois", /* \373\054 */
+ "bu", /* \373\055 */
+ "bé", /* \373\056 */
+ "carreau", /* \373\057 */
+ "cavalier", /* \373\060 */
+ "cciar", /* \373\061 */
+ "central", /* \373\062 */
+ "centré", /* \373\063 */
+ "cents", /* \373\064 */
+ "chan", /* \373\065 */
+ "changement", /* \373\066 */
+ "chariot", /* \373\067 */
+ "chhan", /* \373\070 */
+ "chtcha", /* \373\071 */
+ "cin", /* \373\072 */
+ "cinquante", /* \373\073 */
+ "colon", /* \373\074 */
+ "considéralement", /* \373\075 */
+ "consonne", /* \373\076 */
+ "copyright", /* \373\077 */
+ "coranique", /* \373\100 */
+ "coronis", /* \373\101 */
+ "courbée", /* \373\102 */
+ "cqar", /* \373\103 */
+ "croches", /* \373\104 */
+ "d'accolade", /* \373\105 */
+ "d'accusé", /* \373\106 */
+ "d'annulation", /* \373\107 */
+ "d'arrêt", /* \373\110 */
+ "d'en-tête", /* \373\111 */
+ "d'insertion", /* \373\112 */
+ "d'intégrale", /* \373\113 */
+ "d'une", /* \373\114 */
+ "d'échange", /* \373\115 */
+ "dame", /* \373\116 */
+ "danda", /* \373\117 */
+ "danger", /* \373\120 */
+ "dché", /* \373\121 */
+ "dei", /* \373\122 */
+ "demande", /* \373\123 */
+ "demi-anneau", /* \373\124 */
+ "demi-disque", /* \373\125 */
+ "demi-voyelle", /* \373\126 */
+ "dessus", /* \373\127 */
+ "deuxième", /* \373\130 */
+ "di", /* \373\131 */
+ "diagonaux", /* \373\132 */
+ "différence", /* \373\133 */
+ "disque", /* \373\134 */
+ "diviseur", /* \373\135 */
+ "djhe", /* \373\136 */
+ "don", /* \373\137 */
+ "dsa", /* \373\140 */
+ "dza", /* \373\141 */
+ "dzêta", /* \373\142 */
+ "dé", /* \373\143 */
+ "dénominateur", /* \373\144 */
+ "ed", /* \373\145 */
+ "effe", /* \373\146 */
+ "ei", /* \373\147 */
+ "elle", /* \373\150 */
+ "emme", /* \373\151 */
+ "enchâssement", /* \373\152 */
+ "encochée", /* \373\153 */
+ "entreprise", /* \373\154 */
+ "erre", /* \373\155 */
+ "facteur", /* \373\156 */
+ "far", /* \373\157 */
+ "fe", /* \373\160 */
+ "fei", /* \373\161 */
+ "femelle", /* \373\162 */
+ "fi", /* \373\163 */
+ "fichier", /* \373\164 */
+ "financier", /* \373\165 */
+ "fine", /* \373\166 */
+ "fita", /* \373\167 */
+ "floral", /* \373\170 */
+ "formage", /* \373\171 */
+ "formatage", /* \373\172 */
+ "formes", /* \373\173 */
+ "forçage", /* \373\174 */
+ "fou", /* \373\175 */
+ "fourche", /* \373\176 */
+ "fourchette", /* \373\177 */
+ "fractionnaire", /* \373\200 */
+ "félicitations", /* \373\201 */
+ "gauche-droite", /* \373\202 */
+ "ge", /* \373\203 */
+ "ghan", /* \373\204 */
+ "ghat", /* \373\205 */
+ "ghha", /* \373\206 */
+ "ghhan", /* \373\207 */
+ "gi", /* \373\210 */
+ "gian", /* \373\211 */
+ "giangia", /* \373\212 */
+ "gim", /* \373\213 */
+ "gjé", /* \373\214 */
+ "go", /* \373\215 */
+ "groupe", /* \373\216 */
+ "gu", /* \373\217 */
+ "guimel", /* \373\220 */
+ "géométriquement", /* \373\221 */
+ "hhae", /* \373\222 */
+ "hhar", /* \373\223 */
+ "hhoe", /* \373\224 */
+ "hie", /* \373\225 */
+ "holam", /* \373\226 */
+ "hori", /* \373\227 */
+ "hors", /* \373\230 */
+ "hue", /* \373\231 */
+ "ia", /* \373\232 */
+ "ici", /* \373\233 */
+ "identique", /* \373\234 */
+ "ij", /* \373\235 */
+ "il", /* \373\236 */
+ "inhibiteur", /* \373\237 */
+ "insécable", /* \373\240 */
+ "io", /* \373\241 */
+ "iou", /* \373\242 */
+ "isshar", /* \373\243 */
+ "iûng-kiyok", /* \373\244 */
+ "je", /* \373\245 */
+ "jeth", /* \373\246 */
+ "kapyo-ounssangpiûp", /* \373\247 */
+ "kazakhe", /* \373\250 */
+ "kg", /* \373\251 */
+ "khakassien", /* \373\252 */
+ "khei", /* \373\253 */
+ "khha", /* \373\254 */
+ "kien", /* \373\255 */
+ "kjé", /* \373\256 */
+ "ksi", /* \373\257 */
+ "l'arrière", /* \373\260 */
+ "lame", /* \373\261 */
+ "larmées", /* \373\262 */
+ "las", /* \373\263 */
+ "liant", /* \373\264 */
+ "ling", /* \373\265 */
+ "liun", /* \373\266 */
+ "livre", /* \373\267 */
+ "lj", /* \373\270 */
+ "main", /* \373\271 */
+ "man", /* \373\272 */
+ "marchandises", /* \373\273 */
+ "mb", /* \373\274 */
+ "message", /* \373\275 */
+ "mesuré", /* \373\276 */
+ "milliers", /* \373\277 */
+ "mince", /* \373\300 */
+ "miûm-pansiôs", /* \373\301 */
+ "miûm-siôs", /* \373\302 */
+ "molette", /* \373\303 */
+ "mouche", /* \373\304 */
+ "moue", /* \373\305 */
+ "mouillure", /* \373\306 */
+ "moyenne", /* \373\307 */
+ "mv", /* \373\310 */
+ "mw", /* \373\311 */
+ "mâle", /* \373\312 */
+ "métal", /* \373\313 */
+ "nar", /* \373\314 */
+ "ngo", /* \373\315 */
+ "niûn-kiyok", /* \373\316 */
+ "niûn-pansiôs", /* \373\317 */
+ "niûn-siôs", /* \373\320 */
+ "nj", /* \373\321 */
+ "nnna", /* \373\322 */
+ "nom", /* \373\323 */
+ "norme", /* \373\324 */
+ "note", /* \373\325 */
+ "nul", /* \373\326 */
+ "numéral", /* \373\327 */
+ "numérique", /* \373\330 */
+ "numéro", /* \373\331 */
+ "obliquement", /* \373\332 */
+ "obèle", /* \373\333 */
+ "oh", /* \373\334 */
+ "om", /* \373\335 */
+ "on", /* \373\336 */
+ "ondé", /* \373\337 */
+ "ordinal", /* \373\340 */
+ "ornée", /* \373\341 */
+ "otte", /* \373\342 */
+ "ouk", /* \373\343 */
+ "oï", /* \373\344 */
+ "p'iûp'-piûp", /* \373\345 */
+ "page", /* \373\346 */
+ "papillon", /* \373\347 */
+ "parallélogramme", /* \373\350 */
+ "partiel", /* \373\351 */
+ "penchée", /* \373\352 */
+ "percé", /* \373\353 */
+ "pied", /* \373\354 */
+ "pion", /* \373\355 */
+ "piur", /* \373\356 */
+ "piûp-kiyok", /* \373\357 */
+ "piûp-p'iûp'", /* \373\360 */
+ "piûp-siôs-kiyok", /* \373\361 */
+ "piûp-siôs-tikût", /* \373\362 */
+ "piûp-t'iût'", /* \373\363 */
+ "piûp-tchiûtch", /* \373\364 */
+ "piûp-tikût", /* \373\365 */
+ "plafond", /* \373\366 */
+ "plancher", /* \373\367 */
+ "planck", /* \373\370 */
+ "plein", /* \373\371 */
+ "plume", /* \373\372 */
+ "pneumata", /* \373\373 */
+ "pommetée", /* \373\374 */
+ "pont", /* \373\375 */
+ "premier", /* \373\376 */
+ "projetée", /* \373\377 */
+ "proportion", /* \374\001 */
+ "protégée", /* \374\002 */
+ "précédant", /* \374\003 */
+ "pu", /* \374\004 */
+ "qof", /* \374\005 */
+ "quadrillé", /* \374\006 */
+ "quartier", /* \374\007 */
+ "quatrième", /* \374\010 */
+ "quintefeuille", /* \374\011 */
+ "rae", /* \374\012 */
+ "ramées", /* \374\013 */
+ "rayonnante", /* \374\014 */
+ "rayons", /* \374\015 */
+ "recourbé", /* \374\016 */
+ "rectiligne", /* \374\017 */
+ "relation", /* \374\020 */
+ "repos", /* \374\021 */
+ "ressource", /* \374\022 */
+ "retour", /* \374\023 */
+ "riûl-kiyok-siôs", /* \374\024 */
+ "riûl-niûn", /* \374\025 */
+ "riûl-pansiôs", /* \374\026 */
+ "riûl-piûp-siôs", /* \374\027 */
+ "riûl-tikût", /* \374\030 */
+ "riûl-yorinhiûh", /* \374\031 */
+ "roi", /* \374\032 */
+ "réfléchie", /* \374\033 */
+ "salla", /* \374\034 */
+ "san", /* \374\035 */
+ "saturne", /* \374\036 */
+ "scei", /* \374\037 */
+ "scima", /* \374\040 */
+ "scin", /* \374\041 */
+ "segol", /* \374\042 */
+ "semi-circulaire", /* \374\043 */
+ "sgian", /* \374\044 */
+ "shha", /* \374\045 */
+ "siôs-niûn", /* \374\046 */
+ "siôs-riûl", /* \374\047 */
+ "siôs-tchiûtch", /* \374\050 */
+ "sonnerie", /* \374\051 */
+ "souriant", /* \374\052 */
+ "spécial", /* \374\053 */
+ "ssanghiûh", /* \374\054 */
+ "ssangniûn", /* \374\055 */
+ "ssangriûl", /* \374\056 */
+ "substitution", /* \374\057 */
+ "suivant", /* \374\060 */
+ "support", /* \374\061 */
+ "suppression", /* \374\062 */
+ "suspension", /* \374\063 */
+ "symétrique", /* \374\064 */
+ "synchronisation", /* \374\065 */
+ "szen", /* \374\066 */
+ "sélecteur", /* \374\067 */
+ "sélectionnée", /* \374\070 */
+ "tar", /* \374\071 */
+ "tatouïl", /* \374\072 */
+ "tau", /* \374\073 */
+ "tce", /* \374\074 */
+ "tet", /* \374\075 */
+ "thorn", /* \374\076 */
+ "thue", /* \374\077 */
+ "tikût-kiyok", /* \374\100 */
+ "tirant", /* \374\101 */
+ "tire-bouchon", /* \374\102 */
+ "tiun", /* \374\103 */
+ "tour", /* \374\104 */
+ "travail", /* \374\105 */
+ "trompe-l'oeil", /* \374\106 */
+ "trèfle", /* \374\107 */
+ "très", /* \374\110 */
+ "ukrainien", /* \374\111 */
+ "usage", /* \374\112 */
+ "utilisé", /* \374\113 */
+ "vecteur", /* \374\114 */
+ "vin", /* \374\115 */
+ "vingt-deux", /* \374\116 */
+ "vingt-et-un", /* \374\117 */
+ "vingt-quatre", /* \374\120 */
+ "vingt-trois", /* \374\121 */
+ "visible", /* \374\122 */
+ "voisée", /* \374\123 */
+ "vrai", /* \374\124 */
+ "vu", /* \374\125 */
+ "vé", /* \374\126 */
+ "vérification", /* \374\127 */
+ "wasallam", /* \374\130 */
+ "won", /* \374\131 */
+ "xi", /* \374\132 */
+ "yate", /* \374\133 */
+ "yen", /* \374\134 */
+ "yesiûng-pansiôs", /* \374\135 */
+ "yesiûng-siôs", /* \374\136 */
+ "you-i", /* \374\137 */
+ "you-yo", /* \374\140 */
+ "you-yé", /* \374\141 */
+ "yô-i", /* \374\142 */
+ "yô-ya", /* \374\143 */
+ "yô-yè", /* \374\144 */
+ "zaïn", /* \374\145 */
+ "ze", /* \374\146 */
+ "zi", /* \374\147 */
+ "zil", /* \374\150 */
+ "zo", /* \374\151 */
+ "zu", /* \374\152 */
+ "zzan", /* \374\153 */
+ "zzil", /* \374\154 */
+ "éclairée", /* \374\155 */
+ "étincellement", /* \374\156 */
+ "étude", /* \374\157 */
+ "ño", /* \374\160 */
+ "(ack)", /* \374\161 */
+ "(apc)", /* \374\162 */
+ "(bel)", /* \374\163 */
+ "(bph)", /* \374\164 */
+ "(bs)", /* \374\165 */
+ "(can)", /* \374\166 */
+ "(cch)", /* \374\167 */
+ "(cr)", /* \374\170 */
+ "(csi)", /* \374\171 */
+ "(dc1)", /* \374\172 */
+ "(dc2)", /* \374\173 */
+ "(dc3)", /* \374\174 */
+ "(dc4)", /* \374\175 */
+ "(dcs)", /* \374\176 */
+ "(del)", /* \374\177 */
+ "(dle)", /* \374\200 */
+ "(ega)", /* \374\201 */
+ "(em)", /* \374\202 */
+ "(enq)", /* \374\203 */
+ "(eot)", /* \374\204 */
+ "(esa)", /* \374\205 */
+ "(esc)", /* \374\206 */
+ "(etb)", /* \374\207 */
+ "(etx)", /* \374\210 */
+ "(ff)", /* \374\211 */
+ "(fs)", /* \374\212 */
+ "(gs)", /* \374\213 */
+ "(hop)", /* \374\214 */
+ "(ht)", /* \374\215 */
+ "(htj)", /* \374\216 */
+ "(hts)", /* \374\217 */
+ "(ind)", /* \374\220 */
+ "(lf)", /* \374\221 */
+ "(mw)", /* \374\222 */
+ "(nak)", /* \374\223 */
+ "(nbh)", /* \374\224 */
+ "(nel)", /* \374\225 */
+ "(nul)", /* \374\226 */
+ "(osc)", /* \374\227 */
+ "(pad)", /* \374\230 */
+ "(pld)", /* \374\231 */
+ "(plu)", /* \374\232 */
+ "(pm)", /* \374\233 */
+ "(pu1)", /* \374\234 */
+ "(pu2)", /* \374\235 */
+ "(ri)", /* \374\236 */
+ "(rs)", /* \374\237 */
+ "(sci)", /* \374\240 */
+ "(sga)", /* \374\241 */
+ "(sgci)", /* \374\242 */
+ "(si)", /* \374\243 */
+ "(so)", /* \374\244 */
+ "(soh)", /* \374\245 */
+ "(sos)", /* \374\246 */
+ "(ss2)", /* \374\247 */
+ "(ss3)", /* \374\250 */
+ "(ssa)", /* \374\251 */
+ "(st)", /* \374\252 */
+ "(sts)", /* \374\253 */
+ "(stx)", /* \374\254 */
+ "(sub)", /* \374\255 */
+ "(syn)", /* \374\256 */
+ "(us)", /* \374\257 */
+ "(vt)", /* \374\260 */
+ "(vts)", /* \374\261 */
+ "a-ou", /* \374\262 */
+ "a-ô", /* \374\263 */
+ "aaru", /* \374\264 */
+ "abat-jour", /* \374\265 */
+ "abîme", /* \374\266 */
+ "accentué", /* \374\267 */
+ "acceptable", /* \374\270 */
+ "acceptées", /* \374\271 */
+ "addak", /* \374\272 */
+ "adi", /* \374\273 */
+ "africain", /* \374\274 */
+ "akat", /* \374\275 */
+ "akbar", /* \374\276 */
+ "aleph", /* \374\277 */
+ "alignés", /* \374\300 */
+ "allah", /* \374\301 */
+ "aloha", /* \374\302 */
+ "alternative", /* \374\303 */
+ "alvéolaire", /* \374\304 */
+ "alésage", /* \374\305 */
+ "ampères", /* \374\306 */
+ "angkhankhou", /* \374\307 */
+ "angström", /* \374\310 */
+ "anneau", /* \374\311 */
+ "ano", /* \374\312 */
+ "anousvâra", /* \374\313 */
+ "anpea", /* \374\314 */
+ "anti-liant", /* \374\315 */
+ "anudatta", /* \374\316 */
+ "août", /* \374\317 */
+ "apaato", /* \374\320 */
+ "appel", /* \374\321 */
+ "arrondi", /* \374\322 */
+ "arrondie", /* \374\323 */
+ "arrondis", /* \374\324 */
+ "article", /* \374\325 */
+ "aruhua", /* \374\326 */
+ "arèa-i", /* \374\327 */
+ "arèa-o", /* \374\330 */
+ "arèa-ou", /* \374\331 */
+ "arèè", /* \374\332 */
+ "as", /* \374\333 */
+ "assertion", /* \374\334 */
+ "astérique", /* \374\335 */
+ "astérisme", /* \374\336 */
+ "atteindre", /* \374\337 */
+ "attente", /* \374\340 */
+ "attention", /* \374\341 */
+ "aucun", /* \374\342 */
+ "aux", /* \374\343 */
+ "avion", /* \374\344 */
+ "avril", /* \374\345 */
+ "ay", /* \374\346 */
+ "ayah", /* \374\347 */
+ "baareru", /* \374\350 */
+ "baht", /* \374\351 */
+ "baimai", /* \374\352 */
+ "balance", /* \374\353 */
+ "bancaire", /* \374\354 */
+ "bar", /* \374\355 */
+ "barbiche", /* \374\356 */
+ "barricade", /* \374\357 */
+ "base", /* \374\360 */
+ "beeta", /* \374\361 */
+ "beigne", /* \374\362 */
+ "benzène", /* \374\363 */
+ "bilabial", /* \374\364 */
+ "bindi", /* \374\365 */
+ "biologique", /* \374\366 */
+ "biru", /* \374\367 */
+ "bisectrice", /* \374\370 */
+ "blancs", /* \374\371 */
+ "bonhomme", /* \374\372 */
+ "bons", /* \374\373 */
+ "boruto", /* \374\374 */
+ "bouton", /* \374\375 */
+ "boîte", /* \374\376 */
+ "bq", /* \374\377 */
+ "brisée", /* \375\001 */
+ "bussyeru", /* \375\002 */
+ "bécarre", /* \375\003 */
+ "bélier", /* \375\004 */
+ "bémol", /* \375\005 */
+ "cada", /* \375\006 */
+ "cadrat", /* \375\007 */
+ "caducée", /* \375\010 */
+ "cal", /* \375\011 */
+ "cancer", /* \375\012 */
+ "capricorne", /* \375\013 */
+ "care-of", /* \375\014 */
+ "carotte", /* \375\015 */
+ "catawa", /* \375\016 */
+ "cc", /* \375\017 */
+ "cd", /* \375\020 */
+ "ce", /* \375\021 */
+ "ceinture", /* \375\022 */
+ "celsius", /* \375\023 */
+ "ch", /* \375\024 */
+ "chadda", /* \375\025 */
+ "chaise", /* \375\026 */
+ "chapeau", /* \375\027 */
+ "chaudes", /* \375\030 */
+ "cheva", /* \375\031 */
+ "chevron", /* \375\032 */
+ "chevrons", /* \375\033 */
+ "chifre", /* \375\034 */
+ "chèque", /* \375\035 */
+ "circulaire", /* \375\036 */
+ "citron", /* \375\037 */
+ "clavier", /* \375\040 */
+ "coché", /* \375\041 */
+ "coins", /* \375\042 */
+ "commerce", /* \375\043 */
+ "complément", /* \375\044 */
+ "compte", /* \375\045 */
+ "compte-client", /* \375\046 */
+ "comète", /* \375\047 */
+ "concave", /* \375\050 */
+ "conique", /* \375\051 */
+ "conjonction", /* \375\052 */
+ "conjuguée", /* \375\053 */
+ "conservateur", /* \375\054 */
+ "conséquent", /* \375\055 */
+ "contenant", /* \375\056 */
+ "contre-cotice", /* \375\057 */
+ "copie", /* \375\060 */
+ "coproduit", /* \375\061 */
+ "corbeau", /* \375\062 */
+ "correct", /* \375\063 */
+ "correspond", /* \375\064 */
+ "coréenne", /* \375\065 */
+ "cotice", /* \375\066 */
+ "coupe", /* \375\067 */
+ "coupure", /* \375\070 */
+ "courbé", /* \375\071 */
+ "couronne", /* \375\072 */
+ "course", /* \375\073 */
+ "croche", /* \375\074 */
+ "croissant", /* \375\075 */
+ "croisée", /* \375\076 */
+ "cruzeiro", /* \375\077 */
+ "cubique", /* \375\100 */
+ "cursif", /* \375\101 */
+ "cylindricité", /* \375\102 */
+ "d'abbréviation", /* \375\103 */
+ "d'abréviation", /* \375\104 */
+ "d'article", /* \375\105 */
+ "d'emplacement", /* \375\106 */
+ "d'enregistrement", /* \375\107 */
+ "d'ensemble", /* \375\110 */
+ "d'euler", /* \375\111 */
+ "d'exploitation", /* \375\112 */
+ "d'intérêt", /* \375\113 */
+ "d'inversion", /* \375\114 */
+ "d'unité", /* \375\115 */
+ "d'échappement", /* \375\116 */
+ "d'écrire", /* \375\117 */
+ "daasu", /* \375\120 */
+ "dagech", /* \375\121 */
+ "david", /* \375\122 */
+ "db", /* \375\123 */
+ "dddha", /* \375\124 */
+ "dej", /* \375\125 */
+ "dek", /* \375\126 */
+ "del", /* \375\127 */
+ "demi", /* \375\130 */
+ "demi-cadrat", /* \375\131 */
+ "demi-espace", /* \375\132 */
+ "dental", /* \375\133 */
+ "dernier", /* \375\134 */
+ "descendant", /* \375\135 */
+ "descendu", /* \375\136 */
+ "desi", /* \375\137 */
+ "dessous", /* \375\140 */
+ "dharma", /* \375\141 */
+ "diagonale", /* \375\142 */
+ "diamètre", /* \375\143 */
+ "digamma", /* \375\144 */
+ "dingot", /* \375\145 */
+ "directionnel", /* \375\146 */
+ "divisé", /* \375\147 */
+ "dièse", /* \375\150 */
+ "djalladjalalouhou", /* \375\151 */
+ "dl", /* \375\152 */
+ "domino", /* \375\153 */
+ "dong", /* \375\154 */
+ "doru", /* \375\155 */
+ "doubles", /* \375\156 */
+ "doute", /* \375\157 */
+ "décembre", /* \375\160 */
+ "décimal", /* \375\161 */
+ "définition", /* \375\162 */
+ "démontrer", /* \375\163 */
+ "dépilement", /* \375\164 */
+ "déposée", /* \375\165 */
+ "dérivée", /* \375\166 */
+ "dérouleur", /* \375\167 */
+ "eekaa", /* \375\170 */
+ "effacement", /* \375\171 */
+ "effachement", /* \375\172 */
+ "egal", /* \375\173 */
+ "eh", /* \375\174 */
+ "el", /* \375\175 */
+ "enfer", /* \375\176 */
+ "enregistreur", /* \375\177 */
+ "ensemble", /* \375\200 */
+ "entièrement", /* \375\201 */
+ "entrant", /* \375\202 */
+ "enveloppe", /* \375\203 */
+ "er", /* \375\204 */
+ "esh", /* \375\205 */
+ "estime", /* \375\206 */
+ "estimé", /* \375\207 */
+ "esukuudo", /* \375\210 */
+ "euro", /* \375\211 */
+ "excellent", /* \375\212 */
+ "exclarrogatif", /* \375\213 */
+ "exclusif", /* \375\214 */
+ "excès", /* \375\215 */
+ "existe", /* \375\216 */
+ "exécution", /* \375\217 */
+ "fahrenheit", /* \375\220 */
+ "fallait", /* \375\221 */
+ "fan", /* \375\222 */
+ "faucille", /* \375\223 */
+ "fermeture", /* \375\224 */
+ "festival", /* \375\225 */
+ "ff", /* \375\226 */
+ "ffi", /* \375\227 */
+ "ffl", /* \375\230 */
+ "fixe", /* \375\231 */
+ "fl", /* \375\232 */
+ "fm", /* \375\233 */
+ "folioles", /* \375\234 */
+ "foncée", /* \375\235 */
+ "fongman", /* \375\236 */
+ "fraisage", /* \375\237 */
+ "franc", /* \375\240 */
+ "français", /* \375\241 */
+ "fuseau", /* \375\242 */
+ "féminin", /* \375\243 */
+ "février", /* \375\244 */
+ "ganma", /* \375\245 */
+ "garon", /* \375\246 */
+ "gb", /* \375\247 */
+ "gerchâïm", /* \375\250 */
+ "gerech", /* \375\251 */
+ "ghz", /* \375\252 */
+ "giga", /* \375\253 */
+ "gimel", /* \375\254 */
+ "ginii", /* \375\255 */
+ "girudaa", /* \375\256 */
+ "gn", /* \375\257 */
+ "gpa", /* \375\260 */
+ "graphique", /* \375\261 */
+ "grimaçant", /* \375\262 */
+ "guillemets", /* \375\263 */
+ "guramu", /* \375\264 */
+ "guramuton", /* \375\265 */
+ "gy", /* \375\266 */
+ "gémeaux", /* \375\267 */
+ "géométrique", /* \375\270 */
+ "géorgien", /* \375\271 */
+ "gêta", /* \375\272 */
+ "haitu", /* \375\273 */
+ "han", /* \375\274 */
+ "haute", /* \375\275 */
+ "heisei", /* \375\276 */
+ "hekutaaru", /* \375\277 */
+ "hermitienne", /* \375\300 */
+ "herutu", /* \375\301 */
+ "het", /* \375\302 */
+ "hip", /* \375\303 */
+ "hiriq", /* \375\304 */
+ "hizb", /* \375\305 */
+ "hiûh-miûm", /* \375\306 */
+ "hiûh-niûn", /* \375\307 */
+ "hiûh-piûp", /* \375\310 */
+ "hiûh-riûl", /* \375\311 */
+ "homothétique", /* \375\312 */
+ "hon", /* \375\313 */
+ "hoon", /* \375\314 */
+ "hooru", /* \375\315 */
+ "horizontalement", /* \375\316 */
+ "horizontaux", /* \375\317 */
+ "hors-tout", /* \375\320 */
+ "hp", /* \375\321 */
+ "hpa", /* \375\322 */
+ "huarado", /* \375\323 */
+ "huiito", /* \375\324 */
+ "huran", /* \375\325 */
+ "hv", /* \375\326 */
+ "hz", /* \375\327 */
+ "i-a", /* \375\330 */
+ "i-arèa", /* \375\331 */
+ "i-ou", /* \375\332 */
+ "i-ya", /* \375\333 */
+ "i-ô", /* \375\334 */
+ "i-û", /* \375\335 */
+ "identification", /* \375\336 */
+ "ie", /* \375\337 */
+ "imprimer", /* \375\340 */
+ "incrément", /* \375\341 */
+ "industrielle", /* \375\342 */
+ "infini", /* \375\343 */
+ "info", /* \375\344 */
+ "iningu", /* \375\345 */
+ "intercale", /* \375\346 */
+ "interrompue", /* \375\347 */
+ "inti", /* \375\350 */
+ "inutilisé", /* \375\351 */
+ "inversé", /* \375\352 */
+ "iri", /* \375\353 */
+ "iu", /* \375\354 */
+ "iûng-k'iûk'", /* \375\355 */
+ "iûng-miûm", /* \375\356 */
+ "iûng-p'iûp'", /* \375\357 */
+ "iûng-pansiôs", /* \375\360 */
+ "iûng-piûp", /* \375\361 */
+ "iûng-siôs", /* \375\362 */
+ "iûng-ssangkiyok", /* \375\363 */
+ "iûng-t'iût'", /* \375\364 */
+ "iûng-tch'iûtch'", /* \375\365 */
+ "iûng-tchiûtch", /* \375\366 */
+ "iûng-tikût", /* \375\367 */
+ "janvier", /* \375\370 */
+ "japonaise", /* \375\371 */
+ "judéo-espagnol", /* \375\372 */
+ "juillet", /* \375\373 */
+ "juin", /* \375\374 */
+ "jupiter", /* \375\375 */
+ "justification", /* \375\376 */
+ "jérusalem", /* \375\377 */
+ "kai", /* \376\001 */
+ "kairi", /* \376\002 */
+ "kapyo-ounriûl", /* \376\003 */
+ "karatto", /* \376\004 */
+ "karorii", /* \376\005 */
+ "kb", /* \376\006 */
+ "kcal", /* \376\007 */
+ "keesu", /* \376\010 */
+ "kelvin", /* \376\011 */
+ "khai", /* \376\012 */
+ "khomout", /* \376\013 */
+ "khon", /* \376\014 */
+ "khouat", /* \376\015 */
+ "khwai", /* \376\016 */
+ "khz", /* \376\017 */
+ "kiro", /* \376\020 */
+ "kiroguramu", /* \376\021 */
+ "kiromeetoru", /* \376\022 */
+ "kirowatto", /* \376\023 */
+ "kiyok-riûl", /* \376\024 */
+ "kiyok-siôs-kiyok", /* \376\025 */
+ "kk", /* \376\026 */
+ "kl", /* \376\027 */
+ "kon", /* \376\030 */
+ "koopo", /* \376\031 */
+ "koruna", /* \376\032 */
+ "koubouts", /* \376\033 */
+ "kpa", /* \376\034 */
+ "kra", /* \376\035 */
+ "kt", /* \376\036 */
+ "kuroone", /* \376\037 */
+ "kuruzeiro", /* \376\040 */
+ "kv", /* \376\041 */
+ "kw", /* \376\042 */
+ "kyurii", /* \376\043 */
+ "l'espace", /* \376\044 */
+ "l'homme", /* \376\045 */
+ "lac", /* \376\046 */
+ "lakkhangyao", /* \376\047 */
+ "laotiens", /* \376\050 */
+ "latéral", /* \376\051 */
+ "ldjé", /* \376\052 */
+ "lej", /* \376\053 */
+ "liaison", /* \376\054 */
+ "libéral", /* \376\055 */
+ "limite", /* \376\056 */
+ "lion", /* \376\057 */
+ "lire", /* \376\060 */
+ "ljé", /* \376\061 */
+ "lm", /* \376\062 */
+ "ln", /* \376\063 */
+ "log", /* \376\064 */
+ "lorraine", /* \376\065 */
+ "lou", /* \376\066 */
+ "lout", /* \376\067 */
+ "lunaire", /* \376\070 */
+ "lx", /* \376\071 */
+ "légère", /* \376\072 */
+ "mahha", /* \376\073 */
+ "maimalai", /* \376\074 */
+ "maimuan", /* \376\075 */
+ "maison", /* \376\076 */
+ "maitaikhou", /* \376\077 */
+ "maiyamok", /* \376\100 */
+ "makku", /* \376\101 */
+ "malte", /* \376\102 */
+ "mansyon", /* \376\103 */
+ "maqaf", /* \376\104 */
+ "marqué", /* \376\105 */
+ "mars", /* \376\106 */
+ "marteau", /* \376\107 */
+ "masculin", /* \376\110 */
+ "matrice", /* \376\111 */
+ "mayakru", /* \376\112 */
+ "mayakuro", /* \376\113 */
+ "meetoru", /* \376\114 */
+ "meizi", /* \376\115 */
+ "mercure", /* \376\116 */
+ "mesure", /* \376\117 */
+ "meteg", /* \376\120 */
+ "mg", /* \376\121 */
+ "mhz", /* \376\122 */
+ "micro", /* \376\123 */
+ "mikuron", /* \376\124 */
+ "mil", /* \376\125 */
+ "millième", /* \376\126 */
+ "minnie", /* \376\127 */
+ "miri", /* \376\130 */
+ "miribaaru", /* \376\131 */
+ "mise", /* \376\132 */
+ "miûm-hiûh", /* \376\133 */
+ "miûm-kiyok", /* \376\134 */
+ "miûm-riûl", /* \376\135 */
+ "miûm-ssangsiôs", /* \376\136 */
+ "miûm-tch'iûtch'", /* \376\137 */
+ "ml", /* \376\140 */
+ "mode", /* \376\141 */
+ "modélise", /* \376\142 */
+ "mohammad", /* \376\143 */
+ "moineau", /* \376\144 */
+ "moins-ou-plus", /* \376\145 */
+ "mol", /* \376\146 */
+ "montagne", /* \376\147 */
+ "montant", /* \376\150 */
+ "montre", /* \376\151 */
+ "mort", /* \376\152 */
+ "mot", /* \376\153 */
+ "mouette", /* \376\154 */
+ "moyen", /* \376\155 */
+ "mpa", /* \376\156 */
+ "ms", /* \376\157 */
+ "multijection", /* \376\160 */
+ "médecine", /* \376\161 */
+ "médiane", /* \376\162 */
+ "médians", /* \376\163 */
+ "mégatonne", /* \376\164 */
+ "n'appartient", /* \376\165 */
+ "n'est", /* \376\166 */
+ "n'existe", /* \376\167 */
+ "n'oblige", /* \376\170 */
+ "nabla", /* \376\171 */
+ "naira", /* \376\172 */
+ "nangmontho", /* \376\173 */
+ "nano", /* \376\174 */
+ "nationales", /* \376\175 */
+ "ndjé", /* \376\176 */
+ "nen", /* \376\177 */
+ "neptune", /* \376\200 */
+ "nf", /* \376\201 */
+ "ngu", /* \376\202 */
+ "niggahita", /* \376\203 */
+ "nikhahit", /* \376\204 */
+ "niûn-piûp", /* \376\205 */
+ "niûn-t'iût'", /* \376\206 */
+ "njé", /* \376\207 */
+ "nm", /* \376\210 */
+ "noirs", /* \376\211 */
+ "nokhouk", /* \376\212 */
+ "nominales", /* \376\213 */
+ "non-barre", /* \376\214 */
+ "non-et", /* \376\215 */
+ "non-ou", /* \376\216 */
+ "notto", /* \376\217 */
+ "nou", /* \376\220 */
+ "nouveau", /* \376\221 */
+ "nouvelle", /* \376\222 */
+ "novembre", /* \376\223 */
+ "ns", /* \376\224 */
+ "nuage", /* \376\225 */
+ "nuit", /* \376\226 */
+ "nv", /* \376\227 */
+ "nw", /* \376\230 */
+ "o-ou", /* \376\231 */
+ "o-ô", /* \376\232 */
+ "o-û", /* \376\233 */
+ "oblige", /* \376\234 */
+ "octet", /* \376\235 */
+ "octobre", /* \376\236 */
+ "once", /* \376\237 */
+ "onkar", /* \376\240 */
+ "onsu", /* \376\241 */
+ "oomu", /* \376\242 */
+ "opposition", /* \376\243 */
+ "option", /* \376\244 */
+ "orage", /* \376\245 */
+ "ordonnances", /* \376\246 */
+ "origine", /* \376\247 */
+ "orthodoxe", /* \376\250 */
+ "ou-a", /* \376\251 */
+ "ou-o-û", /* \376\252 */
+ "ou-ou", /* \376\253 */
+ "ou-yé", /* \376\254 */
+ "ou-è", /* \376\255 */
+ "oue", /* \376\256 */
+ "ouee", /* \376\257 */
+ "ouverte", /* \376\260 */
+ "ov", /* \376\261 */
+ "paasento", /* \376\262 */
+ "paatu", /* \376\263 */
+ "paix", /* \376\264 */
+ "paiyannoi", /* \376\265 */
+ "palatalisation", /* \376\266 */
+ "palochka", /* \376\267 */
+ "parapluie", /* \376\270 */
+ "parce", /* \376\271 */
+ "partie", /* \376\272 */
+ "partielle", /* \376\273 */
+ "partir", /* \376\274 */
+ "paseq", /* \376\275 */
+ "pastille", /* \376\276 */
+ "pasuq", /* \376\277 */
+ "patak", /* \376\300 */
+ "pc", /* \376\301 */
+ "peezi", /* \376\302 */
+ "penihi", /* \376\303 */
+ "pensu", /* \376\304 */
+ "pente", /* \376\305 */
+ "permis", /* \376\306 */
+ "perspective", /* \376\307 */
+ "peseta", /* \376\310 */
+ "peso", /* \376\311 */
+ "pf", /* \376\312 */
+ "ph", /* \376\313 */
+ "phan", /* \376\314 */
+ "phinthou", /* \376\315 */
+ "phonogramme", /* \376\316 */
+ "phoung", /* \376\317 */
+ "phouthao", /* \376\320 */
+ "piasutoru", /* \376\321 */
+ "piko", /* \376\322 */
+ "pikuru", /* \376\323 */
+ "piûp-hiûh", /* \376\324 */
+ "piûp-niûn", /* \376\325 */
+ "piûp-riûl", /* \376\326 */
+ "piûp-siôs-piûp", /* \376\327 */
+ "piûp-siôs-tchiûtch", /* \376\330 */
+ "piûp-ssangsiôs", /* \376\331 */
+ "piûp-tch'iûtch'", /* \376\332 */
+ "pla", /* \376\333 */
+ "place", /* \376\334 */
+ "plus-ou-moins", /* \376\335 */
+ "pluton", /* \376\336 */
+ "pm", /* \376\337 */
+ "pointillé", /* \376\340 */
+ "pointo", /* \376\341 */
+ "poissons", /* \376\342 */
+ "pommeté", /* \376\343 */
+ "pondo", /* \376\344 */
+ "position", /* \376\345 */
+ "ppm", /* \376\346 */
+ "pr", /* \376\347 */
+ "precède", /* \376\350 */
+ "profil", /* \376\351 */
+ "progiciel", /* \376\352 */
+ "projective", /* \376\353 */
+ "proportionnel", /* \376\354 */
+ "prouve", /* \376\355 */
+ "précédent", /* \376\356 */
+ "précédée", /* \376\357 */
+ "prédéfini", /* \376\360 */
+ "ps", /* \376\361 */
+ "pv", /* \376\362 */
+ "pw", /* \376\363 */
+ "qa", /* \376\364 */
+ "qala", /* \376\365 */
+ "qu'il", /* \376\366 */
+ "quad", /* \376\367 */
+ "quartefeuille", /* \376\370 */
+ "radioactivivité", /* \376\371 */
+ "rail", /* \376\372 */
+ "rakhang", /* \376\373 */
+ "rapport", /* \376\374 */
+ "rasoul", /* \376\375 */
+ "rayonnant", /* \376\376 */
+ "rayé", /* \376\377 */
+ "rectangulaire", /* \377\001 */
+ "religion", /* \377\002 */
+ "remu", /* \377\003 */
+ "rentogen", /* \377\004 */
+ "représente", /* \377\005 */
+ "rhotacisme", /* \377\006 */
+ "rhéostat", /* \377\007 */
+ "rideaux", /* \377\010 */
+ "rira", /* \377\011 */
+ "rittoru", /* \377\012 */
+ "riûl-k'iûk'", /* \377\013 */
+ "riûl-kapyo-ounpiûp", /* \377\014 */
+ "riûl-miûm-kiyok", /* \377\015 */
+ "riûl-miûm-siôs", /* \377\016 */
+ "riûl-piûp-hiûh", /* \377\017 */
+ "riûl-ssangsiôs", /* \377\020 */
+ "riûl-tikût-hiûh", /* \377\021 */
+ "rou", /* \377\022 */
+ "roua", /* \377\023 */
+ "roub", /* \377\024 */
+ "roue", /* \377\025 */
+ "rousi", /* \377\026 */
+ "ruban", /* \377\027 */
+ "rupii", /* \377\030 */
+ "ruuburu", /* \377\031 */
+ "référence", /* \377\032 */
+ "réponse", /* \377\033 */
+ "rétrécissement", /* \377\034 */
+ "réunion", /* \377\035 */
+ "sablier", /* \377\036 */
+ "sagittaire", /* \377\037 */
+ "saikuru", /* \377\040 */
+ "sajdah", /* \377\041 */
+ "sala", /* \377\042 */
+ "salam", /* \377\043 */
+ "sallallahou", /* \377\044 */
+ "samek", /* \377\045 */
+ "samekh", /* \377\046 */
+ "samphao", /* \377\047 */
+ "sampi", /* \377\050 */
+ "sanglé", /* \377\051 */
+ "santiimu", /* \377\052 */
+ "sapin", /* \377\053 */
+ "saut", /* \377\054 */
+ "scorpion", /* \377\055 */
+ "scrupule", /* \377\056 */
+ "second", /* \377\057 */
+ "seconde", /* \377\060 */
+ "secret", /* \377\061 */
+ "secteur", /* \377\062 */
+ "segment", /* \377\063 */
+ "senti", /* \377\064 */
+ "sento", /* \377\065 */
+ "septembre", /* \377\066 */
+ "service", /* \377\067 */
+ "sh", /* \377\070 */
+ "shakti", /* \377\071 */
+ "shékel", /* \377\072 */
+ "sinusoïde", /* \377\073 */
+ "siringu", /* \377\074 */
+ "sixièmes", /* \377\075 */
+ "sixtefeuille", /* \377\076 */
+ "siôs-hiûh", /* \377\077 */
+ "siôs-iûng", /* \377\100 */
+ "siôs-k'iûk'", /* \377\101 */
+ "siôs-miûm", /* \377\102 */
+ "siôs-p'iûp'", /* \377\103 */
+ "siôs-piûp-kiyok", /* \377\104 */
+ "siôs-ssangsiôs", /* \377\105 */
+ "siôs-t'iût'", /* \377\106 */
+ "siôs-tch'iûtch'", /* \377\107 */
+ "sof", /* \377\110 */
+ "soi", /* \377\111 */
+ "soins", /* \377\112 */
+ "sommation", /* \377\113 */
+ "sortant", /* \377\114 */
+ "soua", /* \377\115 */
+ "sources", /* \377\116 */
+ "sourire", /* \377\117 */
+ "sous-article", /* \377\120 */
+ "sphérique", /* \377\121 */
+ "sr", /* \377\122 */
+ "ssangarèa", /* \377\123 */
+ "st", /* \377\124 */
+ "stigma", /* \377\125 */
+ "succursale", /* \377\126 */
+ "suivante", /* \377\127 */
+ "supervise", /* \377\130 */
+ "superviser", /* \377\131 */
+ "surface", /* \377\132 */
+ "sv", /* \377\133 */
+ "symbolw", /* \377\134 */
+ "symétrie", /* \377\135 */
+ "syouwa", /* \377\136 */
+ "système", /* \377\137 */
+ "séquence", /* \377\140 */
+ "sérieux", /* \377\141 */
+ "sûr", /* \377\142 */
+ "tah", /* \377\143 */
+ "taisyou", /* \377\144 */
+ "tao", /* \377\145 */
+ "taureau", /* \377\146 */
+ "tc", /* \377\147 */
+ "tch'itouûmsiôs", /* \377\150 */
+ "tch'itouûmssangsiôs", /* \377\151 */
+ "tch'itouûmssangtchiûtch", /* \377\152 */
+ "tch'itouûmtch'iûtch'", /* \377\153 */
+ "tch'itouûmtchiûtch", /* \377\154 */
+ "tch'iûtch'-hiûh", /* \377\155 */
+ "tch'iûtch'-k'iûk'", /* \377\156 */
+ "tchada", /* \377\157 */
+ "tchan", /* \377\160 */
+ "tchang", /* \377\161 */
+ "tchattawa", /* \377\162 */
+ "tching", /* \377\163 */
+ "tchiûtch-iûng", /* \377\164 */
+ "tchoe", /* \377\165 */
+ "tchongtch'iûmsiôs", /* \377\166 */
+ "tchongtch'iûmssangsiôs", /* \377\167 */
+ "tchongtch'iûmssangtchiûtch",/* \377\170 */
+ "tchongtch'iûmtch'iûtch'", /* \377\171 */
+ "tchongtch'iûmtchiûtch", /* \377\172 */
+ "tchoula", /* \377\173 */
+ "teleia", /* \377\174 */
+ "tend", /* \377\175 */
+ "thahan", /* \377\176 */
+ "thanthakhat", /* \377\177 */
+ "thong", /* \377\200 */
+ "thoung", /* \377\201 */
+ "thz", /* \377\202 */
+ "tikût-riûl", /* \377\203 */
+ "tippi", /* \377\204 */
+ "tja", /* \377\205 */
+ "tjo", /* \377\206 */
+ "tonne", /* \377\207 */
+ "tonnerre", /* \377\210 */
+ "totale", /* \377\211 */
+ "touche", /* \377\212 */
+ "tous", /* \377\213 */
+ "train", /* \377\214 */
+ "traits", /* \377\215 */
+ "transpercés", /* \377\216 */
+ "trappu", /* \377\217 */
+ "trappue", /* \377\220 */
+ "traçage", /* \377\221 */
+ "trente", /* \377\222 */
+ "trente-et-un", /* \377\223 */
+ "tri", /* \377\224 */
+ "triangulaires", /* \377\225 */
+ "troisième", /* \377\226 */
+ "tréflée", /* \377\227 */
+ "ts", /* \377\230 */
+ "tsere", /* \377\231 */
+ "tèche", /* \377\232 */
+ "téléphonique", /* \377\233 */
+ "tête", /* \377\234 */
+ "udatta", /* \377\235 */
+ "ultra-fine", /* \377\236 */
+ "una", /* \377\237 */
+ "une", /* \377\240 */
+ "uon", /* \377\241 */
+ "ura", /* \377\242 */
+ "uranus", /* \377\243 */
+ "uu", /* \377\244 */
+ "variant", /* \377\245 */
+ "varika", /* \377\246 */
+ "vent", /* \377\247 */
+ "verrou", /* \377\250 */
+ "verseau", /* \377\251 */
+ "versicule", /* \377\252 */
+ "verticaux", /* \377\253 */
+ "vi", /* \377\254 */
+ "victoire", /* \377\255 */
+ "vide", /* \377\256 */
+ "vidée", /* \377\257 */
+ "vierge", /* \377\260 */
+ "vingt-cinq", /* \377\261 */
+ "vingt-huit", /* \377\262 */
+ "vingt-neuf", /* \377\263 */
+ "vingt-sept", /* \377\264 */
+ "vingt-six", /* \377\265 */
+ "virtuel", /* \377\266 */
+ "visualisation", /* \377\267 */
+ "visuel", /* \377\270 */
+ "volume", /* \377\271 */
+ "waen", /* \377\272 */
+ "watto", /* \377\273 */
+ "wb", /* \377\274 */
+ "wynn", /* \377\275 */
+ "ya-yô", /* \377\276 */
+ "ya-ô", /* \377\277 */
+ "yaado", /* \377\300 */
+ "yaaru", /* \377\301 */
+ "yak", /* \377\302 */
+ "yamakkan", /* \377\303 */
+ "yang", /* \377\304 */
+ "yin", /* \377\305 */
+ "ying", /* \377\306 */
+ "yo-ou", /* \377\307 */
+ "yo-ô", /* \377\310 */
+ "yot", /* \377\311 */
+ "you-a", /* \377\312 */
+ "you-o", /* \377\313 */
+ "you-ou", /* \377\314 */
+ "you-é", /* \377\315 */
+ "yr", /* \377\316 */
+ "yuan", /* \377\317 */
+ "yô-yo", /* \377\320 */
+ "yô-ô", /* \377\321 */
+ "zh", /* \377\322 */
+ "zigzag", /* \377\323 */
+ "zilde", /* \377\324 */
+ "éclair", /* \377\325 */
+ "écrasé", /* \377\326 */
+ "écu", /* \377\327 */
+ "égalité", /* \377\330 */
+ "égyptienne", /* \377\331 */
+ "épaisse", /* \377\332 */
+ "équiangulaire", /* \377\333 */
+ "étagère", /* \377\334 */
+ "étiré", /* \377\335 */
+ "ô-o", /* \377\336 */
+ "ô-ou", /* \377\337 */
+ "ô-yé", /* \377\340 */
+ "ô-é", /* \377\341 */
+ "ô-ô", /* \377\342 */
+ "û-ou", /* \377\343 */
+ "û-û", /* \377\344 */
+ "ûi-ou", /* \377\345 */
};
struct charname
static const struct charname charname[NUMBER_OF_CHARNAMES] =
{
- {0x0000, "\373\325\374\225"},
- {0x0001, "\371\141\373\110\374\244"},
- {0x0002, "\371\141\012\372\166\374\253"},
- {0x0003, "\070\012\372\166\374\207"},
- {0x0004, "\070\012\371\254\374\203"},
- {0x0005, "\373\122\374\202"},
- {0x0006, "\373\023\012\372\147\371\311\374\160"},
- {0x0007, "\374\050\374\162"},
- {0x0008, "\371\025\373\033\374\164"},
- {0x0009, "\372\163\372\263\374\214"},
- {0x000A, "\372\267\374\220"},
- {0x000B, "\372\163\224\374\257"},
- {0x000C, "\373\345\377\126\374\210"},
- {0x000D, "\374\022\012\373\066\374\167"},
- {0x000E, "\373\227\372\047\374\243"},
- {0x000F, "\007\372\047\374\242"},
- {0x0010, "\373\016\371\254\374\177"},
- {0x0011, "\371\023\371\344\132\374\171"},
- {0x0012, "\371\023\371\344\154\374\172"},
- {0x0013, "\371\023\371\344\131\374\173"},
- {0x0014, "\371\023\371\344\200\374\174"},
- {0x0015, "\373\023\012\372\147\223\374\222"},
- {0x0016, "\374\064\374\255"},
- {0x0017, "\070\012\371\254\012\304\374\206"},
- {0x0018, "\373\031\374\165"},
- {0x0019, "\070\012\374\060\374\201"},
- {0x001A, "\074\012\374\056\374\254"},
- {0x001B, "\373\016\374\205"},
- {0x001C, "\371\007\012\373\163\374\211"},
- {0x001D, "\371\007\012\373\215\374\212"},
- {0x001E, "\371\007\375\104\374\236"},
- {0x001F, "\371\007\012\377\117\374\256"},
- {0x0020, "\371\025"},
- {0x0021, "\027\371\131"},
+ {0x0000, "\373\326\374\226"},
+ {0x0001, "\371\142\373\111\374\245"},
+ {0x0002, "\371\142\012\372\166\374\254"},
+ {0x0003, "\070\012\372\166\374\210"},
+ {0x0004, "\070\012\371\255\374\204"},
+ {0x0005, "\373\123\374\203"},
+ {0x0006, "\373\024\012\372\147\371\312\374\161"},
+ {0x0007, "\374\051\374\163"},
+ {0x0008, "\371\026\373\034\374\165"},
+ {0x0009, "\372\163\372\263\374\215"},
+ {0x000A, "\372\267\374\221"},
+ {0x000B, "\372\163\224\374\260"},
+ {0x000C, "\373\346\377\127\374\211"},
+ {0x000D, "\374\023\012\373\067\374\170"},
+ {0x000E, "\373\230\372\047\374\244"},
+ {0x000F, "\007\372\047\374\243"},
+ {0x0010, "\373\016\371\255\374\200"},
+ {0x0011, "\371\024\371\345\132\374\172"},
+ {0x0012, "\371\024\371\345\154\374\173"},
+ {0x0013, "\371\024\371\345\131\374\174"},
+ {0x0014, "\371\024\371\345\200\374\175"},
+ {0x0015, "\373\024\012\372\147\223\374\223"},
+ {0x0016, "\374\065\374\256"},
+ {0x0017, "\070\012\371\255\012\304\374\207"},
+ {0x0018, "\373\032\374\166"},
+ {0x0019, "\070\012\374\061\374\202"},
+ {0x001A, "\074\012\374\057\374\255"},
+ {0x001B, "\373\016\374\206"},
+ {0x001C, "\371\007\012\373\164\374\212"},
+ {0x001D, "\371\007\012\373\216\374\213"},
+ {0x001E, "\371\007\375\105\374\237"},
+ {0x001F, "\371\007\012\377\120\374\257"},
+ {0x0020, "\371\026"},
+ {0x0021, "\027\371\132"},
{0x0022, "\371\014\372\037"},
{0x0023, "\372\227"},
{0x0024, "\015\372\243"},
- {0x0025, "\015\335\371\222"},
+ {0x0025, "\015\335\371\223"},
{0x0026, "\372\327"},
- {0x0027, "\371\215"},
+ {0x0027, "\371\216"},
{0x0028, "\371\004\042"},
{0x0029, "\371\004\037"},
{0x002A, "\371\011"},
{0x002B, "\134\162"},
{0x002C, "\331"},
- {0x002D, "\371\071"},
+ {0x002D, "\371\072"},
{0x002E, "\027"},
{0x002F, "\210\361"},
{0x0030, "\017\311"},
{0x0037, "\017\221"},
{0x0038, "\017\204"},
{0x0039, "\017\235"},
- {0x003A, "\371\347"},
- {0x003B, "\372\007"},
+ {0x003A, "\371\350"},
+ {0x003B, "\372\010"},
{0x003C, "\134\300\040"},
{0x003D, "\134\142\040"},
{0x003E, "\134\326\040"},
- {0x003F, "\027\371\224"},
+ {0x003F, "\027\371\225"},
{0x0040, "\372\206"},
{0x0041, "\001\005\004\046"},
{0x0042, "\001\005\004\275"},
{0x004E, "\001\005\004\213"},
{0x004F, "\001\005\004\050"},
{0x0050, "\001\005\004\351"},
- {0x0051, "\001\005\004\371\065"},
+ {0x0051, "\001\005\004\371\066"},
{0x0052, "\001\005\004\150"},
{0x0053, "\001\005\004\207"},
{0x0054, "\001\005\004\236"},
{0x0059, "\001\005\004\240"},
{0x005A, "\001\005\004\243"},
{0x005B, "\100\042"},
- {0x005C, "\210\361\371\274"},
+ {0x005C, "\210\361\371\275"},
{0x005D, "\100\173"},
{0x005E, "\026\117"},
{0x005F, "\264\061"},
{0x006E, "\001\003\004\213"},
{0x006F, "\001\003\004\050"},
{0x0070, "\001\003\004\351"},
- {0x0071, "\001\003\004\371\065"},
+ {0x0071, "\001\003\004\371\066"},
{0x0072, "\001\003\004\150"},
{0x0073, "\001\003\004\207"},
{0x0074, "\001\003\004\236"},
{0x0078, "\001\003\004\310"},
{0x0079, "\001\003\004\240"},
{0x007A, "\001\003\004\243"},
- {0x007B, "\371\260\042"},
+ {0x007B, "\371\261\042"},
{0x007C, "\210\224"},
- {0x007D, "\371\260\037"},
+ {0x007D, "\371\261\037"},
{0x007E, "\143"},
- {0x007F, "\374\061\374\176"},
- {0x0080, "\074\012\371\340\374\227"},
- {0x0081, "\376\234\326\376\357\374\213"},
- {0x0082, "\372\041\376\305\373\232\374\163"},
- {0x0083, "\374\341\372\041\373\232\374\223"},
- {0x0084, "\371\150\374\217"},
- {0x0085, "\040\022\212\374\224"},
- {0x0086, "\371\141\012\372\200\374\067\374\250"},
- {0x0087, "\070\012\372\200\374\067\374\204"},
- {0x0088, "\372\041\012\372\366\211\374\216"},
- {0x0089, "\372\366\211\130\375\375\374\215"},
- {0x008A, "\372\041\012\372\366\145\374\260"},
- {0x008B, "\372\267\373\350\013\035\061\374\230"},
- {0x008C, "\372\267\373\350\013\035\065\374\231"},
- {0x008D, "\371\150\375\351\374\235"},
- {0x008E, "\372\340\372\171\154\374\246"},
- {0x008F, "\372\340\372\171\131\374\247"},
- {0x0090, "\372\214\012\371\023\371\344\374\175"},
- {0x0091, "\374\111\372\332\132\374\233"},
- {0x0092, "\374\111\372\332\154\374\234"},
- {0x0093, "\376\131\007\376\140\371\254\374\252"},
- {0x0094, "\373\031\226\074\376\355\374\166"},
- {0x0095, "\373\274\007\374\337\374\221"},
- {0x0096, "\371\141\012\372\200\374\001\374\240"},
- {0x0097, "\070\012\372\200\374\001\374\200"},
- {0x0098, "\371\141\012\372\214\374\245"},
- {0x0099, "\372\271\012\074\375\260\372\171\374\241"},
- {0x009A, "\372\271\012\074\372\171\374\237"},
- {0x009B, "\372\271\012\377\137\012\371\023\374\170"},
- {0x009C, "\070\012\372\214\374\251"},
- {0x009D, "\371\023\012\377\136\375\111\374\226"},
- {0x009E, "\373\274\372\332\374\232"},
- {0x009F, "\371\023\012\376\351\374\161"},
- {0x00A0, "\371\025\373\237"},
- {0x00A1, "\027\371\131\371\016"},
+ {0x007F, "\374\062\374\177"},
+ {0x0080, "\074\012\371\341\374\230"},
+ {0x0081, "\376\235\326\376\360\374\214"},
+ {0x0082, "\372\041\376\306\373\233\374\164"},
+ {0x0083, "\374\342\372\041\373\233\374\224"},
+ {0x0084, "\371\151\374\220"},
+ {0x0085, "\040\022\212\374\225"},
+ {0x0086, "\371\142\012\372\200\374\070\374\251"},
+ {0x0087, "\070\012\372\200\374\070\374\205"},
+ {0x0088, "\372\041\012\372\366\211\374\217"},
+ {0x0089, "\372\366\211\130\375\376\374\216"},
+ {0x008A, "\372\041\012\372\366\145\374\261"},
+ {0x008B, "\372\267\373\351\013\373\023\061\374\231"},
+ {0x008C, "\372\267\373\351\013\373\023\065\374\232"},
+ {0x008D, "\371\151\375\352\374\236"},
+ {0x008E, "\372\340\372\171\154\374\247"},
+ {0x008F, "\372\340\372\171\131\374\250"},
+ {0x0090, "\372\214\012\371\024\371\345\374\176"},
+ {0x0091, "\374\112\372\332\132\374\234"},
+ {0x0092, "\374\112\372\332\154\374\235"},
+ {0x0093, "\376\132\007\376\141\371\255\374\253"},
+ {0x0094, "\373\032\226\074\376\356\374\167"},
+ {0x0095, "\373\275\007\374\340\374\222"},
+ {0x0096, "\371\142\012\372\200\374\002\374\241"},
+ {0x0097, "\070\012\372\200\374\002\374\201"},
+ {0x0098, "\371\142\012\372\214\374\246"},
+ {0x0099, "\372\271\012\074\375\261\372\171\374\242"},
+ {0x009A, "\372\271\012\074\372\171\374\240"},
+ {0x009B, "\372\271\012\377\140\012\371\024\374\171"},
+ {0x009C, "\070\012\372\214\374\252"},
+ {0x009D, "\371\024\012\377\137\375\112\374\227"},
+ {0x009E, "\373\275\372\332\374\233"},
+ {0x009F, "\371\024\012\376\352\374\162"},
+ {0x00A0, "\371\026\373\240"},
+ {0x00A1, "\027\371\132\371\016"},
{0x00A2, "\015\372\212"},
- {0x00A3, "\015\373\266"},
- {0x00A4, "\015\371\161"},
- {0x00A5, "\015\374\133"},
- {0x00A6, "\210\224\375\346"},
+ {0x00A3, "\015\373\267"},
+ {0x00A4, "\015\371\162"},
+ {0x00A5, "\015\374\134"},
+ {0x00A6, "\210\224\375\347"},
{0x00A7, "\372\324"},
{0x00A8, "\141"},
- {0x00A9, "\015\373\076"},
- {0x00AA, "\372\265\373\337\375\242"},
+ {0x00A9, "\015\373\077"},
+ {0x00AA, "\372\265\373\340\375\243"},
{0x00AB, "\371\014\042"},
{0x00AC, "\134\372\116"},
- {0x00AD, "\264\371\225\377\265"},
- {0x00AE, "\015\153\375\164"},
+ {0x00AD, "\264\371\226\377\266"},
+ {0x00AE, "\015\153\375\165"},
{0x00AF, "\161"},
{0x00B0, "\015\372\236"},
- {0x00B1, "\134\376\334"},
+ {0x00B1, "\134\376\335"},
{0x00B2, "\347\154"},
{0x00B3, "\347\131"},
{0x00B4, "\026\102"},
- {0x00B5, "\015\376\122"},
- {0x00B6, "\373\353\012\373\303"},
- {0x00B7, "\027\371\037"},
+ {0x00B5, "\015\376\123"},
+ {0x00B6, "\373\354\012\373\304"},
+ {0x00B7, "\027\371\040"},
{0x00B8, "\246"},
{0x00B9, "\347\132"},
- {0x00BA, "\372\265\373\337\376\107"},
+ {0x00BA, "\372\265\373\340\376\110"},
{0x00BB, "\371\014\173"},
{0x00BC, "\356\132\372\141"},
- {0x00BD, "\356\132\375\127"},
+ {0x00BD, "\356\132\375\130"},
{0x00BE, "\356\131\372\334"},
- {0x00BF, "\027\371\224\371\016"},
+ {0x00BF, "\027\371\225\371\016"},
{0x00C0, "\001\005\004\046\026\151"},
{0x00C1, "\001\005\004\046\026\102"},
{0x00C2, "\001\005\004\046\026\117"},
{0x00CD, "\001\005\004\072\026\102"},
{0x00CE, "\001\005\004\072\026\117"},
{0x00CF, "\001\005\004\072\141"},
- {0x00D0, "\001\005\004\373\144"},
+ {0x00D0, "\001\005\004\373\145"},
{0x00D1, "\001\005\004\213\143"},
{0x00D2, "\001\005\004\050\026\151"},
{0x00D3, "\001\005\004\050\026\102"},
{0x00D5, "\001\005\004\050\143"},
{0x00D6, "\001\005\004\050\141"},
{0x00D7, "\134\372\112"},
- {0x00D8, "\001\005\004\050\175\373\331"},
+ {0x00D8, "\001\005\004\050\175\373\332"},
{0x00D9, "\001\005\004\107\026\151"},
{0x00DA, "\001\005\004\107\026\102"},
{0x00DB, "\001\005\004\107\026\117"},
{0x00DC, "\001\005\004\107\141"},
{0x00DD, "\001\005\004\240\026\102"},
- {0x00DE, "\001\005\004\374\075"},
+ {0x00DE, "\001\005\004\374\076"},
{0x00DF, "\001\003\004\207\372\246"},
{0x00E0, "\001\003\004\046\026\151"},
{0x00E1, "\001\003\004\046\026\102"},
{0x00ED, "\001\003\004\072\026\102"},
{0x00EE, "\001\003\004\072\026\117"},
{0x00EF, "\001\003\004\072\141"},
- {0x00F0, "\001\003\004\373\144"},
+ {0x00F0, "\001\003\004\373\145"},
{0x00F1, "\001\003\004\213\143"},
{0x00F2, "\001\003\004\050\026\151"},
{0x00F3, "\001\003\004\050\026\102"},
{0x00F5, "\001\003\004\050\143"},
{0x00F6, "\001\003\004\050\141"},
{0x00F7, "\134\372\242"},
- {0x00F8, "\001\003\004\050\175\373\331"},
+ {0x00F8, "\001\003\004\050\175\373\332"},
{0x00F9, "\001\003\004\107\026\151"},
{0x00FA, "\001\003\004\107\026\102"},
{0x00FB, "\001\003\004\107\026\117"},
{0x00FC, "\001\003\004\107\141"},
{0x00FD, "\001\003\004\240\026\102"},
- {0x00FE, "\001\003\004\374\075"},
+ {0x00FE, "\001\003\004\374\076"},
{0x00FF, "\001\003\004\240\141"},
{0x0100, "\001\005\004\046\161"},
{0x0101, "\001\003\004\046\161"},
{0x012F, "\001\003\004\072\371\003"},
{0x0130, "\001\005\004\072\027\007\025"},
{0x0131, "\001\003\004\072\232\027"},
- {0x0132, "\371\054\372\155\005\372\102\373\234"},
- {0x0133, "\371\054\372\155\003\372\102\373\234"},
+ {0x0132, "\371\055\372\155\005\372\102\373\235"},
+ {0x0133, "\371\055\372\155\003\372\102\373\235"},
{0x0134, "\001\005\004\344\026\117"},
{0x0135, "\001\003\004\344\026\117"},
{0x0136, "\001\005\004\301\246"},
{0x0137, "\001\003\004\301\246"},
- {0x0138, "\001\003\004\376\034"},
+ {0x0138, "\001\003\004\376\035"},
{0x0139, "\001\005\004\167\026\102"},
{0x013A, "\001\003\004\167\026\102"},
{0x013B, "\001\005\004\167\246"},
{0x013C, "\001\003\004\167\246"},
{0x013D, "\001\005\004\167\172"},
{0x013E, "\001\003\004\167\172"},
- {0x013F, "\001\005\004\167\027\371\037"},
- {0x0140, "\001\003\004\167\027\371\037"},
+ {0x013F, "\001\005\004\167\027\371\040"},
+ {0x0140, "\001\003\004\167\027\371\040"},
{0x0141, "\001\005\004\167\175"},
{0x0142, "\001\003\004\167\175"},
{0x0143, "\001\005\004\213\026\102"},
{0x0146, "\001\003\004\213\246"},
{0x0147, "\001\005\004\213\172"},
{0x0148, "\001\003\004\213\172"},
- {0x0149, "\001\003\004\213\376\356\373\113\371\215"},
+ {0x0149, "\001\003\004\213\376\357\373\114\371\216"},
{0x014A, "\001\005\004\372\060"},
{0x014B, "\001\003\004\372\060"},
{0x014C, "\001\005\004\050\161"},
{0x014F, "\001\003\004\050\160"},
{0x0150, "\001\005\004\050\051\026\102"},
{0x0151, "\001\003\004\050\051\026\102"},
- {0x0152, "\371\054\372\155\005\372\102\371\040"},
- {0x0153, "\371\054\372\155\003\372\102\371\040"},
+ {0x0152, "\371\055\372\155\005\372\102\371\041"},
+ {0x0153, "\371\055\372\155\003\372\102\371\041"},
{0x0154, "\001\005\004\150\026\102"},
{0x0155, "\001\003\004\150\026\102"},
{0x0156, "\001\005\004\150\246"},
{0x0183, "\001\003\004\275\372\133"},
{0x0184, "\001\005\004\372\154\272"},
{0x0185, "\001\003\004\372\154\272"},
- {0x0186, "\001\005\004\050\371\306"},
+ {0x0186, "\001\005\004\050\371\307"},
{0x0187, "\001\005\004\241\254"},
{0x0188, "\001\003\004\241\254"},
- {0x0189, "\001\005\004\225\374\273"},
+ {0x0189, "\001\005\004\225\374\274"},
{0x018A, "\001\005\004\225\254"},
{0x018B, "\001\005\004\225\372\133"},
{0x018C, "\001\003\004\225\372\133"},
- {0x018D, "\001\003\004\371\267\371\343"},
+ {0x018D, "\001\003\004\371\270\371\344"},
{0x018E, "\001\005\004\060\336"},
- {0x018F, "\001\005\004\371\246"},
- {0x0190, "\001\005\004\060\371\306"},
+ {0x018F, "\001\005\004\371\247"},
+ {0x0190, "\001\005\004\060\371\307"},
{0x0191, "\001\005\004\355\342"},
{0x0192, "\001\003\004\355\342"},
{0x0193, "\001\005\004\227\254"},
- {0x0194, "\001\005\004\371\273"},
- {0x0195, "\001\003\004\375\325"},
+ {0x0194, "\001\005\004\371\274"},
+ {0x0195, "\001\003\004\375\326"},
{0x0196, "\001\005\004\055"},
{0x0197, "\001\005\004\072\175"},
{0x0198, "\001\005\004\301\254"},
{0x0199, "\001\003\004\301\254"},
- {0x019A, "\001\003\004\167\376\376"},
+ {0x019A, "\001\003\004\167\376\377"},
{0x019B, "\001\003\004\372\077\175"},
{0x019C, "\001\005\004\256\260"},
{0x019D, "\001\005\004\213\342"},
{0x019E, "\001\003\004\213\040\372\306\320\173"},
- {0x019F, "\001\005\004\050\143\371\037"},
+ {0x019F, "\001\005\004\050\143\371\040"},
{0x01A0, "\001\005\004\050\253"},
{0x01A1, "\001\003\004\050\253"},
- {0x01A2, "\001\005\004\373\343"},
- {0x01A3, "\001\003\004\373\343"},
+ {0x01A2, "\001\005\004\373\344"},
+ {0x01A3, "\001\003\004\373\344"},
{0x01A4, "\001\005\004\351\254"},
{0x01A5, "\001\003\004\351\254"},
- {0x01A6, "\001\004\377\315"},
- {0x01A7, "\001\005\004\373\127\272"},
- {0x01A8, "\001\003\004\373\127\272"},
+ {0x01A6, "\001\004\377\316"},
+ {0x01A7, "\001\005\004\373\130\272"},
+ {0x01A8, "\001\003\004\373\130\272"},
{0x01A9, "\001\005\004\372\201"},
- {0x01AA, "\001\004\372\201\336\371\220"},
+ {0x01AA, "\001\004\372\201\336\371\221"},
{0x01AB, "\001\003\004\236\342\372\322"},
{0x01AC, "\001\005\004\236\254"},
{0x01AD, "\001\003\004\236\254"},
- {0x01AE, "\001\005\004\236\342\371\066"},
+ {0x01AE, "\001\005\004\236\342\371\067"},
{0x01AF, "\001\005\004\107\253"},
{0x01B0, "\001\003\004\107\253"},
{0x01B1, "\001\005\004\214"},
{0x01B4, "\001\003\004\240\254"},
{0x01B5, "\001\005\004\243\175"},
{0x01B6, "\001\003\004\243\175"},
- {0x01B7, "\001\005\004\371\142"},
- {0x01B8, "\001\005\004\371\142\336"},
- {0x01B9, "\001\003\004\371\142\336"},
- {0x01BA, "\001\003\004\371\142\342"},
+ {0x01B7, "\001\005\004\371\143"},
+ {0x01B8, "\001\005\004\371\143\336"},
+ {0x01B9, "\001\003\004\371\143\336"},
+ {0x01BA, "\001\003\004\371\143\342"},
{0x01BB, "\001\004\154\175"},
{0x01BC, "\001\005\004\372\217\272"},
{0x01BD, "\001\003\004\372\217\272"},
- {0x01BE, "\001\004\371\075\012\371\101\175\371\016"},
- {0x01BF, "\001\004\377\274"},
- {0x01C0, "\001\004\371\342\375\132"},
- {0x01C1, "\001\004\371\342\376\050"},
- {0x01C2, "\001\004\371\342\374\303"},
- {0x01C3, "\001\004\371\342\371\066"},
- {0x01C4, "\001\005\004\371\271\172"},
+ {0x01BE, "\001\004\371\076\012\371\102\175\371\016"},
+ {0x01BF, "\001\004\377\275"},
+ {0x01C0, "\001\004\371\343\375\133"},
+ {0x01C1, "\001\004\371\343\376\051"},
+ {0x01C2, "\001\004\371\343\374\304"},
+ {0x01C3, "\001\004\371\343\371\067"},
+ {0x01C4, "\001\005\004\371\272\172"},
{0x01C5, "\001\005\004\225\130\001\003\243\172"},
- {0x01C6, "\001\003\004\371\271\172"},
- {0x01C7, "\001\005\004\373\267"},
+ {0x01C6, "\001\003\004\371\272\172"},
+ {0x01C7, "\001\005\004\373\270"},
{0x01C8, "\001\005\004\167\130\001\003\344"},
- {0x01C9, "\001\003\004\373\267"},
- {0x01CA, "\001\005\004\373\320"},
+ {0x01C9, "\001\003\004\373\270"},
+ {0x01CA, "\001\005\004\373\321"},
{0x01CB, "\001\005\004\213\130\001\003\344"},
- {0x01CC, "\001\003\004\373\320"},
+ {0x01CC, "\001\003\004\373\321"},
{0x01CD, "\001\005\004\046\172"},
{0x01CE, "\001\003\004\046\172"},
{0x01CF, "\001\005\004\072\172"},
{0x01EB, "\001\003\004\050\371\003"},
{0x01EC, "\001\005\004\050\371\003\011\161"},
{0x01ED, "\001\003\004\050\371\003\011\161"},
- {0x01EE, "\001\005\004\371\142\172"},
- {0x01EF, "\001\003\004\371\142\172"},
+ {0x01EE, "\001\005\004\371\143\172"},
+ {0x01EF, "\001\003\004\371\143\172"},
{0x01F0, "\001\003\004\344\172"},
- {0x01F1, "\001\005\004\371\271"},
+ {0x01F1, "\001\005\004\371\272"},
{0x01F2, "\001\005\004\225\130\001\003\243"},
- {0x01F3, "\001\003\004\371\271"},
+ {0x01F3, "\001\003\004\371\272"},
{0x01F4, "\001\005\004\227\026\102"},
{0x01F5, "\001\003\004\227\026\102"},
{0x01FA, "\001\005\004\046\231\007\025\011\026\102"},
{0x0251, "\001\003\004\152"},
{0x0252, "\001\003\004\152\260"},
{0x0253, "\001\003\004\275\254"},
- {0x0254, "\001\003\004\050\371\306"},
- {0x0255, "\001\003\004\241\371\220"},
- {0x0256, "\001\003\004\225\342\371\066"},
+ {0x0254, "\001\003\004\050\371\307"},
+ {0x0255, "\001\003\004\241\371\221"},
+ {0x0256, "\001\003\004\225\342\371\067"},
{0x0257, "\001\003\004\225\254"},
{0x0258, "\001\003\004\060\336"},
- {0x0259, "\001\003\004\371\246"},
- {0x025A, "\001\003\004\371\246\100"},
+ {0x0259, "\001\003\004\371\247"},
+ {0x025A, "\001\003\004\371\247\100"},
{0x025B, "\001\003\004\247"},
{0x025C, "\001\003\004\247\336"},
{0x025D, "\001\003\004\247\336\100"},
{0x025E, "\001\003\004\247\336\372\252"},
{0x025F, "\001\003\004\344\232\027\175"},
{0x0260, "\001\003\004\227\254"},
- {0x0261, "\001\003\004\227\375\100"},
- {0x0262, "\001\004\371\032\005\227"},
- {0x0263, "\001\003\004\371\273"},
- {0x0264, "\001\003\004\144\371\273"},
+ {0x0261, "\001\003\004\227\375\101"},
+ {0x0262, "\001\004\371\033\005\227"},
+ {0x0263, "\001\003\004\371\274"},
+ {0x0264, "\001\003\004\144\371\274"},
{0x0265, "\001\003\004\230\260"},
{0x0266, "\001\003\004\230\254"},
{0x0267, "\001\003\004\372\060\254"},
{0x0268, "\001\003\004\072\175"},
{0x0269, "\001\003\004\055"},
- {0x026A, "\001\004\371\032\005\072"},
- {0x026B, "\001\003\004\167\143\371\037"},
- {0x026C, "\001\003\004\167\377\050"},
- {0x026D, "\001\003\004\167\342\371\066"},
- {0x026E, "\001\003\004\376\052"},
+ {0x026A, "\001\004\371\033\005\072"},
+ {0x026B, "\001\003\004\167\143\371\040"},
+ {0x026C, "\001\003\004\167\377\051"},
+ {0x026D, "\001\003\004\167\342\371\067"},
+ {0x026E, "\001\003\004\376\053"},
{0x026F, "\001\003\004\256\260"},
{0x0270, "\001\003\004\256\372\260\260"},
{0x0271, "\001\003\004\256\342\372\322"},
{0x0272, "\001\003\004\213\342\040\042"},
- {0x0273, "\001\003\004\213\342\371\066"},
- {0x0274, "\001\004\371\032\005\213"},
+ {0x0273, "\001\003\004\213\342\371\067"},
+ {0x0274, "\001\004\371\033\005\213"},
{0x0275, "\001\003\004\050\175"},
- {0x0276, "\001\004\371\032\005\371\040"},
+ {0x0276, "\001\004\371\033\005\371\041"},
{0x0277, "\001\003\004\147\372\252"},
{0x0278, "\001\003\004\372\123"},
{0x0279, "\001\003\004\150\260"},
{0x027A, "\001\003\004\150\372\134\260"},
{0x027B, "\001\003\004\150\254\260"},
{0x027C, "\001\003\004\150\372\134"},
- {0x027D, "\001\003\004\150\342\371\066"},
+ {0x027D, "\001\003\004\150\342\371\067"},
{0x027E, "\001\003\004\150\232\372\257"},
{0x027F, "\001\003\004\150\232\372\257\336"},
- {0x0280, "\001\004\371\032\005\150"},
- {0x0281, "\001\004\371\032\005\150\371\016"},
- {0x0282, "\001\003\004\207\342\371\066"},
- {0x0283, "\001\003\004\375\204"},
+ {0x0280, "\001\004\371\033\005\150"},
+ {0x0281, "\001\004\371\033\005\150\371\016"},
+ {0x0282, "\001\003\004\207\342\371\067"},
+ {0x0283, "\001\003\004\375\205"},
{0x0284, "\001\003\004\344\232\027\175\254"},
- {0x0285, "\001\003\004\372\201\377\216\371\016"},
- {0x0286, "\001\003\004\372\201\371\220"},
+ {0x0285, "\001\003\004\372\201\377\217\371\016"},
+ {0x0286, "\001\003\004\372\201\371\221"},
{0x0287, "\001\003\004\236\260"},
- {0x0288, "\001\003\004\236\342\371\066"},
+ {0x0288, "\001\003\004\236\342\371\067"},
{0x0289, "\001\003\004\107\175"},
{0x028A, "\001\003\004\214"},
{0x028B, "\001\003\004\324\012\371\005"},
{0x028C, "\001\003\004\324\260"},
{0x028D, "\001\003\004\273\260"},
{0x028E, "\001\003\004\240\260"},
- {0x028F, "\001\004\371\032\005\240"},
- {0x0290, "\001\003\004\243\342\371\066"},
- {0x0291, "\001\003\004\243\371\220"},
- {0x0292, "\001\003\004\371\142"},
- {0x0293, "\001\003\004\371\142\371\220"},
- {0x0294, "\001\004\371\075\012\371\101"},
- {0x0295, "\001\004\371\075\012\371\101\336"},
- {0x0296, "\001\004\371\075\012\371\101\371\016"},
- {0x0297, "\001\004\241\377\334"},
- {0x0298, "\001\004\371\342\374\363"},
- {0x0299, "\001\004\371\032\005\275"},
+ {0x028F, "\001\004\371\033\005\240"},
+ {0x0290, "\001\003\004\243\342\371\067"},
+ {0x0291, "\001\003\004\243\371\221"},
+ {0x0292, "\001\003\004\371\143"},
+ {0x0293, "\001\003\004\371\143\371\221"},
+ {0x0294, "\001\004\371\076\012\371\102"},
+ {0x0295, "\001\004\371\076\012\371\102\336"},
+ {0x0296, "\001\004\371\076\012\371\102\371\016"},
+ {0x0297, "\001\004\241\377\335"},
+ {0x0298, "\001\004\371\343\374\364"},
+ {0x0299, "\001\004\371\033\005\275"},
{0x029A, "\001\003\004\247\372\252"},
- {0x029B, "\001\004\371\032\005\227\254"},
- {0x029C, "\001\004\371\032\005\230"},
- {0x029D, "\001\003\004\344\372\142\375\075"},
+ {0x029B, "\001\004\371\033\005\227\254"},
+ {0x029C, "\001\004\371\033\005\230"},
+ {0x029D, "\001\003\004\344\372\142\375\076"},
{0x029E, "\001\003\004\301\260"},
- {0x029F, "\001\004\371\032\005\167"},
- {0x02A0, "\001\003\004\371\065\254"},
- {0x02A1, "\001\004\371\075\012\371\101\175"},
- {0x02A2, "\001\004\371\075\012\371\101\175\336"},
- {0x02A3, "\001\003\004\371\054\371\271"},
- {0x02A4, "\001\003\004\371\054\375\124"},
- {0x02A5, "\001\003\004\371\054\371\271\371\220"},
- {0x02A6, "\001\003\004\371\054\377\227"},
- {0x02A7, "\001\003\004\371\054\377\231"},
- {0x02A8, "\001\003\004\371\054\377\146\371\220"},
+ {0x029F, "\001\004\371\033\005\167"},
+ {0x02A0, "\001\003\004\371\066\254"},
+ {0x02A1, "\001\004\371\076\012\371\102\175"},
+ {0x02A2, "\001\004\371\076\012\371\102\175\336"},
+ {0x02A3, "\001\003\004\371\055\371\272"},
+ {0x02A4, "\001\003\004\371\055\375\125"},
+ {0x02A5, "\001\003\004\371\055\371\272\371\221"},
+ {0x02A6, "\001\003\004\371\055\377\230"},
+ {0x02A7, "\001\003\004\371\055\377\232"},
+ {0x02A8, "\001\003\004\371\055\377\147\371\221"},
{0x02B0, "\001\157\003\230"},
{0x02B1, "\001\157\003\230\254"},
{0x02B2, "\001\157\003\344"},
{0x02B3, "\001\157\003\150"},
{0x02B4, "\001\157\003\150\260"},
{0x02B5, "\001\157\003\150\254\260"},
- {0x02B6, "\001\157\371\032\005\150\371\016"},
+ {0x02B6, "\001\157\371\033\005\150\371\016"},
{0x02B7, "\001\157\003\273"},
{0x02B8, "\001\157\003\240"},
- {0x02B9, "\001\157\371\064"},
- {0x02BA, "\001\157\377\057"},
- {0x02BB, "\001\157\331\371\343"},
- {0x02BC, "\001\157\371\215"},
- {0x02BD, "\001\157\331\374\032"},
- {0x02BE, "\001\157\373\123\040\037"},
- {0x02BF, "\001\157\373\123\040\042"},
- {0x02C0, "\001\157\371\075\012\371\101"},
- {0x02C1, "\001\157\371\075\012\371\101\336"},
+ {0x02B9, "\001\157\371\065"},
+ {0x02BA, "\001\157\377\060"},
+ {0x02BB, "\001\157\331\371\344"},
+ {0x02BC, "\001\157\371\216"},
+ {0x02BD, "\001\157\331\374\033"},
+ {0x02BE, "\001\157\373\124\040\037"},
+ {0x02BF, "\001\157\373\124\040\042"},
+ {0x02C0, "\001\157\371\076\012\371\102"},
+ {0x02C1, "\001\157\371\076\012\371\102\336"},
{0x02C2, "\001\157\302\012\043\013\022\042"},
{0x02C3, "\001\157\302\012\043\013\022\037"},
{0x02C4, "\001\157\302\012\043\013\035\065"},
{0x02CD, "\001\157\161\061"},
{0x02CE, "\001\157\026\151\061"},
{0x02CF, "\001\157\026\102\061"},
- {0x02D0, "\001\157\154\220\377\224"},
- {0x02D1, "\001\157\027\371\325"},
- {0x02D2, "\001\157\371\270\040\037\373\062"},
- {0x02D3, "\001\157\371\270\040\042\373\062"},
+ {0x02D0, "\001\157\154\220\377\225"},
+ {0x02D1, "\001\157\027\371\326"},
+ {0x02D2, "\001\157\371\271\040\037\373\063"},
+ {0x02D3, "\001\157\371\271\040\042\373\063"},
{0x02D4, "\001\157\307\065"},
{0x02D5, "\001\157\307\061"},
{0x02D6, "\001\157\134\162"},
- {0x02D7, "\001\157\134\371\036"},
+ {0x02D7, "\001\157\134\371\037"},
{0x02D8, "\160"},
{0x02D9, "\027\007\025"},
{0x02DA, "\231\007\025"},
{0x02DB, "\371\003"},
{0x02DC, "\144\143"},
{0x02DD, "\051\026\102"},
- {0x02DE, "\001\157\100\012\377\005"},
- {0x02E0, "\001\157\371\273\003"},
+ {0x02DE, "\001\157\100\012\377\006"},
+ {0x02E0, "\001\157\371\274\003"},
{0x02E1, "\001\157\167\003"},
{0x02E2, "\001\157\207\003"},
{0x02E3, "\001\157\310\003"},
- {0x02E4, "\001\157\371\075\012\371\101\336\003"},
- {0x02E5, "\001\157\210\012\272\374\107\065"},
+ {0x02E4, "\001\157\371\076\012\371\102\336\003"},
+ {0x02E5, "\001\157\210\012\272\374\110\065"},
{0x02E6, "\001\157\210\012\272\065"},
- {0x02E7, "\001\157\210\012\272\376\154"},
+ {0x02E7, "\001\157\210\012\272\376\155"},
{0x02E8, "\001\157\210\012\272\061"},
- {0x02E9, "\001\157\210\012\272\374\107\061"},
+ {0x02E9, "\001\157\210\012\272\374\110\061"},
{0x0300, "\023\026\151"},
{0x0301, "\023\026\102"},
{0x0302, "\023\026\117"},
{0x030D, "\023\212\224\007\025"},
{0x030E, "\023\051\212\224\007\025"},
{0x030F, "\023\051\026\151"},
- {0x0310, "\023\371\263"},
+ {0x0310, "\023\371\264"},
{0x0311, "\023\160\352"},
- {0x0312, "\023\331\371\343\007\025"},
+ {0x0312, "\023\331\371\344\007\025"},
{0x0313, "\023\331\007\025"},
- {0x0314, "\023\331\374\032\007\025"},
+ {0x0314, "\023\331\374\033\007\025"},
{0x0315, "\023\331\007\025\040\037"},
{0x0316, "\023\026\151\032"},
{0x0317, "\023\026\102\032"},
{0x0318, "\023\307\042\032"},
{0x0319, "\023\307\173\032"},
- {0x031A, "\023\371\262\042\007\025"},
+ {0x031A, "\023\371\263\042\007\025"},
{0x031B, "\023\253"},
- {0x031C, "\023\371\270\042\032"},
+ {0x031C, "\023\371\271\042\032"},
{0x031D, "\023\307\065\032"},
{0x031E, "\023\307\061\032"},
{0x031F, "\023\134\162\032"},
- {0x0320, "\023\134\371\036\032"},
+ {0x0320, "\023\134\371\037\032"},
{0x0321, "\023\342\372\322\032"},
- {0x0322, "\023\342\371\066\032"},
+ {0x0322, "\023\342\371\067\032"},
{0x0323, "\023\027\032"},
{0x0324, "\023\141\032"},
{0x0325, "\023\231\032"},
{0x0327, "\023\246"},
{0x0328, "\023\371\003"},
{0x0329, "\023\212\224\271"},
- {0x032A, "\023\373\374\032"},
+ {0x032A, "\023\373\375\032"},
{0x032B, "\023\147\032"},
{0x032C, "\023\172\032"},
{0x032D, "\023\026\117\032"},
{0x0332, "\023\264\032"},
{0x0333, "\023\051\264\032"},
{0x0334, "\023\143\372\050"},
- {0x0335, "\023\210\372\225\371\266"},
- {0x0336, "\023\210\372\103\371\266"},
- {0x0337, "\023\210\361\372\225\371\266"},
- {0x0338, "\023\210\361\372\103\371\266"},
- {0x0339, "\023\371\270\040\037\032"},
- {0x033A, "\023\373\374\371\016\032"},
+ {0x0335, "\023\210\372\225\371\267"},
+ {0x0336, "\023\210\372\103\371\267"},
+ {0x0337, "\023\210\361\372\225\371\267"},
+ {0x0338, "\023\210\361\372\103\371\267"},
+ {0x0339, "\023\371\271\040\037\032"},
+ {0x033A, "\023\373\375\371\016\032"},
{0x033B, "\023\021\032"},
- {0x033C, "\023\376\153\271"},
+ {0x033C, "\023\376\154\271"},
{0x033D, "\023\310\007\025"},
{0x033E, "\023\143\145"},
{0x033F, "\023\051\264\007\025"},
{0x0340, "\023\153\012\272\151"},
{0x0341, "\023\153\012\272\102"},
{0x0342, "\023\277\165"},
- {0x0343, "\023\277\373\100"},
+ {0x0343, "\023\277\373\101"},
{0x0344, "\023\277\341\330"},
{0x0345, "\023\277\055\032"},
{0x0360, "\023\051\143"},
{0x0361, "\023\051\160\352"},
- {0x0374, "\134\373\326\277"},
- {0x0375, "\134\373\326\032\277"},
+ {0x0374, "\134\373\327\277"},
+ {0x0375, "\134\373\327\032\277"},
{0x037A, "\074\277\055\032"},
- {0x037E, "\027\371\224\277"},
+ {0x037E, "\027\371\225\277"},
{0x0384, "\074\277\330"},
{0x0385, "\074\277\341\330"},
{0x0386, "\001\005\014\152\330"},
- {0x0387, "\074\277\374\311\377\173"},
+ {0x0387, "\074\277\374\312\377\174"},
{0x0388, "\001\005\014\247\330"},
{0x0389, "\001\005\014\166\330"},
{0x038A, "\001\005\014\055\330"},
{0x0390, "\001\003\014\055\341\011\330"},
{0x0391, "\001\005\014\152"},
{0x0392, "\001\005\014\372\211"},
- {0x0393, "\001\005\014\371\273"},
- {0x0394, "\001\005\014\371\267"},
+ {0x0393, "\001\005\014\371\274"},
+ {0x0394, "\001\005\014\371\270"},
{0x0395, "\001\005\014\247"},
- {0x0396, "\001\005\014\373\141"},
+ {0x0396, "\001\005\014\373\142"},
{0x0397, "\001\005\014\166"},
{0x0398, "\001\005\014\372\371"},
{0x0399, "\001\005\014\055"},
{0x039A, "\001\005\014\372\274"},
{0x039B, "\001\005\014\372\077"},
{0x039C, "\001\005\014\371\001"},
- {0x039D, "\001\005\014\371\304"},
- {0x039E, "\001\005\014\374\131"},
+ {0x039D, "\001\005\014\371\305"},
+ {0x039E, "\001\005\014\374\132"},
{0x039F, "\001\005\014\321"},
- {0x03A0, "\001\005\014\371\307"},
- {0x03A1, "\001\005\014\371\170"},
+ {0x03A0, "\001\005\014\371\310"},
+ {0x03A1, "\001\005\014\371\171"},
{0x03A3, "\001\005\014\372\153"},
- {0x03A4, "\001\005\014\374\072"},
+ {0x03A4, "\001\005\014\374\073"},
{0x03A5, "\001\005\014\214"},
{0x03A6, "\001\005\014\372\123"},
{0x03A7, "\001\005\014\372\301"},
{0x03B0, "\001\003\014\214\341\011\330"},
{0x03B1, "\001\003\014\152"},
{0x03B2, "\001\003\014\372\211"},
- {0x03B3, "\001\003\014\371\273"},
- {0x03B4, "\001\003\014\371\267"},
+ {0x03B3, "\001\003\014\371\274"},
+ {0x03B4, "\001\003\014\371\270"},
{0x03B5, "\001\003\014\247"},
- {0x03B6, "\001\003\014\373\141"},
+ {0x03B6, "\001\003\014\373\142"},
{0x03B7, "\001\003\014\166"},
{0x03B8, "\001\003\014\372\371"},
{0x03B9, "\001\003\014\055"},
{0x03BA, "\001\003\014\372\274"},
{0x03BB, "\001\003\014\372\077"},
{0x03BC, "\001\003\014\371\001"},
- {0x03BD, "\001\003\014\371\304"},
- {0x03BE, "\001\003\014\374\131"},
+ {0x03BD, "\001\003\014\371\305"},
+ {0x03BE, "\001\003\014\374\132"},
{0x03BF, "\001\003\014\321"},
- {0x03C0, "\001\003\014\371\307"},
- {0x03C1, "\001\003\014\371\170"},
+ {0x03C0, "\001\003\014\371\310"},
+ {0x03C1, "\001\003\014\371\171"},
{0x03C2, "\001\003\014\372\153\016"},
{0x03C3, "\001\003\014\372\153"},
- {0x03C4, "\001\003\014\374\072"},
+ {0x03C4, "\001\003\014\374\073"},
{0x03C5, "\001\003\014\214"},
{0x03C6, "\001\003\014\372\123"},
{0x03C7, "\001\003\014\372\301"},
{0x03D3, "\015\277\214\026\102\011\100"},
{0x03D4, "\015\277\214\141\011\100"},
{0x03D5, "\015\277\372\123"},
- {0x03D6, "\015\277\371\307"},
- {0x03DA, "\001\014\377\124"},
- {0x03DC, "\001\014\375\143"},
+ {0x03D6, "\015\277\371\310"},
+ {0x03DA, "\001\014\377\125"},
+ {0x03DC, "\001\014\375\144"},
{0x03DE, "\001\014\372\303"},
- {0x03E0, "\001\014\377\047"},
- {0x03E2, "\001\005\366\374\036\372\203"},
- {0x03E3, "\001\003\366\374\036"},
- {0x03E4, "\001\005\366\373\160"},
- {0x03E5, "\001\003\366\373\160"},
- {0x03E6, "\001\005\366\373\252"},
- {0x03E7, "\001\003\366\373\252"},
- {0x03E8, "\001\005\366\373\226"},
- {0x03E9, "\001\003\366\373\226"},
- {0x03EA, "\001\005\366\373\211\372\203"},
- {0x03EB, "\001\003\366\373\211"},
- {0x03EC, "\001\005\366\374\037\372\203"},
- {0x03ED, "\001\003\366\374\037"},
- {0x03EE, "\001\005\366\373\121"},
- {0x03EF, "\001\003\366\373\121"},
+ {0x03E0, "\001\014\377\050"},
+ {0x03E2, "\001\005\366\374\037\372\203"},
+ {0x03E3, "\001\003\366\374\037"},
+ {0x03E4, "\001\005\366\373\161"},
+ {0x03E5, "\001\003\366\373\161"},
+ {0x03E6, "\001\005\366\373\253"},
+ {0x03E7, "\001\003\366\373\253"},
+ {0x03E8, "\001\005\366\373\227"},
+ {0x03E9, "\001\003\366\373\227"},
+ {0x03EA, "\001\005\366\373\212\372\203"},
+ {0x03EB, "\001\003\366\373\212"},
+ {0x03EC, "\001\005\366\374\040\372\203"},
+ {0x03ED, "\001\003\366\374\040"},
+ {0x03EE, "\001\005\366\373\122"},
+ {0x03EF, "\001\003\366\373\122"},
{0x03F0, "\015\277\372\274"},
- {0x03F1, "\015\277\371\170"},
- {0x03F2, "\015\277\376\067\372\153"},
- {0x03F3, "\001\014\377\310"},
- {0x0401, "\001\005\024\373\240"},
+ {0x03F1, "\015\277\371\171"},
+ {0x03F2, "\015\277\376\070\372\153"},
+ {0x03F3, "\001\014\377\311"},
+ {0x0401, "\001\005\024\373\241"},
{0x0402, "\001\005\024\372\056\372\151"},
- {0x0403, "\001\005\024\373\213"},
- {0x0404, "\001\005\024\375\336\374\110"},
+ {0x0403, "\001\005\024\373\214"},
+ {0x0404, "\001\005\024\375\337\374\111"},
{0x0405, "\001\005\024\372\057"},
- {0x0406, "\001\005\024\072\373\052"},
+ {0x0406, "\001\005\024\072\373\053"},
{0x0407, "\001\005\024\372\174"},
{0x0408, "\001\005\024\372\056"},
- {0x0409, "\001\005\024\376\051"},
- {0x040A, "\001\005\024\376\175"},
+ {0x0409, "\001\005\024\376\052"},
+ {0x040A, "\001\005\024\376\176"},
{0x040B, "\001\005\024\353\372\151"},
- {0x040C, "\001\005\024\373\255"},
- {0x040E, "\001\005\024\114\371\127\373\051"},
- {0x040F, "\001\005\024\373\120"},
+ {0x040C, "\001\005\024\373\256"},
+ {0x040E, "\001\005\024\114\371\130\373\052"},
+ {0x040F, "\001\005\024\373\121"},
{0x0410, "\001\005\024\046"},
- {0x0411, "\001\005\024\373\055"},
- {0x0412, "\001\005\024\374\125"},
- {0x0413, "\001\005\024\371\057"},
- {0x0414, "\001\005\024\373\142"},
- {0x0415, "\001\005\024\371\234"},
- {0x0416, "\001\005\024\371\152"},
- {0x0417, "\001\005\024\371\332"},
+ {0x0411, "\001\005\024\373\056"},
+ {0x0412, "\001\005\024\374\126"},
+ {0x0413, "\001\005\024\371\060"},
+ {0x0414, "\001\005\024\373\143"},
+ {0x0415, "\001\005\024\371\235"},
+ {0x0416, "\001\005\024\371\153"},
+ {0x0417, "\001\005\024\371\333"},
{0x0418, "\001\005\024\072"},
- {0x0419, "\001\005\024\072\371\127"},
+ {0x0419, "\001\005\024\072\371\130"},
{0x041A, "\001\005\024\244"},
- {0x041B, "\001\005\024\373\147"},
- {0x041C, "\001\005\024\373\150"},
- {0x041D, "\001\005\024\371\143"},
+ {0x041B, "\001\005\024\373\150"},
+ {0x041C, "\001\005\024\373\151"},
+ {0x041D, "\001\005\024\371\144"},
{0x041E, "\001\005\024\050"},
{0x041F, "\001\005\024\372\137"},
- {0x0420, "\001\005\024\373\154"},
- {0x0421, "\001\005\024\371\357"},
- {0x0422, "\001\005\024\371\326"},
+ {0x0420, "\001\005\024\373\155"},
+ {0x0421, "\001\005\024\371\360"},
+ {0x0422, "\001\005\024\371\327"},
{0x0423, "\001\005\024\114"},
- {0x0424, "\001\005\024\373\145"},
- {0x0425, "\001\005\024\371\061"},
+ {0x0424, "\001\005\024\373\146"},
+ {0x0425, "\001\005\024\371\062"},
{0x0426, "\001\005\024\372\167"},
{0x0427, "\001\005\024\353"},
{0x0428, "\001\005\024\371\020"},
- {0x0429, "\001\005\024\373\070"},
+ {0x0429, "\001\005\024\373\071"},
{0x042A, "\134\005\024\372\246"},
{0x042B, "\001\005\024\372\176"},
- {0x042C, "\134\005\024\012\373\305\012\373\075"},
- {0x042D, "\001\005\024\371\257"},
- {0x042E, "\001\005\024\373\241"},
- {0x042F, "\001\005\024\373\231"},
+ {0x042C, "\134\005\024\012\373\306\012\373\076"},
+ {0x042D, "\001\005\024\371\260"},
+ {0x042E, "\001\005\024\373\242"},
+ {0x042F, "\001\005\024\373\232"},
{0x0430, "\001\003\024\046"},
- {0x0431, "\001\003\024\373\055"},
- {0x0432, "\001\003\024\374\125"},
- {0x0433, "\001\003\024\371\057"},
- {0x0434, "\001\003\024\373\142"},
- {0x0435, "\001\003\024\371\234"},
- {0x0436, "\001\003\024\371\152"},
- {0x0437, "\001\003\024\371\332"},
+ {0x0431, "\001\003\024\373\056"},
+ {0x0432, "\001\003\024\374\126"},
+ {0x0433, "\001\003\024\371\060"},
+ {0x0434, "\001\003\024\373\143"},
+ {0x0435, "\001\003\024\371\235"},
+ {0x0436, "\001\003\024\371\153"},
+ {0x0437, "\001\003\024\371\333"},
{0x0438, "\001\003\024\072"},
- {0x0439, "\001\003\024\072\371\127"},
+ {0x0439, "\001\003\024\072\371\130"},
{0x043A, "\001\003\024\244"},
- {0x043B, "\001\003\024\373\147"},
- {0x043C, "\001\003\024\373\150"},
- {0x043D, "\001\003\024\371\143"},
+ {0x043B, "\001\003\024\373\150"},
+ {0x043C, "\001\003\024\373\151"},
+ {0x043D, "\001\003\024\371\144"},
{0x043E, "\001\003\024\050"},
{0x043F, "\001\003\024\372\137"},
- {0x0440, "\001\003\024\373\154"},
- {0x0441, "\001\003\024\371\357"},
- {0x0442, "\001\003\024\371\326"},
+ {0x0440, "\001\003\024\373\155"},
+ {0x0441, "\001\003\024\371\360"},
+ {0x0442, "\001\003\024\371\327"},
{0x0443, "\001\003\024\114"},
- {0x0444, "\001\003\024\373\145"},
- {0x0445, "\001\003\024\371\061"},
+ {0x0444, "\001\003\024\373\146"},
+ {0x0445, "\001\003\024\371\062"},
{0x0446, "\001\003\024\372\167"},
{0x0447, "\001\003\024\353"},
{0x0448, "\001\003\024\371\020"},
- {0x0449, "\001\003\024\373\070"},
+ {0x0449, "\001\003\024\373\071"},
{0x044A, "\134\003\024\372\246"},
{0x044B, "\001\003\024\372\176"},
- {0x044C, "\134\003\024\012\373\305\012\373\075"},
- {0x044D, "\001\003\024\371\257"},
- {0x044E, "\001\003\024\373\241"},
- {0x044F, "\001\003\024\373\231"},
- {0x0451, "\001\003\024\373\240"},
+ {0x044C, "\134\003\024\012\373\306\012\373\076"},
+ {0x044D, "\001\003\024\371\260"},
+ {0x044E, "\001\003\024\373\242"},
+ {0x044F, "\001\003\024\373\232"},
+ {0x0451, "\001\003\024\373\241"},
{0x0452, "\001\003\024\372\056\372\151"},
- {0x0453, "\001\003\024\373\213"},
- {0x0454, "\001\003\024\371\234\374\110"},
+ {0x0453, "\001\003\024\373\214"},
+ {0x0454, "\001\003\024\371\235\374\111"},
{0x0455, "\001\003\024\372\057"},
- {0x0456, "\001\003\024\072\373\052"},
+ {0x0456, "\001\003\024\072\373\053"},
{0x0457, "\001\003\024\372\174"},
{0x0458, "\001\003\024\372\056"},
- {0x0459, "\001\003\024\376\060"},
- {0x045A, "\001\003\024\376\206"},
+ {0x0459, "\001\003\024\376\061"},
+ {0x045A, "\001\003\024\376\207"},
{0x045B, "\001\003\024\353\372\151"},
- {0x045C, "\001\003\024\373\255"},
- {0x045E, "\001\003\024\114\371\127\373\051"},
- {0x045F, "\001\003\024\373\120"},
+ {0x045C, "\001\003\024\373\256"},
+ {0x045E, "\001\003\024\114\371\130\373\052"},
+ {0x045F, "\001\003\024\373\121"},
{0x0460, "\001\005\024\147"},
{0x0461, "\001\003\024\147"},
- {0x0462, "\001\005\024\374\132"},
- {0x0463, "\001\003\024\374\132"},
- {0x0464, "\001\005\024\371\257\371\275"},
- {0x0465, "\001\003\024\371\257\371\275"},
- {0x0466, "\001\005\024\144\371\210"},
- {0x0467, "\001\003\024\144\371\210"},
- {0x0468, "\001\005\024\144\371\210\371\275"},
- {0x0469, "\001\003\024\144\371\210\371\275"},
- {0x046A, "\001\005\024\262\371\210"},
- {0x046B, "\001\003\024\262\371\210"},
- {0x046C, "\001\005\024\262\371\210\371\275"},
- {0x046D, "\001\003\024\262\371\210\371\275"},
- {0x046E, "\001\005\024\373\256"},
- {0x046F, "\001\003\024\373\256"},
+ {0x0462, "\001\005\024\374\133"},
+ {0x0463, "\001\003\024\374\133"},
+ {0x0464, "\001\005\024\371\260\371\276"},
+ {0x0465, "\001\003\024\371\260\371\276"},
+ {0x0466, "\001\005\024\144\371\211"},
+ {0x0467, "\001\003\024\144\371\211"},
+ {0x0468, "\001\005\024\144\371\211\371\276"},
+ {0x0469, "\001\003\024\144\371\211\371\276"},
+ {0x046A, "\001\005\024\262\371\211"},
+ {0x046B, "\001\003\024\262\371\211"},
+ {0x046C, "\001\005\024\262\371\211\371\276"},
+ {0x046D, "\001\003\024\262\371\211\371\276"},
+ {0x046E, "\001\005\024\373\257"},
+ {0x046F, "\001\003\024\373\257"},
{0x0470, "\001\005\024\372\135"},
{0x0471, "\001\003\024\372\135"},
- {0x0472, "\001\005\024\373\166"},
- {0x0473, "\001\003\024\373\166"},
+ {0x0472, "\001\005\024\373\167"},
+ {0x0473, "\001\003\024\373\167"},
{0x0474, "\001\005\024\372\071"},
{0x0475, "\001\003\024\372\071"},
{0x0476, "\001\005\024\372\071\051\026\151"},
{0x0477, "\001\003\024\372\071\051\026\151"},
- {0x0478, "\001\005\024\373\342"},
- {0x0479, "\001\003\024\373\342"},
+ {0x0478, "\001\005\024\373\343"},
+ {0x0479, "\001\003\024\373\343"},
{0x047A, "\001\005\024\147\231"},
{0x047B, "\001\003\024\147\231"},
{0x047C, "\001\005\024\147\372\373"},
{0x047D, "\001\003\024\147\372\373"},
- {0x047E, "\001\005\024\373\341"},
- {0x047F, "\001\003\024\373\341"},
+ {0x047E, "\001\005\024\373\342"},
+ {0x047F, "\001\003\024\373\342"},
{0x0480, "\001\005\024\372\303"},
{0x0481, "\001\003\024\372\303"},
- {0x0482, "\134\024\373\276"},
+ {0x0482, "\134\024\373\277"},
{0x0483, "\023\024\372\373"},
- {0x0484, "\023\024\012\376\265"},
- {0x0485, "\023\024\101\373\372"},
- {0x0486, "\023\024\115\373\372"},
- {0x0490, "\001\005\024\371\057\372\260"},
- {0x0491, "\001\003\024\371\057\372\260"},
- {0x0492, "\001\005\024\371\057\175"},
- {0x0493, "\001\003\024\371\057\175"},
- {0x0494, "\001\005\024\371\057\100\371\037"},
- {0x0495, "\001\003\024\371\057\100\371\037"},
- {0x0496, "\001\005\024\371\152\320"},
- {0x0497, "\001\003\024\371\152\320"},
- {0x0498, "\001\005\024\371\332\320"},
- {0x0499, "\001\003\024\371\332\320"},
+ {0x0484, "\023\024\012\376\266"},
+ {0x0485, "\023\024\101\373\373"},
+ {0x0486, "\023\024\115\373\373"},
+ {0x0490, "\001\005\024\371\060\372\260"},
+ {0x0491, "\001\003\024\371\060\372\260"},
+ {0x0492, "\001\005\024\371\060\175"},
+ {0x0493, "\001\003\024\371\060\175"},
+ {0x0494, "\001\005\024\371\060\100\371\040"},
+ {0x0495, "\001\003\024\371\060\100\371\040"},
+ {0x0496, "\001\005\024\371\153\320"},
+ {0x0497, "\001\003\024\371\153\320"},
+ {0x0498, "\001\005\024\371\333\320"},
+ {0x0499, "\001\003\024\371\333\320"},
{0x049A, "\001\005\024\244\320"},
{0x049B, "\001\003\024\244\320"},
{0x049C, "\001\005\024\244\210\224"},
{0x049D, "\001\003\024\244\210\224"},
{0x049E, "\001\005\024\244\175"},
{0x049F, "\001\003\024\244\175"},
- {0x04A0, "\001\005\024\244\373\043"},
- {0x04A1, "\001\003\024\244\373\043"},
- {0x04A2, "\001\005\024\371\143\320"},
- {0x04A3, "\001\003\024\371\143\320"},
- {0x04A4, "\006\024\005\371\143\371\057"},
- {0x04A5, "\006\024\003\371\143\371\057"},
- {0x04A6, "\001\005\024\372\137\100\371\037"},
- {0x04A7, "\001\003\024\372\137\100\371\037"},
- {0x04A8, "\001\005\024\333\371\125"},
- {0x04A9, "\001\003\024\333\371\125"},
- {0x04AA, "\001\005\024\371\357\320"},
- {0x04AB, "\001\003\024\371\357\320"},
- {0x04AC, "\001\005\024\371\326\320"},
- {0x04AD, "\001\003\024\371\326\320"},
+ {0x04A0, "\001\005\024\244\373\044"},
+ {0x04A1, "\001\003\024\244\373\044"},
+ {0x04A2, "\001\005\024\371\144\320"},
+ {0x04A3, "\001\003\024\371\144\320"},
+ {0x04A4, "\006\024\005\371\144\371\060"},
+ {0x04A5, "\006\024\003\371\144\371\060"},
+ {0x04A6, "\001\005\024\372\137\100\371\040"},
+ {0x04A7, "\001\003\024\372\137\100\371\040"},
+ {0x04A8, "\001\005\024\333\371\126"},
+ {0x04A9, "\001\003\024\333\371\126"},
+ {0x04AA, "\001\005\024\371\360\320"},
+ {0x04AB, "\001\003\024\371\360\320"},
+ {0x04AC, "\001\005\024\371\327\320"},
+ {0x04AD, "\001\003\024\371\327\320"},
{0x04AE, "\001\005\024\114\173"},
{0x04AF, "\001\003\024\114\173"},
{0x04B0, "\001\005\024\114\173\175"},
{0x04B1, "\001\003\024\114\173\175"},
{0x04B2, "\001\005\024\333\320"},
{0x04B3, "\001\003\024\333\320"},
- {0x04B4, "\006\005\024\371\326\372\167"},
- {0x04B5, "\006\003\024\371\326\372\167"},
+ {0x04B4, "\006\005\024\371\327\372\167"},
+ {0x04B5, "\006\003\024\371\327\372\167"},
{0x04B6, "\001\005\024\353\320"},
{0x04B7, "\001\003\024\353\320"},
{0x04B8, "\001\005\024\353\210\224"},
{0x04B9, "\001\003\024\353\210\224"},
- {0x04BA, "\001\005\024\374\044"},
- {0x04BB, "\001\003\024\374\044"},
- {0x04BC, "\001\005\024\353\371\125"},
- {0x04BD, "\001\003\024\353\371\125"},
- {0x04BE, "\001\005\024\353\371\125\320"},
- {0x04BF, "\001\003\024\353\371\125\320"},
- {0x04C0, "\001\024\376\266"},
- {0x04C1, "\001\005\024\371\152\160"},
- {0x04C2, "\001\003\024\371\152\160"},
+ {0x04BA, "\001\005\024\374\045"},
+ {0x04BB, "\001\003\024\374\045"},
+ {0x04BC, "\001\005\024\353\371\126"},
+ {0x04BD, "\001\003\024\353\371\126"},
+ {0x04BE, "\001\005\024\353\371\126\320"},
+ {0x04BF, "\001\003\024\353\371\126\320"},
+ {0x04C0, "\001\024\376\267"},
+ {0x04C1, "\001\005\024\371\153\160"},
+ {0x04C2, "\001\003\024\371\153\160"},
{0x04C3, "\001\005\024\244\100"},
{0x04C4, "\001\003\024\244\100"},
- {0x04C7, "\001\005\024\371\143\100"},
- {0x04C8, "\001\003\024\371\143\100"},
- {0x04CB, "\001\005\024\353\373\251"},
- {0x04CC, "\001\003\024\353\373\251"},
+ {0x04C7, "\001\005\024\371\144\100"},
+ {0x04C8, "\001\003\024\371\144\100"},
+ {0x04CB, "\001\005\024\353\373\252"},
+ {0x04CC, "\001\003\024\353\373\252"},
{0x04D0, "\001\005\024\046\160"},
{0x04D1, "\001\003\024\046\160"},
{0x04D2, "\001\005\024\046\141"},
{0x04D3, "\001\003\024\046\141"},
- {0x04D4, "\006\005\024\046\371\234"},
- {0x04D5, "\006\003\024\046\371\234"},
- {0x04D6, "\001\005\024\371\234\160"},
- {0x04D7, "\001\003\024\371\234\160"},
- {0x04D8, "\001\005\024\371\246"},
- {0x04D9, "\001\003\024\371\246"},
- {0x04DA, "\001\005\024\371\246\141"},
- {0x04DB, "\001\003\024\371\246\141"},
- {0x04DC, "\001\005\024\371\152\141"},
- {0x04DD, "\001\003\024\371\152\141"},
- {0x04DE, "\001\005\024\371\332\141"},
- {0x04DF, "\001\003\024\371\332\141"},
- {0x04E0, "\001\005\024\372\057\371\125"},
- {0x04E1, "\001\003\024\372\057\371\125"},
+ {0x04D4, "\006\005\024\046\371\235"},
+ {0x04D5, "\006\003\024\046\371\235"},
+ {0x04D6, "\001\005\024\371\235\160"},
+ {0x04D7, "\001\003\024\371\235\160"},
+ {0x04D8, "\001\005\024\371\247"},
+ {0x04D9, "\001\003\024\371\247"},
+ {0x04DA, "\001\005\024\371\247\141"},
+ {0x04DB, "\001\003\024\371\247\141"},
+ {0x04DC, "\001\005\024\371\153\141"},
+ {0x04DD, "\001\003\024\371\153\141"},
+ {0x04DE, "\001\005\024\371\333\141"},
+ {0x04DF, "\001\003\024\371\333\141"},
+ {0x04E0, "\001\005\024\372\057\371\126"},
+ {0x04E1, "\001\003\024\372\057\371\126"},
{0x04E2, "\001\005\024\072\161"},
{0x04E3, "\001\003\024\072\161"},
{0x04E4, "\001\005\024\072\141"},
{0x04F5, "\001\003\024\353\141"},
{0x04F8, "\001\005\024\372\176\141"},
{0x04F9, "\001\003\024\372\176\141"},
- {0x0531, "\001\005\076\373\025"},
- {0x0532, "\001\005\076\373\050"},
- {0x0533, "\001\005\076\373\212"},
+ {0x0531, "\001\005\076\373\026"},
+ {0x0532, "\001\005\076\373\051"},
+ {0x0533, "\001\005\076\373\213"},
{0x0534, "\001\005\076\371\013"},
{0x0535, "\001\005\076\372\072"},
{0x0536, "\001\005\076\364"},
{0x0537, "\001\005\076\060"},
- {0x0538, "\001\005\076\373\245"},
- {0x0539, "\001\005\076\374\076"},
- {0x053A, "\001\005\076\373\244"},
+ {0x0538, "\001\005\076\373\246"},
+ {0x0539, "\001\005\076\374\077"},
+ {0x053A, "\001\005\076\373\245"},
{0x053B, "\001\005\076\072"},
- {0x053C, "\001\005\076\373\265"},
+ {0x053C, "\001\005\076\373\266"},
{0x053D, "\001\005\076\372\215"},
- {0x053E, "\001\005\076\373\140"},
- {0x053F, "\001\005\076\373\254"},
- {0x0540, "\001\005\076\373\230"},
- {0x0541, "\001\005\076\373\137"},
- {0x0542, "\001\005\076\373\204"},
- {0x0543, "\001\005\076\374\073"},
- {0x0544, "\001\005\076\371\302"},
+ {0x053E, "\001\005\076\373\141"},
+ {0x053F, "\001\005\076\373\255"},
+ {0x0540, "\001\005\076\373\231"},
+ {0x0541, "\001\005\076\373\140"},
+ {0x0542, "\001\005\076\373\205"},
+ {0x0543, "\001\005\076\374\074"},
+ {0x0544, "\001\005\076\371\303"},
{0x0545, "\001\005\076\372\174"},
{0x0546, "\001\005\076\372\115"},
- {0x0547, "\001\005\076\371\053"},
+ {0x0547, "\001\005\076\371\054"},
{0x0548, "\001\005\076\373\002"},
{0x0549, "\001\005\076\371\020"},
- {0x054A, "\001\005\076\371\115"},
- {0x054B, "\001\005\076\373\135"},
+ {0x054A, "\001\005\076\371\116"},
+ {0x054B, "\001\005\076\373\136"},
{0x054C, "\001\005\076\345"},
- {0x054D, "\001\005\076\371\317"},
+ {0x054D, "\001\005\076\371\320"},
{0x054E, "\001\005\076\372\377"},
- {0x054F, "\001\005\076\374\102"},
- {0x0550, "\001\005\076\371\314"},
+ {0x054F, "\001\005\076\374\103"},
+ {0x0550, "\001\005\076\371\315"},
{0x0551, "\001\005\076\372\222"},
{0x0552, "\001\005\076\373\007"},
- {0x0553, "\001\005\076\373\355"},
- {0x0554, "\001\005\076\371\235"},
- {0x0555, "\001\005\076\373\333"},
- {0x0556, "\001\005\076\373\157"},
- {0x0559, "\001\157\076\371\270\042"},
- {0x055A, "\371\215\076"},
- {0x055B, "\134\372\230\371\335"},
- {0x055C, "\027\371\131\371\335"},
+ {0x0553, "\001\005\076\373\356"},
+ {0x0554, "\001\005\076\371\236"},
+ {0x0555, "\001\005\076\373\334"},
+ {0x0556, "\001\005\076\373\160"},
+ {0x0559, "\001\157\076\371\271\042"},
+ {0x055A, "\371\216\076"},
+ {0x055B, "\134\372\230\371\336"},
+ {0x055C, "\027\371\132\371\336"},
{0x055D, "\331\076"},
- {0x055E, "\027\371\224\371\335"},
- {0x055F, "\015\375\103\371\335"},
- {0x0561, "\001\003\076\373\025"},
- {0x0562, "\001\003\076\373\050"},
- {0x0563, "\001\003\076\373\212"},
+ {0x055E, "\027\371\225\371\336"},
+ {0x055F, "\015\375\104\371\336"},
+ {0x0561, "\001\003\076\373\026"},
+ {0x0562, "\001\003\076\373\051"},
+ {0x0563, "\001\003\076\373\213"},
{0x0564, "\001\003\076\371\013"},
{0x0565, "\001\003\076\372\072"},
{0x0566, "\001\003\076\364"},
{0x0567, "\001\003\076\060"},
- {0x0568, "\001\003\076\373\245"},
- {0x0569, "\001\003\076\374\076"},
- {0x056A, "\001\003\076\373\244"},
+ {0x0568, "\001\003\076\373\246"},
+ {0x0569, "\001\003\076\374\077"},
+ {0x056A, "\001\003\076\373\245"},
{0x056B, "\001\003\076\072"},
- {0x056C, "\001\003\076\373\265"},
+ {0x056C, "\001\003\076\373\266"},
{0x056D, "\001\003\076\372\215"},
- {0x056E, "\001\003\076\373\140"},
- {0x056F, "\001\003\076\373\254"},
- {0x0570, "\001\003\076\373\230"},
- {0x0571, "\001\003\076\373\137"},
- {0x0572, "\001\003\076\373\204"},
- {0x0573, "\001\003\076\374\073"},
- {0x0574, "\001\003\076\371\302"},
+ {0x056E, "\001\003\076\373\141"},
+ {0x056F, "\001\003\076\373\255"},
+ {0x0570, "\001\003\076\373\231"},
+ {0x0571, "\001\003\076\373\140"},
+ {0x0572, "\001\003\076\373\205"},
+ {0x0573, "\001\003\076\374\074"},
+ {0x0574, "\001\003\076\371\303"},
{0x0575, "\001\003\076\372\174"},
{0x0576, "\001\003\076\372\115"},
- {0x0577, "\001\003\076\371\053"},
+ {0x0577, "\001\003\076\371\054"},
{0x0578, "\001\003\076\373\002"},
{0x0579, "\001\003\076\371\020"},
- {0x057A, "\001\003\076\371\115"},
- {0x057B, "\001\003\076\373\135"},
+ {0x057A, "\001\003\076\371\116"},
+ {0x057B, "\001\003\076\373\136"},
{0x057C, "\001\003\076\345"},
- {0x057D, "\001\003\076\371\317"},
+ {0x057D, "\001\003\076\371\320"},
{0x057E, "\001\003\076\372\377"},
- {0x057F, "\001\003\076\374\102"},
- {0x0580, "\001\003\076\371\314"},
+ {0x057F, "\001\003\076\374\103"},
+ {0x0580, "\001\003\076\371\315"},
{0x0581, "\001\003\076\372\222"},
{0x0582, "\001\003\076\373\007"},
- {0x0583, "\001\003\076\373\355"},
- {0x0584, "\001\003\076\371\235"},
- {0x0585, "\001\003\076\373\333"},
- {0x0586, "\001\003\076\373\157"},
+ {0x0583, "\001\003\076\373\356"},
+ {0x0584, "\001\003\076\371\236"},
+ {0x0585, "\001\003\076\373\334"},
+ {0x0586, "\001\003\076\373\160"},
{0x0587, "\006\003\076\372\072\373\007"},
- {0x0589, "\027\371\335"},
- {0x05B0, "\027\343\375\030"},
- {0x05B1, "\027\343\372\261\374\041"},
+ {0x0589, "\027\371\336"},
+ {0x05B0, "\027\343\375\031"},
+ {0x05B1, "\027\343\372\261\374\042"},
{0x05B2, "\027\343\372\261\372\122"},
{0x05B3, "\027\343\372\261\372\333"},
- {0x05B4, "\027\343\375\303"},
- {0x05B5, "\027\343\377\230"},
- {0x05B6, "\027\343\374\041"},
+ {0x05B4, "\027\343\375\304"},
+ {0x05B5, "\027\343\377\231"},
+ {0x05B6, "\027\343\374\042"},
{0x05B7, "\027\343\372\122"},
{0x05B8, "\027\343\372\333"},
- {0x05B9, "\027\343\373\225"},
- {0x05BB, "\027\343\376\032"},
+ {0x05B9, "\027\343\373\226"},
+ {0x05BB, "\027\343\376\033"},
{0x05BC, "\027\343\276\114\372\307"},
- {0x05BD, "\027\343\376\117"},
- {0x05BE, "\371\310\110\376\103"},
+ {0x05BD, "\027\343\376\120"},
+ {0x05BE, "\371\311\110\376\104"},
{0x05BF, "\027\343\372\143"},
- {0x05C0, "\371\310\110\376\274"},
- {0x05C1, "\027\343\371\073"},
+ {0x05C0, "\371\311\110\376\275"},
+ {0x05C1, "\027\343\371\074"},
{0x05C2, "\027\343\372\353"},
- {0x05C3, "\371\310\110\377\107\376\276"},
- {0x05D0, "\001\110\371\261"},
+ {0x05C3, "\371\311\110\377\110\376\277"},
+ {0x05D0, "\001\110\371\262"},
{0x05D1, "\001\110\372\044"},
- {0x05D2, "\001\110\373\217"},
+ {0x05D2, "\001\110\373\220"},
{0x05D3, "\001\110\372\052"},
- {0x05D4, "\001\110\371\103"},
- {0x05D5, "\001\110\372\027"},
- {0x05D6, "\001\110\374\144"},
- {0x05D7, "\001\110\375\301"},
- {0x05D8, "\001\110\374\074"},
- {0x05D9, "\001\110\371\331"},
+ {0x05D4, "\001\110\371\104"},
+ {0x05D5, "\001\110\372\030"},
+ {0x05D6, "\001\110\374\145"},
+ {0x05D7, "\001\110\375\302"},
+ {0x05D8, "\001\110\374\075"},
+ {0x05D9, "\001\110\371\332"},
{0x05DA, "\001\110\205\016"},
{0x05DB, "\001\110\205"},
{0x05DC, "\001\110\372\100"},
{0x05DE, "\001\110\372\107"},
{0x05DF, "\001\110\372\320\016"},
{0x05E0, "\001\110\372\320"},
- {0x05E1, "\001\110\377\045"},
- {0x05E2, "\001\110\373\041"},
- {0x05E3, "\001\110\371\115\016"},
- {0x05E4, "\001\110\371\115"},
+ {0x05E1, "\001\110\377\046"},
+ {0x05E2, "\001\110\373\042"},
+ {0x05E3, "\001\110\371\116\016"},
+ {0x05E4, "\001\110\371\116"},
{0x05E5, "\001\110\372\375\016"},
{0x05E6, "\001\110\372\375"},
- {0x05E7, "\001\110\374\004"},
+ {0x05E7, "\001\110\374\005"},
{0x05E8, "\001\110\372\337"},
- {0x05E9, "\001\110\371\073"},
+ {0x05E9, "\001\110\371\074"},
{0x05EA, "\001\110\372\367"},
- {0x05F0, "\006\110\372\175\051\372\027"},
- {0x05F1, "\006\110\372\175\372\027\371\331"},
- {0x05F2, "\006\110\372\175\051\371\331"},
- {0x05F3, "\371\310\110\375\250"},
- {0x05F4, "\371\310\110\375\247"},
+ {0x05F0, "\006\110\372\175\051\372\030"},
+ {0x05F1, "\006\110\372\175\372\030\371\332"},
+ {0x05F2, "\006\110\372\175\051\371\332"},
+ {0x05F3, "\371\311\110\375\251"},
+ {0x05F4, "\371\311\110\375\250"},
{0x060C, "\331\002"},
- {0x061B, "\372\007\002"},
- {0x061F, "\027\371\224\002"},
+ {0x061B, "\372\010\002"},
+ {0x061F, "\027\371\225\002"},
{0x0621, "\001\002\126"},
- {0x0622, "\001\002\054\371\301\007\025"},
+ {0x0622, "\001\002\054\371\302\007\025"},
{0x0623, "\001\002\054\126\007\025"},
- {0x0624, "\001\002\371\034\126\007\025"},
+ {0x0624, "\001\002\371\035\126\007\025"},
{0x0625, "\001\002\054\126\032"},
{0x0626, "\001\002\041\126\007\025"},
{0x0627, "\001\002\054"},
{0x062C, "\001\002\066"},
{0x062D, "\001\002\064"},
{0x062E, "\001\002\137"},
- {0x062F, "\001\002\371\133"},
+ {0x062F, "\001\002\371\134"},
{0x0630, "\001\002\372\054"},
{0x0631, "\001\002\257"},
- {0x0632, "\001\002\371\123"},
+ {0x0632, "\001\002\371\124"},
{0x0633, "\001\002\201"},
{0x0634, "\001\002\206"},
{0x0635, "\001\002\263"},
{0x0636, "\001\002\266"},
{0x0637, "\001\002\327"},
- {0x0638, "\001\002\371\211"},
+ {0x0638, "\001\002\371\212"},
{0x0639, "\001\002\312"},
{0x063A, "\001\002\350"},
- {0x0640, "\374\071\002"},
+ {0x0640, "\374\072\002"},
{0x0641, "\001\002\261"},
{0x0642, "\001\002\323"},
{0x0643, "\001\002\205"},
{0x0645, "\001\002\033"},
{0x0646, "\001\002\164"},
{0x0647, "\001\002\171"},
- {0x0648, "\001\002\371\034"},
+ {0x0648, "\001\002\371\035"},
{0x0649, "\001\002\054\124"},
{0x064A, "\001\002\041"},
- {0x064B, "\371\362\002"},
+ {0x064B, "\371\363\002"},
{0x064C, "\372\233\002"},
{0x064D, "\372\300\002"},
- {0x064E, "\371\361\002"},
- {0x064F, "\371\346\002"},
- {0x0650, "\371\371\002"},
- {0x0651, "\375\024\002"},
+ {0x064E, "\371\362\002"},
+ {0x064F, "\371\347\002"},
+ {0x0650, "\371\372\002"},
+ {0x0651, "\375\025\002"},
{0x0652, "\372\360\002"},
{0x0660, "\017\314\311"},
{0x0661, "\017\314\132"},
{0x0667, "\017\314\221"},
{0x0668, "\017\314\204"},
{0x0669, "\017\314\235"},
- {0x066A, "\015\335\371\222\002"},
- {0x066B, "\371\007\375\160\002"},
- {0x066C, "\371\007\373\276\002"},
+ {0x066A, "\015\335\371\223\002"},
+ {0x066B, "\371\007\375\161\002"},
+ {0x066C, "\371\007\373\277\002"},
{0x066D, "\303\040\203\365\002"},
{0x0670, "\001\002\054\007\025"},
{0x0671, "\001\002\054\373\003"},
- {0x0672, "\001\002\054\126\373\336\007\025"},
- {0x0673, "\001\002\054\126\373\336\032"},
- {0x0674, "\001\002\126\372\034"},
- {0x0675, "\001\002\054\126\372\034"},
- {0x0676, "\001\002\371\034\126\372\034"},
- {0x0677, "\001\002\114\126\372\034"},
- {0x0678, "\001\002\041\126\372\034"},
- {0x0679, "\001\002\372\024"},
- {0x067A, "\001\002\372\025"},
- {0x067B, "\001\002\371\336"},
+ {0x0672, "\001\002\054\126\373\337\007\025"},
+ {0x0673, "\001\002\054\126\373\337\032"},
+ {0x0674, "\001\002\126\372\035"},
+ {0x0675, "\001\002\054\126\372\035"},
+ {0x0676, "\001\002\371\035\126\372\035"},
+ {0x0677, "\001\002\114\126\372\035"},
+ {0x0678, "\001\002\041\126\372\035"},
+ {0x0679, "\001\002\372\025"},
+ {0x067A, "\001\002\372\026"},
+ {0x067B, "\001\002\371\337"},
{0x067C, "\001\002\174\231"},
{0x067D, "\001\002\174\131\220\007\025\245\013\035\061"},
- {0x067E, "\001\002\372\004"},
- {0x067F, "\001\002\372\020"},
- {0x0680, "\001\002\371\337"},
+ {0x067E, "\001\002\372\005"},
+ {0x067F, "\001\002\372\021"},
+ {0x0680, "\001\002\371\340"},
{0x0681, "\001\002\064\126\007\025"},
- {0x0682, "\001\002\064\154\220\374\277\373\001\371\216\373\126"},
- {0x0683, "\001\002\371\377"},
- {0x0684, "\001\002\371\355"},
+ {0x0682, "\001\002\064\154\220\374\300\373\001\371\217\373\127"},
+ {0x0683, "\001\002\372\001"},
+ {0x0684, "\001\002\371\356"},
{0x0685, "\001\002\064\131\220\007\025"},
- {0x0686, "\001\002\372\017"},
- {0x0687, "\001\002\372\016"},
+ {0x0686, "\001\002\372\020"},
+ {0x0687, "\001\002\372\017"},
{0x0688, "\001\002\372\235"},
- {0x0689, "\001\002\371\133\231"},
- {0x068A, "\001\002\371\133\027\032"},
- {0x068B, "\001\002\371\133\027\032\011\144\377\142"},
+ {0x0689, "\001\002\371\134\231"},
+ {0x068A, "\001\002\371\134\027\032"},
+ {0x068B, "\001\002\371\134\027\032\011\144\377\143"},
{0x068C, "\001\002\372\232"},
{0x068D, "\001\002\372\234"},
{0x068E, "\001\002\372\245"},
- {0x068F, "\001\002\371\133\131\220\007\025\245\013\035\061"},
- {0x0690, "\001\002\371\133\200\220\007\025"},
+ {0x068F, "\001\002\371\134\131\220\007\025\245\013\035\061"},
+ {0x0690, "\001\002\371\134\200\220\007\025"},
{0x0691, "\001\002\372\351"},
{0x0692, "\001\002\257\144\324"},
{0x0693, "\001\002\257\231"},
{0x0698, "\001\002\372\272"},
{0x0699, "\001\002\257\200\220\007\025"},
{0x069A, "\001\002\201\027\032\011\027\007\025"},
- {0x069B, "\001\002\201\131\220\371\250"},
- {0x069C, "\001\002\201\131\220\371\250\011\131\220\007\025"},
- {0x069D, "\001\002\263\154\220\371\250"},
+ {0x069B, "\001\002\201\131\220\371\251"},
+ {0x069C, "\001\002\201\131\220\371\251\011\131\220\007\025"},
+ {0x069D, "\001\002\263\154\220\371\251"},
{0x069E, "\001\002\263\131\220\007\025"},
{0x069F, "\001\002\327\131\220\007\025"},
{0x06A0, "\001\002\312\131\220\007\025"},
{0x06A1, "\001\002\261\232\027"},
- {0x06A2, "\001\002\261\027\375\135"},
+ {0x06A2, "\001\002\261\027\375\136"},
{0x06A3, "\001\002\261\027\032"},
- {0x06A4, "\001\002\372\026"},
- {0x06A5, "\001\002\261\131\220\371\250"},
- {0x06A6, "\001\002\372\005"},
+ {0x06A4, "\001\002\372\027"},
+ {0x06A5, "\001\002\261\131\220\371\251"},
+ {0x06A6, "\001\002\372\006"},
{0x06A7, "\001\002\323\027\007\025"},
{0x06A8, "\001\002\323\131\220\007\025"},
- {0x06A9, "\001\002\371\372"},
- {0x06AA, "\001\002\205\377\325"},
+ {0x06A9, "\001\002\371\373"},
+ {0x06AA, "\001\002\205\377\326"},
{0x06AB, "\001\002\205\231"},
{0x06AC, "\001\002\205\027\007\025"},
- {0x06AD, "\001\002\371\303"},
- {0x06AE, "\001\002\205\131\220\371\250"},
- {0x06AF, "\001\002\371\144"},
- {0x06B0, "\001\002\371\144\231"},
- {0x06B1, "\001\002\371\374"},
- {0x06B2, "\001\002\371\144\154\220\371\250"},
- {0x06B3, "\001\002\371\364"},
- {0x06B4, "\001\002\371\144\131\220\007\025"},
+ {0x06AD, "\001\002\371\304"},
+ {0x06AE, "\001\002\205\131\220\371\251"},
+ {0x06AF, "\001\002\371\145"},
+ {0x06B0, "\001\002\371\145\231"},
+ {0x06B1, "\001\002\371\375"},
+ {0x06B2, "\001\002\371\145\154\220\371\251"},
+ {0x06B3, "\001\002\371\365"},
+ {0x06B4, "\001\002\371\145\131\220\007\025"},
{0x06B5, "\001\002\155\144\324"},
{0x06B6, "\001\002\155\027\007\025"},
{0x06B7, "\001\002\155\131\220\007\025"},
{0x06BA, "\001\002\164\372\256"},
- {0x06BB, "\001\002\372\013"},
+ {0x06BB, "\001\002\372\014"},
{0x06BC, "\001\002\164\231"},
{0x06BD, "\001\002\164\131\220\007\025"},
- {0x06BE, "\001\002\171\371\354"},
+ {0x06BE, "\001\002\171\371\355"},
{0x06C0, "\001\002\171\041\007\025"},
- {0x06C1, "\001\002\171\371\231"},
- {0x06C2, "\001\002\171\371\231\126\007\025"},
- {0x06C3, "\372\105\371\231"},
- {0x06C4, "\001\002\371\034\231"},
- {0x06C5, "\001\002\371\035\371\040"},
- {0x06C6, "\001\002\371\040"},
+ {0x06C1, "\001\002\171\371\232"},
+ {0x06C2, "\001\002\171\371\232\126\007\025"},
+ {0x06C3, "\372\105\371\232"},
+ {0x06C4, "\001\002\371\035\231"},
+ {0x06C5, "\001\002\371\036\371\041"},
+ {0x06C6, "\001\002\371\041"},
{0x06C7, "\001\002\107"},
- {0x06C8, "\001\002\371\050"},
- {0x06C9, "\001\002\371\035\371\050"},
- {0x06CA, "\001\002\371\034\154\220\007\025"},
+ {0x06C8, "\001\002\371\051"},
+ {0x06C9, "\001\002\371\036\371\051"},
+ {0x06CA, "\001\002\371\035\154\220\007\025"},
{0x06CB, "\001\002\372\172"},
- {0x06CC, "\001\002\371\272\041"},
+ {0x06CC, "\001\002\371\273\041"},
{0x06CD, "\001\002\041\372\142"},
{0x06CE, "\001\002\041\144\324"},
{0x06D0, "\001\002\060"},
- {0x06D1, "\001\002\041\131\220\371\250"},
+ {0x06D1, "\001\002\041\131\220\371\251"},
{0x06D2, "\001\002\041\175"},
{0x06D3, "\001\002\041\175\126\007\025"},
{0x06D4, "\027\002"},
{0x06DA, "\001\002\003\066\007\025"},
{0x06DB, "\131\220\007\025\002"},
{0x06DC, "\001\002\003\201\007\025"},
- {0x06DD, "\070\012\374\346\002"},
- {0x06DE, "\371\141\012\377\023\375\174\375\304\002"},
- {0x06DF, "\311\374\321\007\025\002"},
- {0x06E0, "\311\376\377\007\025\002"},
- {0x06E1, "\376\271\375\274\012\137\232\027\007\025\002"},
+ {0x06DD, "\070\012\374\347\002"},
+ {0x06DE, "\371\142\012\377\024\375\175\375\305\002"},
+ {0x06DF, "\311\374\322\007\025\002"},
+ {0x06E0, "\311\377\001\007\025\002"},
+ {0x06E1, "\376\272\375\275\012\137\232\027\007\025\002"},
{0x06E2, "\001\002\003\033\007\025\020"},
{0x06E3, "\001\002\003\201\032"},
- {0x06E4, "\001\002\003\371\301\007\025"},
- {0x06E5, "\001\002\003\371\034"},
+ {0x06E4, "\001\002\003\371\302\007\025"},
+ {0x06E5, "\001\002\003\371\035"},
{0x06E6, "\001\002\003\041"},
{0x06E7, "\001\002\003\041\007\025"},
{0x06E8, "\001\002\003\164\007\025"},
- {0x06E9, "\376\333\012\377\040\002"},
+ {0x06E9, "\376\334\012\377\041\002"},
{0x06EA, "\027\371\012\032\002"},
{0x06EB, "\027\371\012\007\025\002"},
- {0x06EC, "\027\373\370\032\002"},
+ {0x06EC, "\027\373\371\032\002"},
{0x06ED, "\001\002\003\033\032"},
- {0x06F0, "\017\314\371\072\311"},
- {0x06F1, "\017\314\371\072\132"},
- {0x06F2, "\017\314\371\072\154"},
- {0x06F3, "\017\314\371\072\131"},
- {0x06F4, "\017\314\371\072\200"},
- {0x06F5, "\017\314\371\072\203"},
- {0x06F6, "\017\314\371\072\233"},
- {0x06F7, "\017\314\371\072\221"},
- {0x06F8, "\017\314\371\072\204"},
- {0x06F9, "\017\314\371\072\235"},
- {0x0901, "\015\057\371\263"},
- {0x0902, "\015\057\374\312"},
- {0x0903, "\015\057\371\207"},
+ {0x06F0, "\017\314\371\073\311"},
+ {0x06F1, "\017\314\371\073\132"},
+ {0x06F2, "\017\314\371\073\154"},
+ {0x06F3, "\017\314\371\073\131"},
+ {0x06F4, "\017\314\371\073\200"},
+ {0x06F5, "\017\314\371\073\203"},
+ {0x06F6, "\017\314\371\073\233"},
+ {0x06F7, "\017\314\371\073\221"},
+ {0x06F8, "\017\314\371\073\204"},
+ {0x06F9, "\017\314\371\073\235"},
+ {0x0901, "\015\057\371\264"},
+ {0x0902, "\015\057\374\313"},
+ {0x0903, "\015\057\371\210"},
{0x0905, "\001\057\046"},
{0x0906, "\001\057\313"},
{0x0907, "\001\057\072"},
{0x090A, "\001\057\322"},
{0x090B, "\001\057\150\176"},
{0x090C, "\001\057\167\176"},
- {0x090D, "\001\057\060\371\130"},
- {0x090E, "\001\057\060\371\127"},
+ {0x090D, "\001\057\060\371\131"},
+ {0x090E, "\001\057\060\371\130"},
{0x090F, "\001\057\060"},
{0x0910, "\001\057\250"},
- {0x0911, "\001\057\050\371\130"},
- {0x0912, "\001\057\050\371\127"},
+ {0x0911, "\001\057\050\371\131"},
+ {0x0912, "\001\057\050\371\130"},
{0x0913, "\001\057\050"},
{0x0914, "\001\057\274"},
{0x0915, "\001\057\244"},
- {0x0916, "\001\057\371\061"},
- {0x0917, "\001\057\371\056"},
- {0x0918, "\001\057\371\145"},
- {0x0919, "\001\057\371\113"},
+ {0x0916, "\001\057\371\062"},
+ {0x0917, "\001\057\371\057"},
+ {0x0918, "\001\057\371\146"},
+ {0x0919, "\001\057\371\114"},
{0x091A, "\001\057\371\020"},
- {0x091B, "\001\057\371\201"},
- {0x091C, "\001\057\371\077"},
- {0x091D, "\001\057\371\226"},
- {0x091E, "\001\057\371\124"},
- {0x091F, "\001\057\371\117"},
- {0x0920, "\001\057\371\205"},
- {0x0921, "\001\057\371\134"},
- {0x0922, "\001\057\371\135"},
- {0x0923, "\001\057\371\114"},
+ {0x091B, "\001\057\371\202"},
+ {0x091C, "\001\057\371\100"},
+ {0x091D, "\001\057\371\227"},
+ {0x091E, "\001\057\371\125"},
+ {0x091F, "\001\057\371\120"},
+ {0x0920, "\001\057\371\206"},
+ {0x0921, "\001\057\371\135"},
+ {0x0922, "\001\057\371\136"},
+ {0x0923, "\001\057\371\115"},
{0x0924, "\001\057\371\017"},
- {0x0925, "\001\057\371\202"},
+ {0x0925, "\001\057\371\203"},
{0x0926, "\001\057\371\013"},
- {0x0927, "\001\057\371\137"},
+ {0x0927, "\001\057\371\140"},
{0x0928, "\001\057\371\002"},
- {0x0929, "\001\057\373\321"},
+ {0x0929, "\001\057\373\322"},
{0x092A, "\001\057\371\015"},
- {0x092B, "\001\057\371\166"},
- {0x092C, "\001\057\371\052"},
- {0x092D, "\001\057\371\126"},
+ {0x092B, "\001\057\371\167"},
+ {0x092C, "\001\057\371\053"},
+ {0x092D, "\001\057\371\127"},
{0x092E, "\001\057\360"},
{0x092F, "\001\057\332"},
{0x0930, "\001\057\345"},
- {0x0931, "\001\057\371\172"},
+ {0x0931, "\001\057\371\173"},
{0x0932, "\001\057\022"},
- {0x0933, "\001\057\371\156"},
+ {0x0933, "\001\057\371\157"},
{0x0934, "\001\057\372\305"},
- {0x0935, "\001\057\371\206"},
- {0x0936, "\001\057\371\053"},
- {0x0937, "\001\057\371\175"},
+ {0x0935, "\001\057\371\207"},
+ {0x0936, "\001\057\371\054"},
+ {0x0937, "\001\057\371\176"},
{0x0938, "\001\057\364"},
{0x0939, "\001\057\333"},
- {0x093C, "\015\057\371\376"},
+ {0x093C, "\015\057\371\377"},
{0x093D, "\015\057\372\207"},
{0x093E, "\044\023\057\313"},
{0x093F, "\044\023\057\072"},
{0x0941, "\044\023\057\114"},
{0x0942, "\044\023\057\322"},
{0x0943, "\044\023\057\150\176"},
- {0x0944, "\044\023\057\371\033\176"},
- {0x0945, "\044\023\057\060\371\130"},
- {0x0946, "\044\023\057\060\371\127"},
+ {0x0944, "\044\023\057\371\034\176"},
+ {0x0945, "\044\023\057\060\371\131"},
+ {0x0946, "\044\023\057\060\371\130"},
{0x0947, "\044\023\057\060"},
{0x0948, "\044\023\057\250"},
- {0x0949, "\044\023\057\050\371\130"},
- {0x094A, "\044\023\057\050\371\127"},
+ {0x0949, "\044\023\057\050\371\131"},
+ {0x094A, "\044\023\057\050\371\130"},
{0x094B, "\044\023\057\050"},
{0x094C, "\044\023\057\274"},
- {0x094D, "\015\057\371\120"},
- {0x0950, "\373\334\057"},
- {0x0951, "\134\372\230\057\377\234"},
- {0x0952, "\134\372\230\057\374\315"},
+ {0x094D, "\015\057\371\121"},
+ {0x0950, "\373\335\057"},
+ {0x0951, "\134\372\230\057\377\235"},
+ {0x0952, "\134\372\230\057\374\316"},
{0x0953, "\026\151\057"},
{0x0954, "\026\102\057"},
- {0x0958, "\001\057\376\363"},
- {0x0959, "\001\057\373\253"},
- {0x095A, "\001\057\373\205"},
+ {0x0958, "\001\057\376\364"},
+ {0x0959, "\001\057\373\254"},
+ {0x095A, "\001\057\373\206"},
{0x095B, "\001\057\372\177"},
- {0x095C, "\001\057\375\123"},
+ {0x095C, "\001\057\375\124"},
{0x095D, "\001\057\372\341"},
{0x095E, "\001\057\372\062"},
{0x095F, "\001\057\373\011"},
- {0x0960, "\001\057\371\033\176"},
- {0x0961, "\001\057\371\155\176"},
+ {0x0960, "\001\057\371\034\176"},
+ {0x0961, "\001\057\371\156\176"},
{0x0962, "\044\023\057\167\176"},
- {0x0963, "\044\023\057\371\155\176"},
- {0x0964, "\373\116\057"},
- {0x0965, "\051\373\116\057"},
+ {0x0963, "\044\023\057\371\156\176"},
+ {0x0964, "\373\117\057"},
+ {0x0965, "\051\373\117\057"},
{0x0966, "\017\057\311"},
{0x0967, "\017\057\132"},
{0x0968, "\017\057\154"},
{0x096D, "\017\057\221"},
{0x096E, "\017\057\204"},
{0x096F, "\017\057\235"},
- {0x0970, "\015\057\375\102"},
- {0x0981, "\015\071\371\263"},
- {0x0982, "\015\071\371\214"},
- {0x0983, "\015\071\371\207"},
+ {0x0970, "\015\057\375\103"},
+ {0x0981, "\015\071\371\264"},
+ {0x0982, "\015\071\371\215"},
+ {0x0983, "\015\071\371\210"},
{0x0985, "\001\071\046"},
{0x0986, "\001\071\313"},
{0x0987, "\001\071\072"},
{0x0993, "\001\071\050"},
{0x0994, "\001\071\274"},
{0x0995, "\001\071\244"},
- {0x0996, "\001\071\371\061"},
- {0x0997, "\001\071\371\056"},
- {0x0998, "\001\071\371\145"},
- {0x0999, "\001\071\371\113"},
+ {0x0996, "\001\071\371\062"},
+ {0x0997, "\001\071\371\057"},
+ {0x0998, "\001\071\371\146"},
+ {0x0999, "\001\071\371\114"},
{0x099A, "\001\071\371\020"},
- {0x099B, "\001\071\371\201"},
- {0x099C, "\001\071\371\077"},
- {0x099D, "\001\071\371\226"},
- {0x099E, "\001\071\371\124"},
- {0x099F, "\001\071\371\117"},
- {0x09A0, "\001\071\371\205"},
- {0x09A1, "\001\071\371\134"},
- {0x09A2, "\001\071\371\135"},
- {0x09A3, "\001\071\371\114"},
+ {0x099B, "\001\071\371\202"},
+ {0x099C, "\001\071\371\100"},
+ {0x099D, "\001\071\371\227"},
+ {0x099E, "\001\071\371\125"},
+ {0x099F, "\001\071\371\120"},
+ {0x09A0, "\001\071\371\206"},
+ {0x09A1, "\001\071\371\135"},
+ {0x09A2, "\001\071\371\136"},
+ {0x09A3, "\001\071\371\115"},
{0x09A4, "\001\071\371\017"},
- {0x09A5, "\001\071\371\202"},
+ {0x09A5, "\001\071\371\203"},
{0x09A6, "\001\071\371\013"},
- {0x09A7, "\001\071\371\137"},
+ {0x09A7, "\001\071\371\140"},
{0x09A8, "\001\071\371\002"},
{0x09AA, "\001\071\371\015"},
- {0x09AB, "\001\071\371\166"},
- {0x09AC, "\001\071\371\052"},
- {0x09AD, "\001\071\371\126"},
+ {0x09AB, "\001\071\371\167"},
+ {0x09AC, "\001\071\371\053"},
+ {0x09AD, "\001\071\371\127"},
{0x09AE, "\001\071\360"},
{0x09AF, "\001\071\332"},
{0x09B0, "\001\071\345"},
{0x09B2, "\001\071\022"},
- {0x09B6, "\001\071\371\053"},
- {0x09B7, "\001\071\371\175"},
+ {0x09B6, "\001\071\371\054"},
+ {0x09B7, "\001\071\371\176"},
{0x09B8, "\001\071\364"},
{0x09B9, "\001\071\333"},
- {0x09BC, "\015\071\371\376"},
+ {0x09BC, "\015\071\371\377"},
{0x09BE, "\044\023\071\313"},
{0x09BF, "\044\023\071\072"},
{0x09C0, "\044\023\071\317"},
{0x09C1, "\044\023\071\114"},
{0x09C2, "\044\023\071\322"},
{0x09C3, "\044\023\071\150\176"},
- {0x09C4, "\044\023\071\371\033\176"},
+ {0x09C4, "\044\023\071\371\034\176"},
{0x09C7, "\044\023\071\060"},
{0x09C8, "\044\023\071\250"},
{0x09CB, "\044\023\071\050"},
{0x09CC, "\044\023\071\274"},
- {0x09CD, "\015\071\371\120"},
- {0x09D7, "\134\012\371\107\071\274"},
- {0x09DC, "\001\071\371\172"},
+ {0x09CD, "\015\071\371\121"},
+ {0x09D7, "\134\012\371\110\071\274"},
+ {0x09DC, "\001\071\371\173"},
{0x09DD, "\001\071\372\341"},
{0x09DF, "\001\071\373\011"},
- {0x09E0, "\001\071\371\033\176"},
- {0x09E1, "\001\071\371\155\176"},
+ {0x09E0, "\001\071\371\034\176"},
+ {0x09E1, "\001\071\371\156\176"},
{0x09E2, "\044\023\071\167\176"},
- {0x09E3, "\044\023\071\371\155\176"},
+ {0x09E3, "\044\023\071\371\156\176"},
{0x09E6, "\017\071\311"},
{0x09E7, "\017\071\132"},
{0x09E8, "\017\071\154"},
{0x09ED, "\017\071\221"},
{0x09EE, "\017\071\204"},
{0x09EF, "\017\071\235"},
- {0x09F0, "\001\071\345\130\210\361\376\161"},
+ {0x09F0, "\001\071\345\130\210\361\376\162"},
{0x09F1, "\001\071\345\130\210\361\271"},
{0x09F2, "\134\071\372\350"},
{0x09F3, "\015\071\372\350"},
- {0x09F4, "\371\305\371\161\071\132"},
- {0x09F5, "\371\305\371\161\071\154"},
- {0x09F6, "\371\305\371\161\071\131"},
- {0x09F7, "\371\305\371\161\071\200"},
- {0x09F8, "\371\305\371\161\071\373\143\371\036\132"},
- {0x09F9, "\373\143\371\161\071\371\247"},
- {0x09FA, "\373\242\071"},
- {0x0A02, "\015\120\374\364"},
+ {0x09F4, "\371\306\371\162\071\132"},
+ {0x09F5, "\371\306\371\162\071\154"},
+ {0x09F6, "\371\306\371\162\071\131"},
+ {0x09F7, "\371\306\371\162\071\200"},
+ {0x09F8, "\371\306\371\162\071\373\144\371\037\132"},
+ {0x09F9, "\373\144\371\162\071\371\250"},
+ {0x09FA, "\373\243\071"},
+ {0x0A02, "\015\120\374\365"},
{0x0A05, "\001\120\046"},
{0x0A06, "\001\120\313"},
{0x0A07, "\001\120\072"},
{0x0A08, "\001\120\317"},
{0x0A09, "\001\120\114"},
{0x0A0A, "\001\120\322"},
- {0x0A0F, "\001\120\371\055"},
+ {0x0A0F, "\001\120\371\056"},
{0x0A10, "\001\120\250"},
- {0x0A13, "\001\120\371\063"},
+ {0x0A13, "\001\120\371\064"},
{0x0A14, "\001\120\274"},
{0x0A15, "\001\120\244"},
- {0x0A16, "\001\120\371\061"},
- {0x0A17, "\001\120\371\056"},
- {0x0A18, "\001\120\371\145"},
- {0x0A19, "\001\120\371\113"},
+ {0x0A16, "\001\120\371\062"},
+ {0x0A17, "\001\120\371\057"},
+ {0x0A18, "\001\120\371\146"},
+ {0x0A19, "\001\120\371\114"},
{0x0A1A, "\001\120\371\020"},
- {0x0A1B, "\001\120\371\201"},
- {0x0A1C, "\001\120\371\077"},
- {0x0A1D, "\001\120\377\204"},
- {0x0A1E, "\001\120\371\124"},
- {0x0A1F, "\001\120\371\117"},
- {0x0A20, "\001\120\371\205"},
- {0x0A21, "\001\120\371\134"},
- {0x0A22, "\001\120\371\135"},
- {0x0A23, "\001\120\371\114"},
+ {0x0A1B, "\001\120\371\202"},
+ {0x0A1C, "\001\120\371\100"},
+ {0x0A1D, "\001\120\377\205"},
+ {0x0A1E, "\001\120\371\125"},
+ {0x0A1F, "\001\120\371\120"},
+ {0x0A20, "\001\120\371\206"},
+ {0x0A21, "\001\120\371\135"},
+ {0x0A22, "\001\120\371\136"},
+ {0x0A23, "\001\120\371\115"},
{0x0A24, "\001\120\371\017"},
- {0x0A25, "\001\120\371\202"},
+ {0x0A25, "\001\120\371\203"},
{0x0A26, "\001\120\371\013"},
- {0x0A27, "\001\120\371\137"},
+ {0x0A27, "\001\120\371\140"},
{0x0A28, "\001\120\371\002"},
{0x0A2A, "\001\120\371\015"},
- {0x0A2B, "\001\120\371\166"},
- {0x0A2C, "\001\120\371\052"},
- {0x0A2D, "\001\120\371\126"},
+ {0x0A2B, "\001\120\371\167"},
+ {0x0A2C, "\001\120\371\053"},
+ {0x0A2D, "\001\120\371\127"},
{0x0A2E, "\001\120\360"},
{0x0A2F, "\001\120\332"},
{0x0A30, "\001\120\345"},
{0x0A32, "\001\120\022"},
- {0x0A33, "\001\120\371\156"},
- {0x0A35, "\001\120\371\206"},
- {0x0A36, "\001\120\371\053"},
+ {0x0A33, "\001\120\371\157"},
+ {0x0A35, "\001\120\371\207"},
+ {0x0A36, "\001\120\371\054"},
{0x0A38, "\001\120\364"},
{0x0A39, "\001\120\333"},
- {0x0A3C, "\015\120\371\376"},
+ {0x0A3C, "\015\120\371\377"},
{0x0A3E, "\044\023\120\313"},
{0x0A3F, "\044\023\120\072"},
{0x0A40, "\044\023\120\317"},
{0x0A41, "\044\023\120\114"},
{0x0A42, "\044\023\120\322"},
- {0x0A47, "\044\023\120\371\055"},
+ {0x0A47, "\044\023\120\371\056"},
{0x0A48, "\044\023\120\250"},
- {0x0A4B, "\044\023\120\371\063"},
+ {0x0A4B, "\044\023\120\371\064"},
{0x0A4C, "\044\023\120\274"},
- {0x0A4D, "\015\120\371\120"},
- {0x0A59, "\001\120\373\253"},
- {0x0A5A, "\001\120\373\205"},
+ {0x0A4D, "\015\120\371\121"},
+ {0x0A59, "\001\120\373\254"},
+ {0x0A5A, "\001\120\373\206"},
{0x0A5B, "\001\120\372\177"},
- {0x0A5C, "\001\120\371\172"},
+ {0x0A5C, "\001\120\371\173"},
{0x0A5E, "\001\120\372\062"},
{0x0A66, "\017\120\311"},
{0x0A67, "\017\120\132"},
{0x0A6D, "\017\120\221"},
{0x0A6E, "\017\120\204"},
{0x0A6F, "\017\120\235"},
- {0x0A70, "\377\203\120"},
- {0x0A71, "\374\271\120"},
- {0x0A72, "\375\352\120"},
- {0x0A73, "\377\241\120"},
- {0x0A74, "\372\250\376\237\120"},
- {0x0A81, "\015\112\371\263"},
- {0x0A82, "\015\112\371\214"},
- {0x0A83, "\015\112\371\207"},
+ {0x0A70, "\377\204\120"},
+ {0x0A71, "\374\272\120"},
+ {0x0A72, "\375\353\120"},
+ {0x0A73, "\377\242\120"},
+ {0x0A74, "\372\250\376\240\120"},
+ {0x0A81, "\015\112\371\264"},
+ {0x0A82, "\015\112\371\215"},
+ {0x0A83, "\015\112\371\210"},
{0x0A85, "\001\112\046"},
{0x0A86, "\001\112\313"},
{0x0A87, "\001\112\072"},
{0x0A89, "\001\112\114"},
{0x0A8A, "\001\112\322"},
{0x0A8B, "\001\112\150\176"},
- {0x0A8D, "\044\112\060\371\130"},
+ {0x0A8D, "\044\112\060\371\131"},
{0x0A8F, "\001\112\060"},
{0x0A90, "\001\112\250"},
- {0x0A91, "\044\112\050\371\130"},
+ {0x0A91, "\044\112\050\371\131"},
{0x0A93, "\001\112\050"},
{0x0A94, "\001\112\274"},
{0x0A95, "\001\112\244"},
- {0x0A96, "\001\112\371\061"},
- {0x0A97, "\001\112\371\056"},
- {0x0A98, "\001\112\371\145"},
- {0x0A99, "\001\112\371\113"},
+ {0x0A96, "\001\112\371\062"},
+ {0x0A97, "\001\112\371\057"},
+ {0x0A98, "\001\112\371\146"},
+ {0x0A99, "\001\112\371\114"},
{0x0A9A, "\001\112\371\020"},
- {0x0A9B, "\001\112\371\201"},
- {0x0A9C, "\001\112\371\077"},
- {0x0A9D, "\001\112\371\226"},
- {0x0A9E, "\001\112\371\124"},
- {0x0A9F, "\001\112\371\117"},
- {0x0AA0, "\001\112\371\205"},
- {0x0AA1, "\001\112\371\134"},
- {0x0AA2, "\001\112\371\135"},
- {0x0AA3, "\001\112\371\114"},
+ {0x0A9B, "\001\112\371\202"},
+ {0x0A9C, "\001\112\371\100"},
+ {0x0A9D, "\001\112\371\227"},
+ {0x0A9E, "\001\112\371\125"},
+ {0x0A9F, "\001\112\371\120"},
+ {0x0AA0, "\001\112\371\206"},
+ {0x0AA1, "\001\112\371\135"},
+ {0x0AA2, "\001\112\371\136"},
+ {0x0AA3, "\001\112\371\115"},
{0x0AA4, "\001\112\371\017"},
- {0x0AA5, "\001\112\371\202"},
+ {0x0AA5, "\001\112\371\203"},
{0x0AA6, "\001\112\371\013"},
- {0x0AA7, "\001\112\371\137"},
+ {0x0AA7, "\001\112\371\140"},
{0x0AA8, "\001\112\371\002"},
{0x0AAA, "\001\112\371\015"},
- {0x0AAB, "\001\112\371\166"},
- {0x0AAC, "\001\112\371\052"},
- {0x0AAD, "\001\112\371\126"},
+ {0x0AAB, "\001\112\371\167"},
+ {0x0AAC, "\001\112\371\053"},
+ {0x0AAD, "\001\112\371\127"},
{0x0AAE, "\001\112\360"},
{0x0AAF, "\001\112\332"},
{0x0AB0, "\001\112\345"},
{0x0AB2, "\001\112\022"},
- {0x0AB3, "\001\112\371\156"},
- {0x0AB5, "\001\112\371\206"},
- {0x0AB6, "\001\112\371\053"},
- {0x0AB7, "\001\112\371\175"},
+ {0x0AB3, "\001\112\371\157"},
+ {0x0AB5, "\001\112\371\207"},
+ {0x0AB6, "\001\112\371\054"},
+ {0x0AB7, "\001\112\371\176"},
{0x0AB8, "\001\112\364"},
{0x0AB9, "\001\112\333"},
- {0x0ABC, "\015\112\371\376"},
+ {0x0ABC, "\015\112\371\377"},
{0x0ABD, "\015\112\372\207"},
{0x0ABE, "\044\023\112\313"},
{0x0ABF, "\044\023\112\072"},
{0x0AC1, "\044\023\112\114"},
{0x0AC2, "\044\023\112\322"},
{0x0AC3, "\044\023\112\150\176"},
- {0x0AC4, "\044\023\112\371\033\176"},
- {0x0AC5, "\044\023\112\060\371\130"},
+ {0x0AC4, "\044\023\112\371\034\176"},
+ {0x0AC5, "\044\023\112\060\371\131"},
{0x0AC7, "\044\023\112\060"},
{0x0AC8, "\044\023\112\250"},
- {0x0AC9, "\044\023\112\050\371\130"},
+ {0x0AC9, "\044\023\112\050\371\131"},
{0x0ACB, "\044\023\112\050"},
{0x0ACC, "\044\023\112\274"},
- {0x0ACD, "\015\112\371\120"},
- {0x0AD0, "\373\334\112"},
- {0x0AE0, "\001\112\371\033\176"},
- {0x0AE6, "\375\033\112\311"},
+ {0x0ACD, "\015\112\371\121"},
+ {0x0AD0, "\373\335\112"},
+ {0x0AE0, "\001\112\371\034\176"},
+ {0x0AE6, "\375\034\112\311"},
{0x0AE7, "\017\112\132"},
{0x0AE8, "\017\112\154"},
{0x0AE9, "\017\112\131"},
{0x0AED, "\017\112\221"},
{0x0AEE, "\017\112\204"},
{0x0AEF, "\017\112\235"},
- {0x0B01, "\015\111\371\263"},
- {0x0B02, "\015\111\371\214"},
- {0x0B03, "\015\111\371\207"},
+ {0x0B01, "\015\111\371\264"},
+ {0x0B02, "\015\111\371\215"},
+ {0x0B03, "\015\111\371\210"},
{0x0B05, "\001\111\046"},
{0x0B06, "\001\111\313"},
{0x0B07, "\001\111\072"},
{0x0B13, "\001\111\050"},
{0x0B14, "\001\111\274"},
{0x0B15, "\001\111\244"},
- {0x0B16, "\001\111\371\061"},
- {0x0B17, "\001\111\371\056"},
- {0x0B18, "\001\111\371\145"},
- {0x0B19, "\001\111\371\113"},
+ {0x0B16, "\001\111\371\062"},
+ {0x0B17, "\001\111\371\057"},
+ {0x0B18, "\001\111\371\146"},
+ {0x0B19, "\001\111\371\114"},
{0x0B1A, "\001\111\371\020"},
- {0x0B1B, "\001\111\371\201"},
- {0x0B1C, "\001\111\371\077"},
- {0x0B1D, "\001\111\371\226"},
- {0x0B1E, "\001\111\371\124"},
- {0x0B1F, "\001\111\371\117"},
- {0x0B20, "\001\111\371\205"},
- {0x0B21, "\001\111\371\134"},
- {0x0B22, "\001\111\371\135"},
- {0x0B23, "\001\111\371\114"},
+ {0x0B1B, "\001\111\371\202"},
+ {0x0B1C, "\001\111\371\100"},
+ {0x0B1D, "\001\111\371\227"},
+ {0x0B1E, "\001\111\371\125"},
+ {0x0B1F, "\001\111\371\120"},
+ {0x0B20, "\001\111\371\206"},
+ {0x0B21, "\001\111\371\135"},
+ {0x0B22, "\001\111\371\136"},
+ {0x0B23, "\001\111\371\115"},
{0x0B24, "\001\111\371\017"},
- {0x0B25, "\001\111\371\202"},
+ {0x0B25, "\001\111\371\203"},
{0x0B26, "\001\111\371\013"},
- {0x0B27, "\001\111\371\137"},
+ {0x0B27, "\001\111\371\140"},
{0x0B28, "\001\111\371\002"},
{0x0B2A, "\001\111\371\015"},
- {0x0B2B, "\001\111\371\166"},
- {0x0B2C, "\001\111\371\052"},
- {0x0B2D, "\001\111\371\126"},
+ {0x0B2B, "\001\111\371\167"},
+ {0x0B2C, "\001\111\371\053"},
+ {0x0B2D, "\001\111\371\127"},
{0x0B2E, "\001\111\360"},
{0x0B2F, "\001\111\332"},
{0x0B30, "\001\111\345"},
{0x0B32, "\001\111\022"},
- {0x0B33, "\001\111\371\156"},
- {0x0B36, "\001\111\371\053"},
- {0x0B37, "\001\111\371\175"},
+ {0x0B33, "\001\111\371\157"},
+ {0x0B36, "\001\111\371\054"},
+ {0x0B37, "\001\111\371\176"},
{0x0B38, "\001\111\364"},
{0x0B39, "\001\111\333"},
- {0x0B3C, "\015\111\371\376"},
+ {0x0B3C, "\015\111\371\377"},
{0x0B3D, "\015\111\372\207"},
{0x0B3E, "\044\023\111\313"},
{0x0B3F, "\044\023\111\072"},
{0x0B48, "\044\023\111\250"},
{0x0B4B, "\044\023\111\050"},
{0x0B4C, "\044\023\111\274"},
- {0x0B4D, "\015\111\371\120"},
- {0x0B56, "\134\012\371\107\111\250"},
- {0x0B57, "\134\012\371\107\111\274"},
- {0x0B5C, "\001\111\371\172"},
+ {0x0B4D, "\015\111\371\121"},
+ {0x0B56, "\134\012\371\110\111\250"},
+ {0x0B57, "\134\012\371\110\111\274"},
+ {0x0B5C, "\001\111\371\173"},
{0x0B5D, "\001\111\372\341"},
{0x0B5F, "\001\111\373\011"},
- {0x0B60, "\001\111\371\033\176"},
- {0x0B61, "\001\111\371\155\176"},
+ {0x0B60, "\001\111\371\034\176"},
+ {0x0B61, "\001\111\371\156\176"},
{0x0B66, "\017\111\311"},
{0x0B67, "\017\111\132"},
{0x0B68, "\017\111\154"},
{0x0B6D, "\017\111\221"},
{0x0B6E, "\017\111\204"},
{0x0B6F, "\017\111\235"},
- {0x0B70, "\373\242\111"},
- {0x0B82, "\015\140\371\214"},
- {0x0B83, "\015\140\371\207"},
+ {0x0B70, "\373\243\111"},
+ {0x0B82, "\015\140\371\215"},
+ {0x0B83, "\015\140\371\210"},
{0x0B85, "\001\140\046"},
{0x0B86, "\001\140\313"},
{0x0B87, "\001\140\072"},
{0x0B89, "\001\140\114"},
{0x0B8A, "\001\140\322"},
{0x0B8E, "\001\140\060"},
- {0x0B8F, "\001\140\371\055"},
+ {0x0B8F, "\001\140\371\056"},
{0x0B90, "\001\140\250"},
{0x0B92, "\001\140\050"},
- {0x0B93, "\001\140\371\063"},
+ {0x0B93, "\001\140\371\064"},
{0x0B94, "\001\140\274"},
{0x0B95, "\001\140\244"},
- {0x0B99, "\001\140\371\113"},
+ {0x0B99, "\001\140\371\114"},
{0x0B9A, "\001\140\371\020"},
- {0x0B9C, "\001\140\371\077"},
- {0x0B9E, "\001\140\371\124"},
- {0x0B9F, "\001\140\371\117"},
- {0x0BA3, "\001\140\371\114"},
+ {0x0B9C, "\001\140\371\100"},
+ {0x0B9E, "\001\140\371\125"},
+ {0x0B9F, "\001\140\371\120"},
+ {0x0BA3, "\001\140\371\115"},
{0x0BA4, "\001\140\371\017"},
{0x0BA8, "\001\140\371\002"},
- {0x0BA9, "\001\140\373\321"},
+ {0x0BA9, "\001\140\373\322"},
{0x0BAA, "\001\140\371\015"},
{0x0BAE, "\001\140\360"},
{0x0BAF, "\001\140\332"},
{0x0BB0, "\001\140\345"},
- {0x0BB1, "\001\140\371\172"},
+ {0x0BB1, "\001\140\371\173"},
{0x0BB2, "\001\140\022"},
- {0x0BB3, "\001\140\371\156"},
+ {0x0BB3, "\001\140\371\157"},
{0x0BB4, "\001\140\372\305"},
- {0x0BB5, "\001\140\371\206"},
- {0x0BB7, "\001\140\371\175"},
+ {0x0BB5, "\001\140\371\207"},
+ {0x0BB7, "\001\140\371\176"},
{0x0BB8, "\001\140\364"},
{0x0BB9, "\001\140\333"},
{0x0BBE, "\044\023\140\313"},
{0x0BC1, "\044\023\140\114"},
{0x0BC2, "\044\023\140\322"},
{0x0BC6, "\044\023\140\060"},
- {0x0BC7, "\044\023\140\371\055"},
+ {0x0BC7, "\044\023\140\371\056"},
{0x0BC8, "\044\023\140\250"},
{0x0BCA, "\044\023\140\050"},
- {0x0BCB, "\044\023\140\371\063"},
+ {0x0BCB, "\044\023\140\371\064"},
{0x0BCC, "\044\023\140\274"},
- {0x0BCD, "\015\140\371\120"},
- {0x0BD7, "\134\012\371\107\140\274"},
+ {0x0BCD, "\015\140\371\121"},
+ {0x0BD7, "\134\012\371\110\140\274"},
{0x0BE7, "\017\140\132"},
{0x0BE8, "\017\140\154"},
{0x0BE9, "\017\140\131"},
{0x0BEE, "\017\140\204"},
{0x0BEF, "\017\140\235"},
{0x0BF0, "\163\140\354"},
- {0x0BF1, "\163\140\371\222"},
- {0x0BF2, "\163\140\371\157"},
- {0x0C01, "\015\106\371\263"},
- {0x0C02, "\015\106\371\214"},
- {0x0C03, "\015\106\371\207"},
+ {0x0BF1, "\163\140\371\223"},
+ {0x0BF2, "\163\140\371\160"},
+ {0x0C01, "\015\106\371\264"},
+ {0x0C02, "\015\106\371\215"},
+ {0x0C03, "\015\106\371\210"},
{0x0C05, "\001\106\046"},
{0x0C06, "\001\106\313"},
{0x0C07, "\001\106\072"},
{0x0C0B, "\001\106\150\176"},
{0x0C0C, "\001\106\167\176"},
{0x0C0E, "\001\106\060"},
- {0x0C0F, "\001\106\371\055"},
+ {0x0C0F, "\001\106\371\056"},
{0x0C10, "\001\106\250"},
{0x0C12, "\001\106\050"},
- {0x0C13, "\001\106\371\063"},
+ {0x0C13, "\001\106\371\064"},
{0x0C14, "\001\106\274"},
{0x0C15, "\001\106\244"},
- {0x0C16, "\001\106\371\061"},
- {0x0C17, "\001\106\371\056"},
- {0x0C18, "\001\106\371\145"},
- {0x0C19, "\001\106\371\113"},
+ {0x0C16, "\001\106\371\062"},
+ {0x0C17, "\001\106\371\057"},
+ {0x0C18, "\001\106\371\146"},
+ {0x0C19, "\001\106\371\114"},
{0x0C1A, "\001\106\371\020"},
- {0x0C1B, "\001\106\371\201"},
- {0x0C1C, "\001\106\371\077"},
- {0x0C1D, "\001\106\371\226"},
- {0x0C1E, "\001\106\371\124"},
- {0x0C1F, "\001\106\371\117"},
- {0x0C20, "\001\106\371\205"},
- {0x0C21, "\001\106\371\134"},
- {0x0C22, "\001\106\371\135"},
- {0x0C23, "\001\106\371\114"},
+ {0x0C1B, "\001\106\371\202"},
+ {0x0C1C, "\001\106\371\100"},
+ {0x0C1D, "\001\106\371\227"},
+ {0x0C1E, "\001\106\371\125"},
+ {0x0C1F, "\001\106\371\120"},
+ {0x0C20, "\001\106\371\206"},
+ {0x0C21, "\001\106\371\135"},
+ {0x0C22, "\001\106\371\136"},
+ {0x0C23, "\001\106\371\115"},
{0x0C24, "\001\106\371\017"},
- {0x0C25, "\001\106\371\202"},
+ {0x0C25, "\001\106\371\203"},
{0x0C26, "\001\106\371\013"},
- {0x0C27, "\001\106\371\137"},
+ {0x0C27, "\001\106\371\140"},
{0x0C28, "\001\106\371\002"},
{0x0C2A, "\001\106\371\015"},
- {0x0C2B, "\001\106\371\166"},
- {0x0C2C, "\001\106\371\052"},
- {0x0C2D, "\001\106\371\126"},
+ {0x0C2B, "\001\106\371\167"},
+ {0x0C2C, "\001\106\371\053"},
+ {0x0C2D, "\001\106\371\127"},
{0x0C2E, "\001\106\360"},
{0x0C2F, "\001\106\332"},
{0x0C30, "\001\106\345"},
- {0x0C31, "\001\106\371\172"},
+ {0x0C31, "\001\106\371\173"},
{0x0C32, "\001\106\022"},
- {0x0C33, "\001\106\371\156"},
- {0x0C35, "\001\106\371\206"},
- {0x0C36, "\001\106\371\053"},
- {0x0C37, "\001\106\371\175"},
+ {0x0C33, "\001\106\371\157"},
+ {0x0C35, "\001\106\371\207"},
+ {0x0C36, "\001\106\371\054"},
+ {0x0C37, "\001\106\371\176"},
{0x0C38, "\001\106\364"},
{0x0C39, "\001\106\333"},
{0x0C3E, "\044\023\106\313"},
{0x0C41, "\044\023\106\114"},
{0x0C42, "\044\023\106\322"},
{0x0C43, "\044\023\106\150\176"},
- {0x0C44, "\044\023\106\371\033\176"},
+ {0x0C44, "\044\023\106\371\034\176"},
{0x0C46, "\044\023\106\060"},
- {0x0C47, "\044\023\106\371\055"},
+ {0x0C47, "\044\023\106\371\056"},
{0x0C48, "\044\023\106\250"},
{0x0C4A, "\044\023\106\050"},
- {0x0C4B, "\044\023\106\371\063"},
+ {0x0C4B, "\044\023\106\371\064"},
{0x0C4C, "\044\023\106\274"},
- {0x0C4D, "\015\106\371\120"},
- {0x0C55, "\134\012\371\107\106"},
- {0x0C56, "\134\012\371\107\106\250"},
- {0x0C60, "\001\106\371\033\176"},
- {0x0C61, "\001\106\371\155\176"},
+ {0x0C4D, "\015\106\371\121"},
+ {0x0C55, "\134\012\371\110\106"},
+ {0x0C56, "\134\012\371\110\106\250"},
+ {0x0C60, "\001\106\371\034\176"},
+ {0x0C61, "\001\106\371\156\176"},
{0x0C66, "\017\106\311"},
{0x0C67, "\017\106\132"},
{0x0C68, "\017\106\154"},
{0x0C6D, "\017\106\221"},
{0x0C6E, "\017\106\204"},
{0x0C6F, "\017\106\235"},
- {0x0C82, "\015\104\371\214"},
- {0x0C83, "\015\104\371\207"},
+ {0x0C82, "\015\104\371\215"},
+ {0x0C83, "\015\104\371\210"},
{0x0C85, "\001\104\046"},
{0x0C86, "\001\104\313"},
{0x0C87, "\001\104\072"},
{0x0C8B, "\001\104\150\176"},
{0x0C8C, "\001\104\167\176"},
{0x0C8E, "\001\104\060"},
- {0x0C8F, "\001\104\371\055"},
+ {0x0C8F, "\001\104\371\056"},
{0x0C90, "\001\104\250"},
{0x0C92, "\001\104\050"},
- {0x0C93, "\001\104\371\063"},
+ {0x0C93, "\001\104\371\064"},
{0x0C94, "\001\104\274"},
{0x0C95, "\001\104\244"},
- {0x0C96, "\001\104\371\061"},
- {0x0C97, "\001\104\371\056"},
- {0x0C98, "\001\104\371\145"},
- {0x0C99, "\001\104\371\113"},
+ {0x0C96, "\001\104\371\062"},
+ {0x0C97, "\001\104\371\057"},
+ {0x0C98, "\001\104\371\146"},
+ {0x0C99, "\001\104\371\114"},
{0x0C9A, "\001\104\371\020"},
- {0x0C9B, "\001\104\371\201"},
- {0x0C9C, "\001\104\371\077"},
- {0x0C9D, "\001\104\371\226"},
- {0x0C9E, "\001\104\371\124"},
- {0x0C9F, "\001\104\371\117"},
- {0x0CA0, "\001\104\371\205"},
- {0x0CA1, "\001\104\371\134"},
- {0x0CA2, "\001\104\371\135"},
- {0x0CA3, "\001\104\371\114"},
+ {0x0C9B, "\001\104\371\202"},
+ {0x0C9C, "\001\104\371\100"},
+ {0x0C9D, "\001\104\371\227"},
+ {0x0C9E, "\001\104\371\125"},
+ {0x0C9F, "\001\104\371\120"},
+ {0x0CA0, "\001\104\371\206"},
+ {0x0CA1, "\001\104\371\135"},
+ {0x0CA2, "\001\104\371\136"},
+ {0x0CA3, "\001\104\371\115"},
{0x0CA4, "\001\104\371\017"},
- {0x0CA5, "\001\104\371\202"},
+ {0x0CA5, "\001\104\371\203"},
{0x0CA6, "\001\104\371\013"},
- {0x0CA7, "\001\104\371\137"},
+ {0x0CA7, "\001\104\371\140"},
{0x0CA8, "\001\104\371\002"},
{0x0CAA, "\001\104\371\015"},
- {0x0CAB, "\001\104\371\166"},
- {0x0CAC, "\001\104\371\052"},
- {0x0CAD, "\001\104\371\126"},
+ {0x0CAB, "\001\104\371\167"},
+ {0x0CAC, "\001\104\371\053"},
+ {0x0CAD, "\001\104\371\127"},
{0x0CAE, "\001\104\360"},
{0x0CAF, "\001\104\332"},
{0x0CB0, "\001\104\345"},
- {0x0CB1, "\001\104\371\172"},
+ {0x0CB1, "\001\104\371\173"},
{0x0CB2, "\001\104\022"},
- {0x0CB3, "\001\104\371\156"},
- {0x0CB5, "\001\104\371\206"},
- {0x0CB6, "\001\104\371\053"},
- {0x0CB7, "\001\104\371\175"},
+ {0x0CB3, "\001\104\371\157"},
+ {0x0CB5, "\001\104\371\207"},
+ {0x0CB6, "\001\104\371\054"},
+ {0x0CB7, "\001\104\371\176"},
{0x0CB8, "\001\104\364"},
{0x0CB9, "\001\104\333"},
{0x0CBE, "\044\023\104\313"},
{0x0CC1, "\044\023\104\114"},
{0x0CC2, "\044\023\104\322"},
{0x0CC3, "\044\023\104\150\176"},
- {0x0CC4, "\044\023\104\371\033\176"},
+ {0x0CC4, "\044\023\104\371\034\176"},
{0x0CC6, "\044\023\104\060"},
- {0x0CC7, "\044\023\104\371\055"},
+ {0x0CC7, "\044\023\104\371\056"},
{0x0CC8, "\044\023\104\250"},
{0x0CCA, "\044\023\104\050"},
- {0x0CCB, "\044\023\104\371\063"},
+ {0x0CCB, "\044\023\104\371\064"},
{0x0CCC, "\044\023\104\274"},
- {0x0CCD, "\015\104\371\120"},
- {0x0CD5, "\134\012\371\107\104"},
- {0x0CD6, "\134\012\371\107\104\250"},
+ {0x0CCD, "\015\104\371\121"},
+ {0x0CD5, "\134\012\371\110\104"},
+ {0x0CD6, "\134\012\371\110\104\250"},
{0x0CDE, "\001\104\372\062"},
- {0x0CE0, "\001\104\371\033\176"},
- {0x0CE1, "\001\104\371\155\176"},
+ {0x0CE0, "\001\104\371\034\176"},
+ {0x0CE1, "\001\104\371\156\176"},
{0x0CE6, "\017\104\311"},
{0x0CE7, "\017\104\132"},
{0x0CE8, "\017\104\154"},
{0x0CED, "\017\104\221"},
{0x0CEE, "\017\104\204"},
{0x0CEF, "\017\104\235"},
- {0x0D02, "\015\113\371\214"},
- {0x0D03, "\015\113\371\207"},
+ {0x0D02, "\015\113\371\215"},
+ {0x0D03, "\015\113\371\210"},
{0x0D05, "\001\113\046"},
{0x0D06, "\001\113\313"},
{0x0D07, "\001\113\072"},
{0x0D0B, "\001\113\150\176"},
{0x0D0C, "\001\113\167\176"},
{0x0D0E, "\001\113\060"},
- {0x0D0F, "\001\113\371\055"},
+ {0x0D0F, "\001\113\371\056"},
{0x0D10, "\001\113\250"},
{0x0D12, "\001\113\050"},
- {0x0D13, "\001\113\371\063"},
+ {0x0D13, "\001\113\371\064"},
{0x0D14, "\001\113\274"},
{0x0D15, "\001\113\244"},
- {0x0D16, "\001\113\371\061"},
- {0x0D17, "\001\113\371\056"},
- {0x0D18, "\001\113\371\145"},
- {0x0D19, "\001\113\371\113"},
+ {0x0D16, "\001\113\371\062"},
+ {0x0D17, "\001\113\371\057"},
+ {0x0D18, "\001\113\371\146"},
+ {0x0D19, "\001\113\371\114"},
{0x0D1A, "\001\113\371\020"},
- {0x0D1B, "\001\113\371\201"},
- {0x0D1C, "\001\113\371\077"},
- {0x0D1D, "\001\113\371\226"},
- {0x0D1E, "\001\113\371\124"},
- {0x0D1F, "\001\113\371\117"},
- {0x0D20, "\001\113\371\205"},
- {0x0D21, "\001\113\371\134"},
- {0x0D22, "\001\113\371\135"},
- {0x0D23, "\001\113\371\114"},
+ {0x0D1B, "\001\113\371\202"},
+ {0x0D1C, "\001\113\371\100"},
+ {0x0D1D, "\001\113\371\227"},
+ {0x0D1E, "\001\113\371\125"},
+ {0x0D1F, "\001\113\371\120"},
+ {0x0D20, "\001\113\371\206"},
+ {0x0D21, "\001\113\371\135"},
+ {0x0D22, "\001\113\371\136"},
+ {0x0D23, "\001\113\371\115"},
{0x0D24, "\001\113\371\017"},
- {0x0D25, "\001\113\371\202"},
+ {0x0D25, "\001\113\371\203"},
{0x0D26, "\001\113\371\013"},
- {0x0D27, "\001\113\371\137"},
+ {0x0D27, "\001\113\371\140"},
{0x0D28, "\001\113\371\002"},
{0x0D2A, "\001\113\371\015"},
- {0x0D2B, "\001\113\371\166"},
- {0x0D2C, "\001\113\371\052"},
- {0x0D2D, "\001\113\371\126"},
+ {0x0D2B, "\001\113\371\167"},
+ {0x0D2C, "\001\113\371\053"},
+ {0x0D2D, "\001\113\371\127"},
{0x0D2E, "\001\113\360"},
{0x0D2F, "\001\113\332"},
{0x0D30, "\001\113\345"},
- {0x0D31, "\001\113\371\172"},
+ {0x0D31, "\001\113\371\173"},
{0x0D32, "\001\113\022"},
- {0x0D33, "\001\113\371\156"},
+ {0x0D33, "\001\113\371\157"},
{0x0D34, "\001\113\372\305"},
- {0x0D35, "\001\113\371\206"},
- {0x0D36, "\001\113\371\053"},
- {0x0D37, "\001\113\371\175"},
+ {0x0D35, "\001\113\371\207"},
+ {0x0D36, "\001\113\371\054"},
+ {0x0D37, "\001\113\371\176"},
{0x0D38, "\001\113\364"},
{0x0D39, "\001\113\333"},
{0x0D3E, "\044\023\113\313"},
{0x0D42, "\044\023\113\322"},
{0x0D43, "\044\023\113\150\176"},
{0x0D46, "\044\023\113\060"},
- {0x0D47, "\044\023\113\371\055"},
+ {0x0D47, "\044\023\113\371\056"},
{0x0D48, "\044\023\113\250"},
{0x0D4A, "\044\023\113\050"},
- {0x0D4B, "\044\023\113\371\063"},
+ {0x0D4B, "\044\023\113\371\064"},
{0x0D4C, "\044\023\113\274"},
- {0x0D4D, "\015\113\371\120"},
- {0x0D57, "\134\012\371\107\113\274"},
- {0x0D60, "\001\113\371\033\176"},
- {0x0D61, "\001\113\371\155\176"},
+ {0x0D4D, "\015\113\371\121"},
+ {0x0D57, "\134\012\371\110\113\274"},
+ {0x0D60, "\001\113\371\034\176"},
+ {0x0D61, "\001\113\371\156\176"},
{0x0D66, "\017\113\311"},
{0x0D67, "\017\113\132"},
{0x0D68, "\017\113\154"},
{0x0D6D, "\017\113\221"},
{0x0D6E, "\017\113\204"},
{0x0D6F, "\017\113\235"},
- {0x0E01, "\074\073\371\237\375\377"},
- {0x0E02, "\074\073\371\236\376\011"},
- {0x0E03, "\074\073\371\236\376\014"},
- {0x0E04, "\074\073\371\236\376\015"},
- {0x0E05, "\074\073\371\236\376\013"},
- {0x0E06, "\074\073\371\236\376\372"},
- {0x0E07, "\074\073\373\314\376\201"},
- {0x0E08, "\074\073\377\205\377\157"},
- {0x0E09, "\074\073\372\164\377\162"},
- {0x0E0A, "\074\073\372\164\377\160"},
- {0x0E0B, "\074\073\371\045\371\045"},
- {0x0E0C, "\074\073\372\164\377\164"},
- {0x0E0D, "\074\073\371\021\377\305"},
- {0x0E0E, "\074\073\371\353\377\156"},
- {0x0E0F, "\074\073\371\253\376\277"},
- {0x0E10, "\074\073\371\070\372\370"},
- {0x0E11, "\074\073\371\070\376\172"},
- {0x0E12, "\074\073\371\070\376\317"},
- {0x0E13, "\074\073\371\163\376\176"},
- {0x0E14, "\074\073\371\353\375\125"},
- {0x0E15, "\074\073\371\253\377\144"},
- {0x0E16, "\074\073\371\070\377\200"},
- {0x0E17, "\074\073\371\070\377\175"},
- {0x0E18, "\074\073\371\070\377\177"},
- {0x0E19, "\074\073\371\163\376\217"},
- {0x0E1A, "\074\073\372\045\374\351"},
- {0x0E1B, "\074\073\372\126\376\332"},
- {0x0E1C, "\074\073\372\006\376\316"},
+ {0x0E01, "\074\073\371\240\376\001"},
+ {0x0E02, "\074\073\371\237\376\012"},
+ {0x0E03, "\074\073\371\237\376\015"},
+ {0x0E04, "\074\073\371\237\376\016"},
+ {0x0E05, "\074\073\371\237\376\014"},
+ {0x0E06, "\074\073\371\237\376\373"},
+ {0x0E07, "\074\073\373\315\376\202"},
+ {0x0E08, "\074\073\377\206\377\160"},
+ {0x0E09, "\074\073\372\164\377\163"},
+ {0x0E0A, "\074\073\372\164\377\161"},
+ {0x0E0B, "\074\073\371\046\371\046"},
+ {0x0E0C, "\074\073\372\164\377\165"},
+ {0x0E0D, "\074\073\371\021\377\306"},
+ {0x0E0E, "\074\073\371\354\377\157"},
+ {0x0E0F, "\074\073\371\254\376\300"},
+ {0x0E10, "\074\073\371\071\372\370"},
+ {0x0E11, "\074\073\371\071\376\173"},
+ {0x0E12, "\074\073\371\071\376\320"},
+ {0x0E13, "\074\073\371\164\376\177"},
+ {0x0E14, "\074\073\371\354\375\126"},
+ {0x0E15, "\074\073\371\254\377\145"},
+ {0x0E16, "\074\073\371\071\377\201"},
+ {0x0E17, "\074\073\371\071\377\176"},
+ {0x0E18, "\074\073\371\071\377\200"},
+ {0x0E19, "\074\073\371\164\376\220"},
+ {0x0E1A, "\074\073\372\045\374\352"},
+ {0x0E1B, "\074\073\372\126\376\333"},
+ {0x0E1C, "\074\073\372\007\376\317"},
{0x0E1D, "\074\073\372\064\372\062"},
- {0x0E1E, "\074\073\372\006\376\313"},
- {0x0E1F, "\074\073\372\064\375\221"},
- {0x0E20, "\074\073\372\006\377\046"},
- {0x0E21, "\074\073\371\240\360"},
- {0x0E22, "\074\073\371\021\377\301"},
- {0x0E23, "\074\073\372\014\377\022"},
- {0x0E24, "\074\073\377\021"},
- {0x0E25, "\074\073\371\373\373\264"},
- {0x0E26, "\074\073\376\065"},
- {0x0E27, "\074\073\371\122\377\271"},
- {0x0E28, "\074\073\371\045\377\041"},
- {0x0E29, "\074\073\371\045\377\025"},
- {0x0E2A, "\074\073\371\045\377\114"},
- {0x0E2B, "\074\073\371\060\375\302"},
- {0x0E2C, "\074\073\371\373\377\172"},
- {0x0E2D, "\074\073\050\373\030"},
- {0x0E2E, "\074\073\371\060\376\211"},
- {0x0E2F, "\074\073\376\264"},
+ {0x0E1E, "\074\073\372\007\376\314"},
+ {0x0E1F, "\074\073\372\064\375\222"},
+ {0x0E20, "\074\073\372\007\377\047"},
+ {0x0E21, "\074\073\371\241\360"},
+ {0x0E22, "\074\073\371\021\377\302"},
+ {0x0E23, "\074\073\372\015\377\023"},
+ {0x0E24, "\074\073\377\022"},
+ {0x0E25, "\074\073\371\374\373\265"},
+ {0x0E26, "\074\073\376\066"},
+ {0x0E27, "\074\073\371\123\377\272"},
+ {0x0E28, "\074\073\371\046\377\042"},
+ {0x0E29, "\074\073\371\046\377\026"},
+ {0x0E2A, "\074\073\371\046\377\115"},
+ {0x0E2B, "\074\073\371\061\375\303"},
+ {0x0E2C, "\074\073\371\374\377\173"},
+ {0x0E2D, "\074\073\050\373\031"},
+ {0x0E2E, "\074\073\371\061\376\212"},
+ {0x0E2F, "\074\073\376\265"},
{0x0E30, "\074\073\371\006\046"},
- {0x0E31, "\074\073\371\030\375\273\374\274"},
+ {0x0E31, "\074\073\371\031\375\274\374\275"},
{0x0E32, "\074\073\371\006\313"},
{0x0E33, "\074\073\371\006\372\204"},
{0x0E34, "\074\073\371\006\072"},
{0x0E35, "\074\073\371\006\317"},
- {0x0E36, "\074\073\371\006\376\255"},
- {0x0E37, "\074\073\371\006\376\256"},
+ {0x0E36, "\074\073\371\006\376\256"},
+ {0x0E37, "\074\073\371\006\376\257"},
{0x0E38, "\074\073\371\006\114"},
{0x0E39, "\074\073\371\006\322"},
- {0x0E3A, "\074\073\376\314"},
- {0x0E3F, "\015\371\161\073\374\350"},
+ {0x0E3A, "\074\073\376\315"},
+ {0x0E3F, "\015\371\162\073\374\351"},
{0x0E40, "\074\073\371\006\060"},
{0x0E41, "\074\073\371\006\372\036"},
{0x0E42, "\074\073\371\006\050"},
- {0x0E43, "\074\073\371\006\250\376\074"},
- {0x0E44, "\074\073\371\006\250\376\073"},
- {0x0E45, "\074\073\376\046"},
- {0x0E46, "\074\073\376\077"},
- {0x0E47, "\074\073\376\076"},
- {0x0E48, "\074\073\371\030\372\250"},
- {0x0E49, "\074\073\371\030\371\070"},
- {0x0E4A, "\074\073\371\030\377\223"},
- {0x0E4B, "\074\073\371\030\377\161"},
- {0x0E4C, "\074\073\377\176"},
- {0x0E4D, "\074\073\376\203"},
- {0x0E4E, "\074\073\377\302"},
- {0x0E4F, "\074\073\375\235"},
+ {0x0E43, "\074\073\371\006\250\376\075"},
+ {0x0E44, "\074\073\371\006\250\376\074"},
+ {0x0E45, "\074\073\376\047"},
+ {0x0E46, "\074\073\376\100"},
+ {0x0E47, "\074\073\376\077"},
+ {0x0E48, "\074\073\371\031\372\250"},
+ {0x0E49, "\074\073\371\031\371\071"},
+ {0x0E4A, "\074\073\371\031\377\224"},
+ {0x0E4B, "\074\073\371\031\377\162"},
+ {0x0E4C, "\074\073\377\177"},
+ {0x0E4D, "\074\073\376\204"},
+ {0x0E4E, "\074\073\377\303"},
+ {0x0E4F, "\074\073\375\236"},
{0x0E50, "\017\073\311"},
{0x0E51, "\017\073\132"},
{0x0E52, "\017\073\154"},
{0x0E57, "\017\073\221"},
{0x0E58, "\017\073\204"},
{0x0E59, "\017\073\235"},
- {0x0E5A, "\074\073\374\306"},
- {0x0E5B, "\074\073\376\012"},
- {0x0E81, "\001\170\371\237"},
- {0x0E82, "\001\170\371\236\371\320"},
- {0x0E84, "\001\170\371\236\371\324"},
- {0x0E87, "\001\170\373\314"},
+ {0x0E5A, "\074\073\374\307"},
+ {0x0E5B, "\074\073\376\013"},
+ {0x0E81, "\001\170\371\240"},
+ {0x0E82, "\001\170\371\237\371\321"},
+ {0x0E84, "\001\170\371\237\371\325"},
+ {0x0E87, "\001\170\373\315"},
{0x0E88, "\001\170\372\164"},
- {0x0E8A, "\001\170\371\045\371\324"},
- {0x0E8D, "\001\170\374\157"},
- {0x0E94, "\001\170\371\353"},
- {0x0E95, "\001\170\371\253"},
- {0x0E96, "\001\170\371\070\371\320"},
- {0x0E97, "\001\170\371\070\371\324"},
- {0x0E99, "\001\170\371\163"},
+ {0x0E8A, "\001\170\371\046\371\325"},
+ {0x0E8D, "\001\170\374\160"},
+ {0x0E94, "\001\170\371\354"},
+ {0x0E95, "\001\170\371\254"},
+ {0x0E96, "\001\170\371\071\371\321"},
+ {0x0E97, "\001\170\371\071\371\325"},
+ {0x0E99, "\001\170\371\164"},
{0x0E9A, "\001\170\372\045"},
{0x0E9B, "\001\170\372\126"},
- {0x0E9C, "\001\170\372\006\371\320"},
- {0x0E9D, "\001\170\372\064\371\324"},
- {0x0E9E, "\001\170\372\006\371\324"},
- {0x0E9F, "\001\170\372\064\371\320"},
- {0x0EA1, "\001\170\371\240"},
+ {0x0E9C, "\001\170\372\007\371\321"},
+ {0x0E9D, "\001\170\372\064\371\325"},
+ {0x0E9E, "\001\170\372\007\371\325"},
+ {0x0E9F, "\001\170\372\064\371\321"},
+ {0x0EA1, "\001\170\371\241"},
{0x0EA2, "\001\170\371\021"},
- {0x0EA3, "\001\170\371\373\373\264"},
- {0x0EA5, "\001\170\371\373\376\066"},
- {0x0EA7, "\001\170\371\122"},
- {0x0EAA, "\001\170\371\045\371\320"},
- {0x0EAB, "\001\170\371\060\371\320"},
+ {0x0EA3, "\001\170\371\374\373\265"},
+ {0x0EA5, "\001\170\371\374\376\067"},
+ {0x0EA7, "\001\170\371\123"},
+ {0x0EAA, "\001\170\371\046\371\321"},
+ {0x0EAB, "\001\170\371\061\371\321"},
{0x0EAD, "\001\170\050"},
- {0x0EAE, "\001\170\371\060\371\324"},
- {0x0EAF, "\220\012\374\062\376\047"},
+ {0x0EAE, "\001\170\371\061\371\325"},
+ {0x0EAF, "\220\012\374\063\376\050"},
{0x0EB0, "\044\023\170\046"},
- {0x0EB1, "\044\023\170\371\030\372\273"},
+ {0x0EB1, "\044\023\170\371\031\372\273"},
{0x0EB2, "\044\023\170\313"},
{0x0EB3, "\044\023\170\372\204"},
{0x0EB4, "\044\023\170\072"},
{0x0EB5, "\044\023\170\317"},
{0x0EB6, "\044\023\170\107"},
- {0x0EB7, "\044\023\170\377\243"},
+ {0x0EB7, "\044\023\170\377\244"},
{0x0EB8, "\044\023\170\114"},
{0x0EB9, "\044\023\170\322"},
- {0x0EBB, "\044\023\170\371\030\376\027"},
- {0x0EBC, "\373\125\023\170\371\373"},
- {0x0EBD, "\373\125\023\170\374\157"},
+ {0x0EBB, "\044\023\170\371\031\376\030"},
+ {0x0EBC, "\373\126\023\170\371\374"},
+ {0x0EBD, "\373\126\023\170\374\160"},
{0x0EC0, "\044\023\170\060"},
- {0x0EC1, "\044\023\170\373\146"},
+ {0x0EC1, "\044\023\170\373\147"},
{0x0EC2, "\044\023\170\050"},
- {0x0EC3, "\044\023\170\374\345"},
+ {0x0EC3, "\044\023\170\374\346"},
{0x0EC4, "\044\023\170\250"},
- {0x0EC6, "\371\237\022\325"},
- {0x0EC8, "\153\012\272\325\371\030\372\250"},
- {0x0EC9, "\153\012\272\325\371\030\371\070"},
- {0x0ECA, "\153\012\272\325\371\030\372\022"},
- {0x0ECB, "\153\012\272\325\371\030\375\015"},
- {0x0ECC, "\134\373\106\325"},
- {0x0ECD, "\376\202\325"},
+ {0x0EC6, "\371\240\022\325"},
+ {0x0EC8, "\153\012\272\325\371\031\372\250"},
+ {0x0EC9, "\153\012\272\325\371\031\371\071"},
+ {0x0ECA, "\153\012\272\325\371\031\372\023"},
+ {0x0ECB, "\153\012\272\325\371\031\375\016"},
+ {0x0ECC, "\134\373\107\325"},
+ {0x0ECD, "\376\203\325"},
{0x0ED0, "\017\325\311"},
{0x0ED1, "\017\325\132"},
{0x0ED2, "\017\325\154"},
{0x0ED7, "\017\325\221"},
{0x0ED8, "\017\325\204"},
{0x0ED9, "\017\325\235"},
- {0x0EDC, "\371\060\371\163\325"},
- {0x0EDD, "\371\060\371\240\325"},
+ {0x0EDC, "\371\061\371\164\325"},
+ {0x0EDD, "\371\061\371\241\325"},
{0x10A0, "\001\202\116\372\205"},
- {0x10A1, "\001\202\116\373\042"},
- {0x10A2, "\001\202\116\373\203"},
- {0x10A3, "\001\202\116\373\136"},
+ {0x10A1, "\001\202\116\373\043"},
+ {0x10A2, "\001\202\116\373\204"},
+ {0x10A3, "\001\202\116\373\137"},
{0x10A4, "\001\202\116\007"},
- {0x10A5, "\001\202\116\374\114"},
- {0x10A6, "\001\202\116\374\065"},
+ {0x10A5, "\001\202\116\374\115"},
+ {0x10A6, "\001\202\116\374\066"},
{0x10A7, "\001\202\116\372\370"},
{0x10A8, "\001\202\116\372\264"},
- {0x10A9, "\001\202\116\373\064"},
- {0x10AA, "\001\202\116\373\262"},
- {0x10AB, "\001\202\116\373\271"},
- {0x10AC, "\001\202\116\373\313"},
- {0x10AD, "\001\202\116\373\335"},
- {0x10AE, "\001\202\116\371\041"},
- {0x10AF, "\001\202\116\374\043"},
- {0x10B0, "\001\202\116\374\011"},
- {0x10B1, "\001\202\116\374\034"},
- {0x10B2, "\001\202\116\374\070"},
+ {0x10A9, "\001\202\116\373\065"},
+ {0x10AA, "\001\202\116\373\263"},
+ {0x10AB, "\001\202\116\373\272"},
+ {0x10AC, "\001\202\116\373\314"},
+ {0x10AD, "\001\202\116\373\336"},
+ {0x10AE, "\001\202\116\371\042"},
+ {0x10AF, "\001\202\116\374\044"},
+ {0x10B0, "\001\202\116\374\012"},
+ {0x10B1, "\001\202\116\374\035"},
+ {0x10B2, "\001\202\116\374\071"},
{0x10B3, "\001\202\116\132"},
- {0x10B4, "\001\202\116\373\156"},
+ {0x10B4, "\001\202\116\373\157"},
{0x10B5, "\001\202\116\372\273"},
- {0x10B6, "\001\202\116\373\206"},
- {0x10B7, "\001\202\116\373\102"},
- {0x10B8, "\001\202\116\374\040"},
- {0x10B9, "\001\202\116\373\071"},
- {0x10BA, "\001\202\116\374\152"},
- {0x10BB, "\001\202\116\374\147"},
- {0x10BC, "\001\202\116\374\153"},
- {0x10BD, "\001\202\116\373\060"},
- {0x10BE, "\001\202\116\373\067"},
- {0x10BF, "\001\202\116\373\210"},
- {0x10C0, "\001\202\116\373\221"},
- {0x10C1, "\001\202\116\371\103"},
- {0x10C2, "\001\202\116\373\224"},
- {0x10C3, "\001\202\116\372\033"},
- {0x10C4, "\001\202\116\373\222"},
- {0x10C5, "\001\202\116\373\223"},
+ {0x10B6, "\001\202\116\373\207"},
+ {0x10B7, "\001\202\116\373\103"},
+ {0x10B8, "\001\202\116\374\041"},
+ {0x10B9, "\001\202\116\373\072"},
+ {0x10BA, "\001\202\116\374\153"},
+ {0x10BB, "\001\202\116\374\150"},
+ {0x10BC, "\001\202\116\374\154"},
+ {0x10BD, "\001\202\116\373\061"},
+ {0x10BE, "\001\202\116\373\070"},
+ {0x10BF, "\001\202\116\373\211"},
+ {0x10C0, "\001\202\116\373\222"},
+ {0x10C1, "\001\202\116\371\104"},
+ {0x10C2, "\001\202\116\373\225"},
+ {0x10C3, "\001\202\116\372\034"},
+ {0x10C4, "\001\202\116\373\223"},
+ {0x10C5, "\001\202\116\373\224"},
{0x10D0, "\001\116\372\205"},
- {0x10D1, "\001\116\373\042"},
- {0x10D2, "\001\116\373\203"},
- {0x10D3, "\001\116\373\136"},
+ {0x10D1, "\001\116\373\043"},
+ {0x10D2, "\001\116\373\204"},
+ {0x10D3, "\001\116\373\137"},
{0x10D4, "\001\116\007"},
- {0x10D5, "\001\116\374\114"},
- {0x10D6, "\001\116\374\065"},
+ {0x10D5, "\001\116\374\115"},
+ {0x10D6, "\001\116\374\066"},
{0x10D7, "\001\116\372\370"},
{0x10D8, "\001\116\372\264"},
- {0x10D9, "\001\116\373\064"},
- {0x10DA, "\001\116\373\262"},
- {0x10DB, "\001\116\373\271"},
- {0x10DC, "\001\116\373\313"},
- {0x10DD, "\001\116\373\335"},
- {0x10DE, "\001\116\371\041"},
- {0x10DF, "\001\116\374\043"},
- {0x10E0, "\001\116\374\011"},
- {0x10E1, "\001\116\374\034"},
- {0x10E2, "\001\116\374\070"},
+ {0x10D9, "\001\116\373\065"},
+ {0x10DA, "\001\116\373\263"},
+ {0x10DB, "\001\116\373\272"},
+ {0x10DC, "\001\116\373\314"},
+ {0x10DD, "\001\116\373\336"},
+ {0x10DE, "\001\116\371\042"},
+ {0x10DF, "\001\116\374\044"},
+ {0x10E0, "\001\116\374\012"},
+ {0x10E1, "\001\116\374\035"},
+ {0x10E2, "\001\116\374\071"},
{0x10E3, "\001\116\132"},
- {0x10E4, "\001\116\373\156"},
+ {0x10E4, "\001\116\373\157"},
{0x10E5, "\001\116\372\273"},
- {0x10E6, "\001\116\373\206"},
- {0x10E7, "\001\116\373\102"},
- {0x10E8, "\001\116\374\040"},
- {0x10E9, "\001\116\373\071"},
- {0x10EA, "\001\116\374\152"},
- {0x10EB, "\001\116\374\147"},
- {0x10EC, "\001\116\374\153"},
- {0x10ED, "\001\116\373\060"},
- {0x10EE, "\001\116\373\067"},
- {0x10EF, "\001\116\373\210"},
- {0x10F0, "\001\116\373\221"},
- {0x10F1, "\001\116\371\103"},
- {0x10F2, "\001\116\373\224"},
- {0x10F3, "\001\116\372\033"},
- {0x10F4, "\001\116\373\222"},
- {0x10F5, "\001\116\373\223"},
- {0x10F6, "\001\116\373\162"},
- {0x10FB, "\371\007\012\372\324\375\270"},
- {0x1100, "\010\067\371\154"},
+ {0x10E6, "\001\116\373\207"},
+ {0x10E7, "\001\116\373\103"},
+ {0x10E8, "\001\116\374\041"},
+ {0x10E9, "\001\116\373\072"},
+ {0x10EA, "\001\116\374\153"},
+ {0x10EB, "\001\116\374\150"},
+ {0x10EC, "\001\116\374\154"},
+ {0x10ED, "\001\116\373\061"},
+ {0x10EE, "\001\116\373\070"},
+ {0x10EF, "\001\116\373\211"},
+ {0x10F0, "\001\116\373\222"},
+ {0x10F1, "\001\116\371\104"},
+ {0x10F2, "\001\116\373\225"},
+ {0x10F3, "\001\116\372\034"},
+ {0x10F4, "\001\116\373\223"},
+ {0x10F5, "\001\116\373\224"},
+ {0x10F6, "\001\116\373\163"},
+ {0x10FB, "\371\007\012\372\324\375\271"},
+ {0x1100, "\010\067\371\155"},
{0x1101, "\010\067\372\157"},
- {0x1102, "\010\067\371\162"},
- {0x1103, "\010\067\371\203"},
+ {0x1102, "\010\067\371\163"},
+ {0x1103, "\010\067\371\204"},
{0x1104, "\010\067\372\364"},
- {0x1105, "\010\067\371\171"},
- {0x1106, "\010\067\371\160"},
- {0x1107, "\010\067\371\167"},
+ {0x1105, "\010\067\371\172"},
+ {0x1106, "\010\067\371\161"},
+ {0x1107, "\010\067\371\170"},
{0x1108, "\010\067\372\362"},
- {0x1109, "\010\067\371\173"},
+ {0x1109, "\010\067\371\174"},
{0x110A, "\010\067\372\160"},
- {0x110B, "\010\067\371\151"},
- {0x110C, "\010\067\371\116"},
+ {0x110B, "\010\067\371\152"},
+ {0x110C, "\010\067\371\117"},
{0x110D, "\010\067\372\363"},
- {0x110E, "\010\067\371\200"},
- {0x110F, "\010\067\371\153"},
- {0x1110, "\010\067\371\177"},
- {0x1111, "\010\067\371\165"},
- {0x1112, "\010\067\371\147"},
- {0x1113, "\010\067\373\315"},
- {0x1114, "\010\067\374\054"},
+ {0x110E, "\010\067\371\201"},
+ {0x110F, "\010\067\371\154"},
+ {0x1110, "\010\067\371\200"},
+ {0x1111, "\010\067\371\166"},
+ {0x1112, "\010\067\371\150"},
+ {0x1113, "\010\067\373\316"},
+ {0x1114, "\010\067\374\055"},
{0x1115, "\010\067\372\317"},
- {0x1116, "\010\067\376\204"},
- {0x1117, "\010\067\374\077"},
- {0x1118, "\010\067\374\024"},
- {0x1119, "\010\067\374\055"},
+ {0x1116, "\010\067\376\205"},
+ {0x1117, "\010\067\374\100"},
+ {0x1118, "\010\067\374\025"},
+ {0x1119, "\010\067\374\056"},
{0x111A, "\010\067\372\145"},
- {0x111B, "\010\067\376\002"},
+ {0x111B, "\010\067\376\003"},
{0x111C, "\010\067\372\310"},
{0x111D, "\010\067\372\275"},
- {0x111E, "\010\067\373\356"},
- {0x111F, "\010\067\376\324"},
- {0x1120, "\010\067\373\364"},
+ {0x111E, "\010\067\373\357"},
+ {0x111F, "\010\067\376\325"},
+ {0x1120, "\010\067\373\365"},
{0x1121, "\010\067\372\125"},
- {0x1122, "\010\067\373\360"},
- {0x1123, "\010\067\373\361"},
- {0x1124, "\010\067\376\326"},
- {0x1125, "\010\067\376\330"},
- {0x1126, "\010\067\376\327"},
- {0x1127, "\010\067\373\363"},
- {0x1128, "\010\067\376\331"},
- {0x1129, "\010\067\373\362"},
- {0x112A, "\010\067\373\357"},
+ {0x1122, "\010\067\373\361"},
+ {0x1123, "\010\067\373\362"},
+ {0x1124, "\010\067\376\327"},
+ {0x1125, "\010\067\376\331"},
+ {0x1126, "\010\067\376\330"},
+ {0x1127, "\010\067\373\364"},
+ {0x1128, "\010\067\376\332"},
+ {0x1129, "\010\067\373\363"},
+ {0x112A, "\010\067\373\360"},
{0x112B, "\010\067\372\277"},
- {0x112C, "\010\067\373\246"},
+ {0x112C, "\010\067\373\247"},
{0x112D, "\010\067\372\354"},
- {0x112E, "\010\067\374\045"},
+ {0x112E, "\010\067\374\046"},
{0x112F, "\010\067\372\356"},
- {0x1130, "\010\067\374\046"},
- {0x1131, "\010\067\377\101"},
+ {0x1130, "\010\067\374\047"},
+ {0x1131, "\010\067\377\102"},
{0x1132, "\010\067\372\355"},
- {0x1133, "\010\067\377\103"},
- {0x1134, "\010\067\377\104"},
- {0x1135, "\010\067\377\077"},
- {0x1136, "\010\067\374\047"},
- {0x1137, "\010\067\377\106"},
- {0x1138, "\010\067\377\100"},
- {0x1139, "\010\067\377\105"},
- {0x113A, "\010\067\377\102"},
- {0x113B, "\010\067\377\076"},
- {0x113C, "\010\067\377\147"},
- {0x113D, "\010\067\377\150"},
- {0x113E, "\010\067\377\165"},
- {0x113F, "\010\067\377\166"},
+ {0x1133, "\010\067\377\104"},
+ {0x1134, "\010\067\377\105"},
+ {0x1135, "\010\067\377\100"},
+ {0x1136, "\010\067\374\050"},
+ {0x1137, "\010\067\377\107"},
+ {0x1138, "\010\067\377\101"},
+ {0x1139, "\010\067\377\106"},
+ {0x113A, "\010\067\377\103"},
+ {0x113B, "\010\067\377\077"},
+ {0x113C, "\010\067\377\150"},
+ {0x113D, "\010\067\377\151"},
+ {0x113E, "\010\067\377\166"},
+ {0x113F, "\010\067\377\167"},
{0x1140, "\010\067\372\323"},
- {0x1141, "\010\067\373\243"},
- {0x1142, "\010\067\375\366"},
- {0x1143, "\010\067\375\355"},
- {0x1144, "\010\067\375\360"},
- {0x1145, "\010\067\375\361"},
- {0x1146, "\010\067\375\357"},
+ {0x1141, "\010\067\373\244"},
+ {0x1142, "\010\067\375\367"},
+ {0x1143, "\010\067\375\356"},
+ {0x1144, "\010\067\375\361"},
+ {0x1145, "\010\067\375\362"},
+ {0x1146, "\010\067\375\360"},
{0x1147, "\010\067\372\361"},
- {0x1148, "\010\067\375\365"},
- {0x1149, "\010\067\375\364"},
- {0x114A, "\010\067\375\363"},
- {0x114B, "\010\067\375\356"},
+ {0x1148, "\010\067\375\366"},
+ {0x1149, "\010\067\375\365"},
+ {0x114A, "\010\067\375\364"},
+ {0x114B, "\010\067\375\357"},
{0x114C, "\010\067\373\006"},
- {0x114D, "\010\067\377\163"},
- {0x114E, "\010\067\377\153"},
- {0x114F, "\010\067\377\151"},
- {0x1150, "\010\067\377\171"},
- {0x1151, "\010\067\377\167"},
- {0x1152, "\010\067\377\155"},
- {0x1153, "\010\067\377\154"},
- {0x1154, "\010\067\377\152"},
- {0x1155, "\010\067\377\170"},
- {0x1156, "\010\067\373\344"},
+ {0x114D, "\010\067\377\164"},
+ {0x114E, "\010\067\377\154"},
+ {0x114F, "\010\067\377\152"},
+ {0x1150, "\010\067\377\172"},
+ {0x1151, "\010\067\377\170"},
+ {0x1152, "\010\067\377\156"},
+ {0x1153, "\010\067\377\155"},
+ {0x1154, "\010\067\377\153"},
+ {0x1155, "\010\067\377\171"},
+ {0x1156, "\010\067\373\345"},
{0x1157, "\010\067\372\276"},
- {0x1158, "\010\067\374\053"},
+ {0x1158, "\010\067\374\054"},
{0x1159, "\010\067\373\010"},
- {0x115F, "\371\340\010\067"},
- {0x1160, "\371\340\010\127"},
+ {0x115F, "\371\341\010\067"},
+ {0x1160, "\371\341\010\127"},
{0x1161, "\010\127\046"},
{0x1162, "\010\127\373\015"},
{0x1163, "\010\127\332"},
{0x1164, "\010\127\373\012"},
{0x1165, "\010\127\050"},
- {0x1166, "\010\127\371\257"},
+ {0x1166, "\010\127\371\260"},
{0x1167, "\010\127\371\021"},
{0x1168, "\010\127\373\013"},
{0x1169, "\010\127\373\020"},
- {0x116A, "\010\127\371\121"},
+ {0x116A, "\010\127\371\122"},
{0x116B, "\010\127\373\004"},
{0x116C, "\010\127\372\251"},
{0x116D, "\010\127\373\014"},
{0x116E, "\010\127\114"},
- {0x116F, "\010\127\371\122"},
+ {0x116F, "\010\127\371\123"},
{0x1170, "\010\127\373\005"},
- {0x1171, "\010\127\371\330"},
- {0x1172, "\010\127\371\050"},
+ {0x1171, "\010\127\371\331"},
+ {0x1172, "\010\127\371\051"},
{0x1173, "\010\127\373\021"},
{0x1174, "\010\127\373\022"},
{0x1175, "\010\127\072"},
- {0x1176, "\010\127\374\262"},
- {0x1177, "\010\127\374\261"},
- {0x1178, "\010\127\377\276"},
- {0x1179, "\010\127\377\275"},
- {0x117A, "\010\127\376\231"},
- {0x117B, "\010\127\376\230"},
- {0x117C, "\010\127\376\232"},
- {0x117D, "\010\127\377\307"},
- {0x117E, "\010\127\377\306"},
- {0x117F, "\010\127\377\335"},
- {0x1180, "\010\127\377\340"},
- {0x1181, "\010\127\377\337"},
- {0x1182, "\010\127\377\341"},
- {0x1183, "\010\127\377\336"},
- {0x1184, "\010\127\374\142"},
- {0x1185, "\010\127\374\143"},
- {0x1186, "\010\127\377\317"},
- {0x1187, "\010\127\377\320"},
- {0x1188, "\010\127\374\141"},
- {0x1189, "\010\127\376\250"},
- {0x118A, "\010\127\376\254"},
- {0x118B, "\010\127\376\251"},
- {0x118C, "\010\127\376\253"},
- {0x118D, "\010\127\376\252"},
- {0x118E, "\010\127\377\311"},
- {0x118F, "\010\127\377\312"},
- {0x1190, "\010\127\377\314"},
- {0x1191, "\010\127\374\137"},
- {0x1192, "\010\127\374\140"},
- {0x1193, "\010\127\377\313"},
- {0x1194, "\010\127\374\136"},
- {0x1195, "\010\127\377\342"},
- {0x1196, "\010\127\377\343"},
- {0x1197, "\010\127\377\344"},
- {0x1198, "\010\127\375\327"},
- {0x1199, "\010\127\375\332"},
- {0x119A, "\010\127\375\333"},
- {0x119B, "\010\127\375\331"},
- {0x119C, "\010\127\375\334"},
- {0x119D, "\010\127\375\330"},
- {0x119E, "\010\127\373\034"},
- {0x119F, "\010\127\374\327"},
- {0x11A0, "\010\127\374\330"},
- {0x11A1, "\010\127\374\326"},
- {0x11A2, "\010\127\377\122"},
- {0x11A8, "\010\103\371\154"},
+ {0x1176, "\010\127\374\263"},
+ {0x1177, "\010\127\374\262"},
+ {0x1178, "\010\127\377\277"},
+ {0x1179, "\010\127\377\276"},
+ {0x117A, "\010\127\376\232"},
+ {0x117B, "\010\127\376\231"},
+ {0x117C, "\010\127\376\233"},
+ {0x117D, "\010\127\377\310"},
+ {0x117E, "\010\127\377\307"},
+ {0x117F, "\010\127\377\336"},
+ {0x1180, "\010\127\377\341"},
+ {0x1181, "\010\127\377\340"},
+ {0x1182, "\010\127\377\342"},
+ {0x1183, "\010\127\377\337"},
+ {0x1184, "\010\127\374\143"},
+ {0x1185, "\010\127\374\144"},
+ {0x1186, "\010\127\377\320"},
+ {0x1187, "\010\127\377\321"},
+ {0x1188, "\010\127\374\142"},
+ {0x1189, "\010\127\376\251"},
+ {0x118A, "\010\127\376\255"},
+ {0x118B, "\010\127\376\252"},
+ {0x118C, "\010\127\376\254"},
+ {0x118D, "\010\127\376\253"},
+ {0x118E, "\010\127\377\312"},
+ {0x118F, "\010\127\377\313"},
+ {0x1190, "\010\127\377\315"},
+ {0x1191, "\010\127\374\140"},
+ {0x1192, "\010\127\374\141"},
+ {0x1193, "\010\127\377\314"},
+ {0x1194, "\010\127\374\137"},
+ {0x1195, "\010\127\377\343"},
+ {0x1196, "\010\127\377\344"},
+ {0x1197, "\010\127\377\345"},
+ {0x1198, "\010\127\375\330"},
+ {0x1199, "\010\127\375\333"},
+ {0x119A, "\010\127\375\334"},
+ {0x119B, "\010\127\375\332"},
+ {0x119C, "\010\127\375\335"},
+ {0x119D, "\010\127\375\331"},
+ {0x119E, "\010\127\373\035"},
+ {0x119F, "\010\127\374\330"},
+ {0x11A0, "\010\127\374\331"},
+ {0x11A1, "\010\127\374\327"},
+ {0x11A2, "\010\127\377\123"},
+ {0x11A8, "\010\103\371\155"},
{0x11A9, "\010\103\372\157"},
{0x11AA, "\010\103\372\302"},
- {0x11AB, "\010\103\371\162"},
+ {0x11AB, "\010\103\371\163"},
{0x11AC, "\010\103\372\316"},
{0x11AD, "\010\103\372\315"},
- {0x11AE, "\010\103\371\203"},
- {0x11AF, "\010\103\371\171"},
+ {0x11AE, "\010\103\371\204"},
+ {0x11AF, "\010\103\371\172"},
{0x11B0, "\010\103\372\342"},
{0x11B1, "\010\103\372\343"},
{0x11B2, "\010\103\372\345"},
{0x11B4, "\010\103\372\347"},
{0x11B5, "\010\103\372\344"},
{0x11B6, "\010\103\372\145"},
- {0x11B7, "\010\103\371\160"},
- {0x11B8, "\010\103\371\167"},
+ {0x11B7, "\010\103\371\161"},
+ {0x11B8, "\010\103\371\170"},
{0x11B9, "\010\103\372\125"},
- {0x11BA, "\010\103\371\173"},
+ {0x11BA, "\010\103\371\174"},
{0x11BB, "\010\103\372\160"},
- {0x11BC, "\010\103\371\151"},
- {0x11BD, "\010\103\371\116"},
- {0x11BE, "\010\103\371\200"},
- {0x11BF, "\010\103\371\153"},
- {0x11C0, "\010\103\371\177"},
- {0x11C1, "\010\103\371\165"},
- {0x11C2, "\010\103\371\147"},
- {0x11C3, "\010\103\376\023"},
- {0x11C4, "\010\103\376\024"},
- {0x11C5, "\010\103\373\315"},
+ {0x11BC, "\010\103\371\152"},
+ {0x11BD, "\010\103\371\117"},
+ {0x11BE, "\010\103\371\201"},
+ {0x11BF, "\010\103\371\154"},
+ {0x11C0, "\010\103\371\200"},
+ {0x11C1, "\010\103\371\166"},
+ {0x11C2, "\010\103\371\150"},
+ {0x11C3, "\010\103\376\024"},
+ {0x11C4, "\010\103\376\025"},
+ {0x11C5, "\010\103\373\316"},
{0x11C6, "\010\103\372\317"},
- {0x11C7, "\010\103\373\317"},
- {0x11C8, "\010\103\373\316"},
- {0x11C9, "\010\103\376\205"},
- {0x11CA, "\010\103\374\077"},
- {0x11CB, "\010\103\377\202"},
- {0x11CC, "\010\103\374\023"},
- {0x11CD, "\010\103\374\024"},
- {0x11CE, "\010\103\374\027"},
- {0x11CF, "\010\103\377\020"},
- {0x11D0, "\010\103\374\055"},
- {0x11D1, "\010\103\377\014"},
- {0x11D2, "\010\103\377\015"},
- {0x11D3, "\010\103\374\026"},
- {0x11D4, "\010\103\377\016"},
- {0x11D5, "\010\103\377\013"},
- {0x11D6, "\010\103\377\017"},
- {0x11D7, "\010\103\374\025"},
- {0x11D8, "\010\103\377\012"},
- {0x11D9, "\010\103\374\030"},
- {0x11DA, "\010\103\376\133"},
- {0x11DB, "\010\103\376\134"},
+ {0x11C7, "\010\103\373\320"},
+ {0x11C8, "\010\103\373\317"},
+ {0x11C9, "\010\103\376\206"},
+ {0x11CA, "\010\103\374\100"},
+ {0x11CB, "\010\103\377\203"},
+ {0x11CC, "\010\103\374\024"},
+ {0x11CD, "\010\103\374\025"},
+ {0x11CE, "\010\103\374\030"},
+ {0x11CF, "\010\103\377\021"},
+ {0x11D0, "\010\103\374\056"},
+ {0x11D1, "\010\103\377\015"},
+ {0x11D2, "\010\103\377\016"},
+ {0x11D3, "\010\103\374\027"},
+ {0x11D4, "\010\103\377\017"},
+ {0x11D5, "\010\103\377\014"},
+ {0x11D6, "\010\103\377\020"},
+ {0x11D7, "\010\103\374\026"},
+ {0x11D8, "\010\103\377\013"},
+ {0x11D9, "\010\103\374\031"},
+ {0x11DA, "\010\103\376\134"},
+ {0x11DB, "\010\103\376\135"},
{0x11DC, "\010\103\372\310"},
- {0x11DD, "\010\103\373\301"},
- {0x11DE, "\010\103\376\135"},
- {0x11DF, "\010\103\373\300"},
- {0x11E0, "\010\103\376\136"},
- {0x11E1, "\010\103\376\132"},
+ {0x11DD, "\010\103\373\302"},
+ {0x11DE, "\010\103\376\136"},
+ {0x11DF, "\010\103\373\301"},
+ {0x11E0, "\010\103\376\137"},
+ {0x11E1, "\010\103\376\133"},
{0x11E2, "\010\103\372\275"},
- {0x11E3, "\010\103\376\325"},
- {0x11E4, "\010\103\373\357"},
- {0x11E5, "\010\103\376\323"},
+ {0x11E3, "\010\103\376\326"},
+ {0x11E4, "\010\103\373\360"},
+ {0x11E5, "\010\103\376\324"},
{0x11E6, "\010\103\372\277"},
{0x11E7, "\010\103\372\354"},
{0x11E8, "\010\103\372\356"},
- {0x11E9, "\010\103\374\046"},
+ {0x11E9, "\010\103\374\047"},
{0x11EA, "\010\103\372\355"},
{0x11EB, "\010\103\372\323"},
- {0x11EC, "\010\103\373\243"},
- {0x11ED, "\010\103\375\362"},
+ {0x11EC, "\010\103\373\244"},
+ {0x11ED, "\010\103\375\363"},
{0x11EE, "\010\103\372\361"},
- {0x11EF, "\010\103\375\354"},
+ {0x11EF, "\010\103\375\355"},
{0x11F0, "\010\103\373\006"},
- {0x11F1, "\010\103\374\135"},
- {0x11F2, "\010\103\374\134"},
- {0x11F3, "\010\103\373\344"},
+ {0x11F1, "\010\103\374\136"},
+ {0x11F2, "\010\103\374\135"},
+ {0x11F3, "\010\103\373\345"},
{0x11F4, "\010\103\372\276"},
- {0x11F5, "\010\103\375\306"},
- {0x11F6, "\010\103\375\310"},
- {0x11F7, "\010\103\375\305"},
- {0x11F8, "\010\103\375\307"},
+ {0x11F5, "\010\103\375\307"},
+ {0x11F6, "\010\103\375\311"},
+ {0x11F7, "\010\103\375\306"},
+ {0x11F8, "\010\103\375\310"},
{0x11F9, "\010\103\373\010"},
{0x1E00, "\001\005\004\046\231\032"},
{0x1E01, "\001\003\004\046\231\032"},
{0x1E97, "\001\003\004\236\141"},
{0x1E98, "\001\003\004\273\231\007\025"},
{0x1E99, "\001\003\004\240\231\007\025"},
- {0x1E9A, "\001\003\004\046\371\270\040\037"},
+ {0x1E9A, "\001\003\004\046\371\271\040\037"},
{0x1EA0, "\001\005\004\046\027\032"},
{0x1EA1, "\001\003\004\046\027\032"},
{0x1EA2, "\001\005\004\046\100\007\025"},
{0x1FAD, "\001\005\014\147\101\011\135\011\055\032"},
{0x1FAE, "\001\005\014\147\115\011\165\011\055\032"},
{0x1FAF, "\001\005\014\147\101\011\165\011\055\032"},
- {0x1FB0, "\001\003\014\152\371\327"},
+ {0x1FB0, "\001\003\014\152\371\330"},
{0x1FB1, "\001\003\014\152\161"},
{0x1FB2, "\001\003\014\152\136\011\055\032"},
{0x1FB3, "\001\003\014\152\055\032"},
{0x1FB4, "\001\003\014\152\135\011\055\032"},
{0x1FB6, "\001\003\014\152\165"},
{0x1FB7, "\001\003\014\152\165\011\055\032"},
- {0x1FB8, "\001\005\014\152\371\327"},
+ {0x1FB8, "\001\005\014\152\371\330"},
{0x1FB9, "\001\005\014\152\161"},
{0x1FBA, "\001\005\014\152\136"},
{0x1FBB, "\001\005\014\152\135"},
{0x1FBC, "\001\005\014\152\055\032"},
- {0x1FBD, "\373\100"},
+ {0x1FBD, "\373\101"},
{0x1FBE, "\055\032"},
{0x1FBF, "\115"},
{0x1FC0, "\165"},
{0x1FCD, "\115\011\136"},
{0x1FCE, "\115\011\135"},
{0x1FCF, "\115\011\165"},
- {0x1FD0, "\001\003\014\055\371\327"},
+ {0x1FD0, "\001\003\014\055\371\330"},
{0x1FD1, "\001\003\014\055\161"},
{0x1FD2, "\001\003\014\055\341\011\136"},
{0x1FD3, "\001\003\014\055\341\011\135"},
{0x1FD6, "\001\003\014\055\165"},
{0x1FD7, "\001\003\014\055\341\011\165"},
- {0x1FD8, "\001\005\014\055\371\327"},
+ {0x1FD8, "\001\005\014\055\371\330"},
{0x1FD9, "\001\005\014\055\161"},
{0x1FDA, "\001\005\014\055\136"},
{0x1FDB, "\001\005\014\055\135"},
{0x1FDD, "\101\011\136"},
{0x1FDE, "\101\011\135"},
{0x1FDF, "\101\011\165\277"},
- {0x1FE0, "\001\003\014\214\371\327"},
+ {0x1FE0, "\001\003\014\214\371\330"},
{0x1FE1, "\001\003\014\214\161"},
{0x1FE2, "\001\003\014\214\341\011\136"},
{0x1FE3, "\001\003\014\214\341\011\135"},
- {0x1FE4, "\001\003\014\371\170\115"},
- {0x1FE5, "\001\003\014\371\170\101"},
+ {0x1FE4, "\001\003\014\371\171\115"},
+ {0x1FE5, "\001\003\014\371\171\101"},
{0x1FE6, "\001\003\014\214\165"},
{0x1FE7, "\001\003\014\214\341\011\165"},
- {0x1FE8, "\001\005\014\214\371\327"},
+ {0x1FE8, "\001\005\014\214\371\330"},
{0x1FE9, "\001\005\014\214\161"},
{0x1FEA, "\001\005\014\214\136"},
{0x1FEB, "\001\005\014\214\135"},
- {0x1FEC, "\001\005\014\371\170\101"},
+ {0x1FEC, "\001\005\014\371\171\101"},
{0x1FED, "\341\011\136"},
{0x1FEE, "\341\011\135"},
{0x1FEF, "\136"},
{0x1FFD, "\135"},
{0x1FFE, "\101"},
{0x2000, "\372\237"},
- {0x2001, "\371\221"},
- {0x2002, "\375\130"},
- {0x2003, "\375\006"},
- {0x2004, "\372\372\012\371\221"},
- {0x2005, "\372\141\012\371\221"},
- {0x2006, "\372\154\012\371\221"},
- {0x2007, "\371\025\373\327"},
- {0x2008, "\371\025\371\310"},
- {0x2009, "\371\025\373\165"},
- {0x200A, "\371\025\377\235"},
- {0x200B, "\371\025\232\056"},
- {0x200C, "\374\314\232\056"},
- {0x200D, "\373\263\232\056"},
+ {0x2001, "\371\222"},
+ {0x2002, "\375\131"},
+ {0x2003, "\375\007"},
+ {0x2004, "\372\372\012\371\222"},
+ {0x2005, "\372\141\012\371\222"},
+ {0x2006, "\372\154\012\371\222"},
+ {0x2007, "\371\026\373\330"},
+ {0x2008, "\371\026\371\311"},
+ {0x2009, "\371\026\373\166"},
+ {0x200A, "\371\026\377\236"},
+ {0x200B, "\371\026\232\056"},
+ {0x200C, "\374\315\232\056"},
+ {0x200D, "\373\264\232\056"},
{0x200E, "\153\372\255"},
{0x200F, "\153\372\244"},
- {0x2010, "\264\371\225"},
- {0x2011, "\264\371\225\373\263"},
- {0x2012, "\371\071\373\327"},
- {0x2013, "\371\071\372\237"},
- {0x2014, "\371\071\371\221"},
+ {0x2010, "\264\371\226"},
+ {0x2011, "\264\371\226\373\264"},
+ {0x2012, "\371\072\373\330"},
+ {0x2013, "\371\072\372\237"},
+ {0x2014, "\371\072\371\222"},
{0x2015, "\210\372\263"},
{0x2016, "\051\212\224"},
{0x2017, "\051\264\032"},
{0x201D, "\372\065\051"},
{0x201E, "\372\066\051\300"},
{0x201F, "\372\066\051\326\260"},
- {0x2020, "\373\332"},
- {0x2021, "\051\373\332"},
+ {0x2020, "\373\333"},
+ {0x2021, "\051\373\333"},
{0x2022, "\372\136"},
- {0x2023, "\372\136\371\325"},
+ {0x2023, "\372\136\371\326"},
{0x2024, "\027\372\231\270"},
{0x2025, "\027\372\231\051"},
- {0x2026, "\220\012\374\062"},
- {0x2027, "\027\012\375\067\012\376\152"},
+ {0x2026, "\220\012\374\063"},
+ {0x2027, "\027\012\375\070\012\376\153"},
{0x2028, "\371\007\012\212"},
{0x2029, "\371\007\012\372\324"},
- {0x202A, "\373\151\372\255"},
- {0x202B, "\373\151\372\244"},
- {0x202C, "\375\163\012\373\171\375\145"},
- {0x202D, "\373\173\372\255"},
- {0x202E, "\373\173\372\244"},
- {0x2030, "\015\335\371\157"},
- {0x2031, "\015\335\354\371\157"},
- {0x2032, "\371\064"},
- {0x2033, "\051\371\064"},
- {0x2034, "\371\047\371\064"},
- {0x2035, "\371\064\336"},
- {0x2036, "\051\371\064\336"},
- {0x2037, "\371\047\371\064\336"},
- {0x2038, "\375\031\373\111"},
+ {0x202A, "\373\152\372\255"},
+ {0x202B, "\373\152\372\244"},
+ {0x202C, "\375\164\012\373\172\375\146"},
+ {0x202D, "\373\174\372\255"},
+ {0x202E, "\373\174\372\244"},
+ {0x2030, "\015\335\371\160"},
+ {0x2031, "\015\335\354\371\160"},
+ {0x2032, "\371\065"},
+ {0x2033, "\051\371\065"},
+ {0x2034, "\371\050\371\065"},
+ {0x2035, "\371\065\336"},
+ {0x2036, "\051\371\065\336"},
+ {0x2037, "\371\050\371\065\336"},
+ {0x2038, "\375\032\373\112"},
{0x2039, "\371\014\270\013\022\042"},
{0x203A, "\371\014\270\013\022\037"},
- {0x203B, "\153\012\377\031"},
- {0x203C, "\051\027\371\131"},
- {0x203D, "\027\375\212"},
+ {0x203B, "\153\012\377\032"},
+ {0x203C, "\051\027\371\132"},
+ {0x203D, "\027\375\213"},
{0x203E, "\264\007\025"},
- {0x203F, "\374\100\032"},
- {0x2040, "\374\100\007\025"},
- {0x2041, "\372\077\373\111"},
- {0x2042, "\374\335"},
- {0x2043, "\372\136\264\371\225"},
- {0x2044, "\210\373\177"},
+ {0x203F, "\374\101\032"},
+ {0x2040, "\374\101\007\025"},
+ {0x2041, "\372\077\373\112"},
+ {0x2042, "\374\336"},
+ {0x2043, "\372\136\264\371\226"},
+ {0x2044, "\210\373\200"},
{0x2045, "\100\042\130\372\124"},
{0x2046, "\100\173\130\372\124"},
- {0x206A, "\373\236\373\114\374\063"},
- {0x206B, "\373\024\373\114\374\063"},
- {0x206C, "\373\236\012\373\170\002"},
- {0x206D, "\373\024\012\373\170\002"},
- {0x206E, "\374\066\012\373\172\012\017\376\174"},
- {0x206F, "\374\066\012\373\172\012\017\376\212"},
+ {0x206A, "\373\237\373\115\374\064"},
+ {0x206B, "\373\025\373\115\374\064"},
+ {0x206C, "\373\237\012\373\171\002"},
+ {0x206D, "\373\025\012\373\171\002"},
+ {0x206E, "\374\067\012\373\173\012\017\376\175"},
+ {0x206F, "\374\067\012\373\173\012\017\376\213"},
{0x2070, "\347\311"},
{0x2074, "\347\200"},
{0x2075, "\347\203"},
{0x2078, "\347\204"},
{0x2079, "\347\235"},
{0x207A, "\347\134\162"},
- {0x207B, "\347\134\371\036"},
+ {0x207B, "\347\134\371\037"},
{0x207C, "\347\134\142"},
{0x207D, "\347\371\004\042"},
{0x207E, "\347\371\004\037"},
{0x2088, "\357\204"},
{0x2089, "\357\235"},
{0x208A, "\357\134\162"},
- {0x208B, "\357\134\371\036"},
+ {0x208B, "\357\134\371\037"},
{0x208C, "\357\134\142"},
{0x208D, "\357\371\004\042"},
{0x208E, "\357\371\004\037"},
- {0x20A0, "\015\377\326"},
- {0x20A1, "\015\373\073"},
- {0x20A2, "\015\375\076"},
- {0x20A3, "\015\375\237\375\240"},
- {0x20A4, "\015\376\057"},
- {0x20A5, "\015\376\125"},
- {0x20A6, "\015\376\171"},
- {0x20A7, "\015\376\307"},
+ {0x20A0, "\015\377\327"},
+ {0x20A1, "\015\373\074"},
+ {0x20A2, "\015\375\077"},
+ {0x20A3, "\015\375\240\375\241"},
+ {0x20A4, "\015\376\060"},
+ {0x20A5, "\015\376\126"},
+ {0x20A6, "\015\376\172"},
+ {0x20A7, "\015\376\310"},
{0x20A8, "\015\372\350"},
- {0x20A9, "\015\374\130"},
- {0x20AA, "\015\376\220\377\071"},
- {0x20AB, "\015\375\153"},
- {0x20AC, "\015\375\210"},
- {0x20D0, "\023\374\113\013\022\042\007\025"},
- {0x20D1, "\023\374\113\013\022\037\007\025"},
- {0x20D2, "\023\212\224\372\103\371\266"},
- {0x20D3, "\023\212\224\372\225\371\266"},
- {0x20D4, "\023\043\007\371\043\371\311\007\025"},
- {0x20D5, "\023\043\007\371\043\223\007\025"},
+ {0x20A9, "\015\374\131"},
+ {0x20AA, "\015\376\221\377\072"},
+ {0x20AB, "\015\375\154"},
+ {0x20AC, "\015\375\211"},
+ {0x20D0, "\023\374\114\013\022\042\007\025"},
+ {0x20D1, "\023\374\114\013\022\037\007\025"},
+ {0x20D2, "\023\212\224\372\103\371\267"},
+ {0x20D3, "\023\212\224\372\225\371\267"},
+ {0x20D4, "\023\043\007\371\044\371\312\007\025"},
+ {0x20D5, "\023\043\007\371\044\223\007\025"},
{0x20D6, "\023\043\013\022\042\007\025"},
{0x20D7, "\023\043\013\022\037\007\025"},
{0x20D8, "\023\231\372\050"},
- {0x20D9, "\023\231\007\371\043\223\372\050"},
- {0x20DA, "\023\231\007\371\043\371\311\372\050"},
+ {0x20D9, "\023\231\007\371\044\223\372\050"},
+ {0x20DA, "\023\231\007\371\044\371\312\372\050"},
{0x20DB, "\023\131\220\007\025"},
{0x20DC, "\023\200\220\007\025"},
{0x20DD, "\023\252\372\061"},
{0x20DE, "\023\021\372\061"},
- {0x20DF, "\023\371\110\372\061"},
- {0x20E0, "\023\252\372\061\011\210\361\371\274"},
+ {0x20DF, "\023\371\111\372\061"},
+ {0x20E0, "\023\252\372\061\011\210\361\371\275"},
{0x20E1, "\023\043\042\011\037\007\025"},
- {0x2100, "\015\371\216\375\044\012"},
- {0x2101, "\015\374\342\374\372\377\111\012"},
- {0x2102, "\241\005\371\213"},
- {0x2103, "\372\236\375\022"},
+ {0x2100, "\015\371\217\375\045\012"},
+ {0x2101, "\015\374\343\374\373\377\112\012"},
+ {0x2102, "\241\005\371\214"},
+ {0x2103, "\372\236\375\023"},
{0x2104, "\015\212\012\372\213"},
- {0x2105, "\015\372\037\375\013"},
- {0x2106, "\015\375\005\377\236"},
- {0x2107, "\372\223\375\110"},
- {0x2108, "\377\055"},
- {0x2109, "\372\236\375\217"},
+ {0x2105, "\015\372\037\375\014"},
+ {0x2106, "\015\375\006\377\237"},
+ {0x2107, "\372\223\375\111"},
+ {0x2108, "\377\056"},
+ {0x2109, "\372\236\375\220"},
{0x210A, "\003\227\012\371\005"},
{0x210B, "\005\230\012\371\005"},
- {0x210C, "\005\230\371\363"},
- {0x210D, "\230\005\371\213"},
- {0x210E, "\372\223\012\373\367"},
- {0x210F, "\372\223\012\373\367\371\252\154\371\307"},
+ {0x210C, "\005\230\371\364"},
+ {0x210D, "\230\005\371\214"},
+ {0x210E, "\372\223\012\373\370"},
+ {0x210F, "\372\223\012\373\370\371\253\154\371\310"},
{0x2110, "\005\072\012\371\005"},
- {0x2111, "\005\072\371\363"},
+ {0x2111, "\005\072\371\364"},
{0x2112, "\005\167\012\371\005"},
{0x2113, "\003\167\012\371\005"},
{0x2114, "\015\167\275\175"},
- {0x2115, "\213\005\371\213"},
- {0x2116, "\015\373\330"},
- {0x2117, "\373\076\012\376\315"},
+ {0x2115, "\213\005\371\214"},
+ {0x2116, "\015\373\331"},
+ {0x2117, "\373\077\012\376\316"},
{0x2118, "\005\351\012\371\005"},
- {0x2119, "\351\005\371\213"},
- {0x211A, "\371\065\005\371\213"},
+ {0x2119, "\351\005\371\214"},
+ {0x211A, "\371\066\005\371\214"},
{0x211B, "\005\150\012\371\005"},
- {0x211C, "\005\150\371\363"},
- {0x211D, "\150\005\371\213"},
- {0x211E, "\376\245\374\270"},
- {0x211F, "\377\032"},
- {0x2120, "\015\372\037\153\012\377\066"},
+ {0x211C, "\005\150\371\364"},
+ {0x211D, "\150\005\371\214"},
+ {0x211E, "\376\246\374\271"},
+ {0x211F, "\377\033"},
+ {0x2120, "\015\372\037\153\012\377\067"},
{0x2121, "\015\372\170"},
- {0x2122, "\015\372\037\153\012\375\042"},
- {0x2123, "\377\251"},
- {0x2124, "\243\005\371\213"},
- {0x2125, "\015\376\236"},
+ {0x2122, "\015\372\037\153\012\375\043"},
+ {0x2123, "\377\252"},
+ {0x2124, "\243\005\371\214"},
+ {0x2125, "\015\376\237"},
{0x2126, "\015\372\117"},
{0x2127, "\015\372\117\371\016"},
- {0x2128, "\005\243\371\363"},
+ {0x2128, "\005\243\371\364"},
{0x2129, "\003\014\055\260"},
- {0x212A, "\015\376\010"},
- {0x212B, "\015\374\307"},
+ {0x212A, "\015\376\011"},
+ {0x212B, "\015\374\310"},
{0x212C, "\005\275\012\371\005"},
- {0x212D, "\005\241\371\363"},
- {0x212E, "\015\375\206"},
+ {0x212D, "\005\241\371\364"},
+ {0x212E, "\015\375\207"},
{0x212F, "\003\060\012\371\005"},
{0x2130, "\005\060\012\371\005"},
{0x2131, "\005\355\012\371\005"},
{0x2132, "\005\355\260"},
{0x2133, "\005\256\012\371\005"},
{0x2134, "\003\050\012\371\005"},
- {0x2135, "\015\374\276"},
+ {0x2135, "\015\374\277"},
{0x2136, "\015\372\044"},
- {0x2137, "\015\375\253"},
+ {0x2137, "\015\375\254"},
{0x2138, "\015\372\052"},
{0x2153, "\356\132\372\372"},
{0x2154, "\356\154\372\372"},
{0x2157, "\356\131\372\220"},
{0x2158, "\356\200\372\220"},
{0x2159, "\356\132\372\154"},
- {0x215A, "\356\203\377\074"},
- {0x215B, "\356\132\371\366"},
- {0x215C, "\356\131\371\104"},
- {0x215D, "\356\203\371\104"},
- {0x215E, "\356\221\371\104"},
- {0x215F, "\371\305\373\177\132"},
+ {0x215A, "\356\203\377\075"},
+ {0x215B, "\356\132\371\367"},
+ {0x215C, "\356\131\371\105"},
+ {0x215D, "\356\203\371\105"},
+ {0x215E, "\356\221\371\105"},
+ {0x215F, "\371\306\373\200\132"},
{0x2160, "\017\215\132"},
{0x2161, "\017\215\154"},
{0x2162, "\017\215\131"},
{0x2167, "\017\215\204"},
{0x2168, "\017\215\235"},
{0x2169, "\017\215\354"},
- {0x216A, "\017\215\371\243"},
- {0x216B, "\017\215\371\140"},
- {0x216C, "\017\215\373\072"},
- {0x216D, "\017\215\371\222"},
- {0x216E, "\017\215\203\373\063"},
- {0x216F, "\017\215\371\157"},
+ {0x216A, "\017\215\371\244"},
+ {0x216B, "\017\215\371\141"},
+ {0x216C, "\017\215\373\073"},
+ {0x216D, "\017\215\371\223"},
+ {0x216E, "\017\215\203\373\064"},
+ {0x216F, "\017\215\371\160"},
{0x2170, "\017\215\003\132"},
{0x2171, "\017\215\003\154"},
{0x2172, "\017\215\003\131"},
{0x2177, "\017\215\003\204"},
{0x2178, "\017\215\003\235"},
{0x2179, "\017\215\003\354"},
- {0x217A, "\017\215\003\371\243"},
- {0x217B, "\017\215\003\371\140"},
- {0x217C, "\017\215\003\373\072"},
- {0x217D, "\017\215\003\371\222"},
- {0x217E, "\017\215\003\203\373\063"},
- {0x217F, "\017\215\003\371\157"},
- {0x2180, "\017\215\371\157\241\225"},
- {0x2181, "\017\215\203\371\157"},
- {0x2182, "\017\215\354\371\157"},
+ {0x217A, "\017\215\003\371\244"},
+ {0x217B, "\017\215\003\371\141"},
+ {0x217C, "\017\215\003\373\073"},
+ {0x217D, "\017\215\003\371\223"},
+ {0x217E, "\017\215\003\203\373\064"},
+ {0x217F, "\017\215\003\371\160"},
+ {0x2180, "\017\215\371\160\241\225"},
+ {0x2181, "\017\215\203\371\160"},
+ {0x2182, "\017\215\354\371\160"},
{0x2190, "\043\013\022\042"},
{0x2191, "\043\013\035\065"},
{0x2192, "\043\013\022\037"},
{0x2193, "\043\013\035\061"},
{0x2194, "\043\042\011\037"},
{0x2195, "\043\372\262"},
- {0x2196, "\043\371\375"},
- {0x2197, "\043\371\241"},
- {0x2198, "\043\371\251"},
+ {0x2196, "\043\371\376"},
+ {0x2197, "\043\371\242"},
+ {0x2198, "\043\371\252"},
{0x2199, "\043\372\162"},
- {0x219A, "\043\013\022\042\371\217"},
- {0x219B, "\043\013\022\037\371\217"},
+ {0x219A, "\043\013\022\042\371\220"},
+ {0x219B, "\043\013\022\037\371\220"},
{0x219C, "\043\013\022\042\372\120"},
{0x219D, "\043\013\022\037\372\120"},
{0x219E, "\043\013\022\042\040\154\372\127"},
{0x219F, "\043\013\035\065\040\154\372\127"},
{0x21A0, "\043\013\022\037\040\154\372\127"},
{0x21A1, "\043\013\035\061\040\154\372\127"},
- {0x21A2, "\043\013\022\042\040\371\100"},
- {0x21A3, "\043\013\022\037\040\371\100"},
- {0x21A4, "\043\371\132\307\013\022\042"},
- {0x21A5, "\043\371\132\307\013\035\065"},
- {0x21A6, "\043\371\132\307\013\022\037"},
- {0x21A7, "\043\371\132\307\013\035\061"},
- {0x21A8, "\043\372\262\371\252\374\357"},
+ {0x21A2, "\043\013\022\042\040\371\101"},
+ {0x21A3, "\043\013\022\037\040\371\101"},
+ {0x21A4, "\043\371\133\307\013\022\042"},
+ {0x21A5, "\043\371\133\307\013\035\065"},
+ {0x21A6, "\043\371\133\307\013\022\037"},
+ {0x21A7, "\043\371\133\307\013\035\061"},
+ {0x21A8, "\043\372\262\371\253\374\360"},
{0x21A9, "\043\013\022\042\130\100"},
{0x21AA, "\043\013\022\037\130\100"},
{0x21AB, "\043\013\022\042\130\372\210"},
{0x21AC, "\043\013\022\037\130\372\210"},
- {0x21AD, "\043\373\201\372\120"},
- {0x21AE, "\043\373\201\371\217"},
- {0x21AF, "\043\013\035\061\007\377\322"},
+ {0x21AD, "\043\373\202\372\120"},
+ {0x21AE, "\043\373\202\371\220"},
+ {0x21AF, "\043\013\035\061\007\377\323"},
{0x21B0, "\043\013\035\065\130\302\013\022\042"},
{0x21B1, "\043\013\035\065\130\302\013\022\037"},
{0x21B2, "\043\013\035\061\130\302\013\022\042"},
{0x21B3, "\043\013\035\061\130\302\013\022\037"},
{0x21B4, "\043\013\022\037\130\222\013\035\061"},
{0x21B5, "\043\013\035\061\130\222\013\022\042"},
- {0x21B6, "\043\374\042\007\371\043\371\311\007\025"},
- {0x21B7, "\043\374\042\007\371\043\223\007\025"},
- {0x21B8, "\043\371\375\371\367\377\237\210\372\103"},
- {0x21B9, "\043\013\022\042\371\367\132\307\371\244\043\013\022\037\371\367\132\307"},
- {0x21BA, "\043\007\371\043\371\311\040\252\371\306"},
- {0x21BB, "\043\007\371\043\223\040\252\371\306"},
- {0x21BC, "\371\026\013\022\042\130\371\136\013\035\065"},
- {0x21BD, "\371\026\013\022\042\130\371\136\013\035\061"},
- {0x21BE, "\371\026\013\035\065\130\371\136\013\022\037"},
- {0x21BF, "\371\026\013\035\065\130\371\136\013\022\042"},
- {0x21C0, "\371\026\013\022\037\130\371\136\013\035\065"},
- {0x21C1, "\371\026\013\022\037\130\371\136\013\035\061"},
- {0x21C2, "\371\026\013\035\061\130\371\136\013\022\037"},
- {0x21C3, "\371\026\013\035\061\130\371\136\013\022\042"},
- {0x21C4, "\043\013\022\037\371\244\043\013\022\042"},
- {0x21C5, "\043\013\035\065\040\042\373\113\043\013\035\061"},
- {0x21C6, "\043\013\022\042\371\244\043\013\022\037"},
+ {0x21B6, "\043\374\043\007\371\044\371\312\007\025"},
+ {0x21B7, "\043\374\043\007\371\044\223\007\025"},
+ {0x21B8, "\043\371\376\371\370\377\240\210\372\103"},
+ {0x21B9, "\043\013\022\042\371\370\132\307\371\245\043\013\022\037\371\370\132\307"},
+ {0x21BA, "\043\007\371\044\371\312\040\252\371\307"},
+ {0x21BB, "\043\007\371\044\223\040\252\371\307"},
+ {0x21BC, "\371\027\013\022\042\130\371\137\013\035\065"},
+ {0x21BD, "\371\027\013\022\042\130\371\137\013\035\061"},
+ {0x21BE, "\371\027\013\035\065\130\371\137\013\022\037"},
+ {0x21BF, "\371\027\013\035\065\130\371\137\013\022\042"},
+ {0x21C0, "\371\027\013\022\037\130\371\137\013\035\065"},
+ {0x21C1, "\371\027\013\022\037\130\371\137\013\035\061"},
+ {0x21C2, "\371\027\013\035\061\130\371\137\013\022\037"},
+ {0x21C3, "\371\027\013\035\061\130\371\137\013\022\042"},
+ {0x21C4, "\043\013\022\037\371\245\043\013\022\042"},
+ {0x21C5, "\043\013\035\065\040\042\373\114\043\013\035\061"},
+ {0x21C6, "\043\013\022\042\371\245\043\013\022\037"},
{0x21C7, "\372\121\012\372\063\013\022\042"},
{0x21C8, "\372\121\012\372\063\013\035\065"},
{0x21C9, "\372\121\012\372\063\013\022\037"},
{0x21CA, "\372\121\012\372\063\013\035\061"},
- {0x21CB, "\371\026\013\022\042\371\244\371\026\013\022\037"},
- {0x21CC, "\371\026\013\022\037\371\244\371\026\013\022\042"},
- {0x21CD, "\051\043\013\022\042\371\217"},
- {0x21CE, "\051\043\042\011\037\371\217"},
- {0x21CF, "\051\043\013\022\037\371\217"},
+ {0x21CB, "\371\027\013\022\042\371\245\371\027\013\022\037"},
+ {0x21CC, "\371\027\013\022\037\371\245\371\027\013\022\042"},
+ {0x21CD, "\051\043\013\022\042\371\220"},
+ {0x21CE, "\051\043\042\011\037\371\220"},
+ {0x21CF, "\051\043\013\022\037\371\220"},
{0x21D0, "\051\043\013\022\042"},
{0x21D1, "\051\043\013\035\065"},
{0x21D2, "\051\043\013\022\037"},
{0x21D3, "\051\043\013\035\061"},
{0x21D4, "\051\043\042\011\037"},
{0x21D5, "\051\043\372\262"},
- {0x21D6, "\051\043\371\375"},
- {0x21D7, "\051\043\371\241"},
- {0x21D8, "\051\043\371\251"},
+ {0x21D6, "\051\043\371\376"},
+ {0x21D7, "\051\043\371\242"},
+ {0x21D8, "\051\043\371\252"},
{0x21D9, "\051\043\372\162"},
- {0x21DA, "\371\047\043\013\022\042"},
- {0x21DB, "\371\047\043\013\022\037"},
- {0x21DC, "\043\013\022\042\007\374\101"},
- {0x21DD, "\043\013\022\037\007\374\101"},
+ {0x21DA, "\371\050\043\013\022\042"},
+ {0x21DB, "\371\050\043\013\022\037"},
+ {0x21DC, "\043\013\022\042\007\374\102"},
+ {0x21DD, "\043\013\022\037\007\374\102"},
{0x21DE, "\043\013\035\065\130\051\210"},
{0x21DF, "\043\013\035\061\130\051\210"},
{0x21E0, "\043\372\131\013\022\042"},
{0x21E1, "\043\372\131\013\035\065"},
{0x21E2, "\043\372\131\013\022\037"},
{0x21E3, "\043\372\131\013\035\061"},
- {0x21E4, "\043\013\022\042\371\367\132\307"},
- {0x21E5, "\043\013\022\037\371\367\132\307"},
- {0x21E6, "\043\371\333\013\022\042"},
- {0x21E7, "\043\371\333\013\035\065"},
- {0x21E8, "\043\371\333\013\022\037"},
- {0x21E9, "\043\371\333\013\035\061"},
- {0x21EA, "\043\371\333\013\035\065\040\376\273\371\132\307"},
- {0x2200, "\335\377\212"},
- {0x2201, "\375\043"},
- {0x2202, "\375\165\376\272"},
- {0x2203, "\373\235\375\215"},
- {0x2204, "\373\235\376\166\362"},
- {0x2205, "\375\177\377\255"},
- {0x2206, "\375\340"},
- {0x2207, "\376\170"},
- {0x2208, "\373\032\040"},
- {0x2209, "\376\164\362\040"},
- {0x220A, "\144\373\032\040"},
- {0x220B, "\371\265\371\074\373\017"},
- {0x220C, "\371\112\371\265\362\371\074\373\017"},
- {0x220D, "\144\371\265\371\074\373\017"},
- {0x220E, "\375\020\376\365\375\220\375\162"},
- {0x220F, "\371\312\012\022\371\227"},
- {0x2210, "\375\060\012\022\371\227"},
- {0x2211, "\377\112\012\022\371\227"},
- {0x2212, "\134\371\036"},
- {0x2213, "\134\376\144"},
- {0x2214, "\162\371\245"},
+ {0x21E4, "\043\013\022\042\371\370\132\307"},
+ {0x21E5, "\043\013\022\037\371\370\132\307"},
+ {0x21E6, "\043\371\334\013\022\042"},
+ {0x21E7, "\043\371\334\013\035\065"},
+ {0x21E8, "\043\371\334\013\022\037"},
+ {0x21E9, "\043\371\334\013\035\061"},
+ {0x21EA, "\043\371\334\013\035\065\040\376\274\371\133\307"},
+ {0x2200, "\335\377\213"},
+ {0x2201, "\375\044"},
+ {0x2202, "\375\166\376\273"},
+ {0x2203, "\373\236\375\216"},
+ {0x2204, "\373\236\376\167\362"},
+ {0x2205, "\375\200\377\256"},
+ {0x2206, "\375\341"},
+ {0x2207, "\376\171"},
+ {0x2208, "\373\033\040"},
+ {0x2209, "\376\165\362\040"},
+ {0x220A, "\144\373\033\040"},
+ {0x220B, "\371\266\371\075\373\017"},
+ {0x220C, "\371\113\371\266\362\371\075\373\017"},
+ {0x220D, "\144\371\266\371\075\373\017"},
+ {0x220E, "\375\021\376\366\375\221\375\163"},
+ {0x220F, "\371\313\012\022\371\230"},
+ {0x2210, "\375\061\012\022\371\230"},
+ {0x2211, "\377\113\012\022\371\230"},
+ {0x2212, "\134\371\037"},
+ {0x2213, "\134\376\145"},
+ {0x2214, "\162\371\246"},
{0x2215, "\210\361\012\372\242"},
- {0x2216, "\373\132\375\107"},
- {0x2217, "\371\031\371\011"},
- {0x2218, "\371\031\231"},
- {0x2219, "\371\031\372\136"},
- {0x221A, "\372\335\371\264"},
- {0x221B, "\372\335\375\077"},
- {0x221C, "\372\335\374\007"},
- {0x221D, "\376\353\040"},
- {0x221E, "\375\342"},
- {0x221F, "\371\262\173"},
- {0x2220, "\371\262"},
- {0x2221, "\371\262\373\275"},
- {0x2222, "\371\262\377\120"},
- {0x2223, "\371\360\132\373\134\012"},
- {0x2224, "\376\165\362\132\373\134\012"},
+ {0x2216, "\373\133\375\110"},
+ {0x2217, "\371\032\371\011"},
+ {0x2218, "\371\032\231"},
+ {0x2219, "\371\032\372\136"},
+ {0x221A, "\372\335\371\265"},
+ {0x221B, "\372\335\375\100"},
+ {0x221C, "\372\335\374\010"},
+ {0x221D, "\376\354\040"},
+ {0x221E, "\375\343"},
+ {0x221F, "\371\263\173"},
+ {0x2220, "\371\263"},
+ {0x2221, "\371\263\373\276"},
+ {0x2222, "\371\263\377\121"},
+ {0x2223, "\371\361\132\373\135\012"},
+ {0x2224, "\376\166\362\132\373\135\012"},
{0x2225, "\372\325\040"},
{0x2226, "\334\372\325\040"},
- {0x2227, "\011\371\300"},
- {0x2228, "\114\371\300"},
+ {0x2227, "\011\371\301"},
+ {0x2228, "\114\371\301"},
{0x2229, "\372\270"},
{0x222A, "\372\376"},
- {0x222B, "\371\105"},
- {0x222C, "\371\105\051"},
- {0x222D, "\371\105\371\047"},
- {0x222E, "\371\105\012\371\012"},
- {0x222F, "\371\105\012\377\131"},
- {0x2230, "\371\105\012\377\270"},
- {0x2231, "\371\105\007\371\043\223"},
- {0x2232, "\371\105\012\371\012\007\371\043\223"},
- {0x2233, "\371\105\012\371\012\007\371\043\371\311"},
- {0x2234, "\371\041\375\054"},
- {0x2235, "\376\270\306"},
- {0x2236, "\376\373"},
- {0x2237, "\373\377"},
- {0x2238, "\371\036\371\245"},
- {0x2239, "\375\214"},
- {0x223A, "\373\377\375\267"},
- {0x223B, "\375\311"},
- {0x223C, "\371\031\143"},
- {0x223D, "\371\031\143\371\016"},
+ {0x222B, "\371\106"},
+ {0x222C, "\371\106\051"},
+ {0x222D, "\371\106\371\050"},
+ {0x222E, "\371\106\012\371\012"},
+ {0x222F, "\371\106\012\377\132"},
+ {0x2230, "\371\106\012\377\271"},
+ {0x2231, "\371\106\007\371\044\223"},
+ {0x2232, "\371\106\012\371\012\007\371\044\223"},
+ {0x2233, "\371\106\012\371\012\007\371\044\371\312"},
+ {0x2234, "\371\042\375\055"},
+ {0x2235, "\376\271\306"},
+ {0x2236, "\376\374"},
+ {0x2237, "\374\001"},
+ {0x2238, "\371\037\371\246"},
+ {0x2239, "\375\215"},
+ {0x223A, "\374\001\375\270"},
+ {0x223B, "\375\312"},
+ {0x223C, "\371\032\143"},
+ {0x223D, "\371\032\143\371\016"},
{0x223E, "\207\372\224\371\016"},
- {0x223F, "\377\072"},
- {0x2240, "\371\312\375\071"},
+ {0x223F, "\377\073"},
+ {0x2240, "\371\313\375\072"},
{0x2241, "\334\143"},
- {0x2242, "\371\036\143"},
- {0x2243, "\373\037\142\040"},
- {0x2244, "\334\373\037\142\040"},
- {0x2245, "\371\334\142\040"},
- {0x2246, "\371\334\371\111\334\372\365\142\040"},
- {0x2247, "\216\371\334\216\372\365\142\040"},
+ {0x2242, "\371\037\143"},
+ {0x2243, "\373\040\142\040"},
+ {0x2244, "\334\373\040\142\040"},
+ {0x2245, "\371\335\142\040"},
+ {0x2246, "\371\335\371\112\334\372\365\142\040"},
+ {0x2247, "\216\371\335\216\372\365\142\040"},
{0x2248, "\372\331\142\040"},
{0x2249, "\334\372\331\142\040"},
{0x224A, "\372\331\142\114\142\040"},
- {0x224B, "\371\047\143"},
- {0x224C, "\375\200\142\040"},
+ {0x224B, "\371\050\143"},
+ {0x224C, "\375\201\142\040"},
{0x224D, "\371\010\040"},
- {0x224E, "\373\220\371\010\040"},
- {0x224F, "\373\132\052"},
- {0x2250, "\377\174\013\022\376\055"},
- {0x2251, "\373\220\142\040"},
- {0x2252, "\371\334\142\040\114\371\232\012"},
- {0x2253, "\371\232\012\114\371\334\142\040"},
- {0x2254, "\371\347\142"},
- {0x2255, "\142\371\347"},
- {0x2256, "\231\371\076\142"},
+ {0x224E, "\373\221\371\010\040"},
+ {0x224F, "\373\133\052"},
+ {0x2250, "\377\175\013\022\376\056"},
+ {0x2251, "\373\221\142\040"},
+ {0x2252, "\371\335\142\040\114\371\233\012"},
+ {0x2253, "\371\233\012\114\371\335\142\040"},
+ {0x2254, "\371\350\142"},
+ {0x2255, "\142\371\350"},
+ {0x2256, "\231\371\077\142"},
{0x2257, "\142\130\231\007\025"},
- {0x2258, "\375\063\040"},
- {0x2259, "\375\205"},
- {0x225A, "\377\332\040"},
+ {0x2258, "\375\064\040"},
+ {0x2259, "\375\206"},
+ {0x225A, "\377\333\040"},
{0x225B, "\142\130\303\007\025"},
- {0x225C, "\142\371\267"},
- {0x225D, "\142\371\041\375\161\040"},
- {0x225E, "\373\275\371\041"},
- {0x225F, "\377\327\007\375\156"},
+ {0x225C, "\142\371\270"},
+ {0x225D, "\142\371\042\375\162\040"},
+ {0x225E, "\373\276\371\042"},
+ {0x225F, "\377\330\007\375\157"},
{0x2260, "\334\142\040"},
- {0x2261, "\373\233\040"},
- {0x2262, "\334\373\233\040"},
+ {0x2261, "\373\234\040"},
+ {0x2262, "\334\373\234\040"},
{0x2263, "\372\365\371\010\040"},
{0x2264, "\162\144\114\142\040"},
{0x2265, "\162\262\114\142\040"},
- {0x2266, "\162\144\306\371\244\142\040"},
- {0x2267, "\162\262\306\371\244\142\040"},
- {0x2268, "\162\144\371\111\334\142\040"},
- {0x2269, "\162\262\371\111\334\142\040"},
- {0x226A, "\373\045\162\144\306"},
- {0x226B, "\373\045\162\262\306"},
+ {0x2266, "\162\144\306\371\245\142\040"},
+ {0x2267, "\162\262\306\371\245\142\040"},
+ {0x2268, "\162\144\371\112\334\142\040"},
+ {0x2269, "\162\262\371\112\334\142\040"},
+ {0x226A, "\373\046\162\144\306"},
+ {0x226B, "\373\046\162\262\306"},
{0x226C, "\052"},
{0x226D, "\334\371\010\040"},
{0x226E, "\362\162\144\306"},
{0x2277, "\162\262\114\162\144\306"},
{0x2278, "\216\162\144\216\162\262\306"},
{0x2279, "\216\162\262\216\162\144\306"},
- {0x227A, "\372\010"},
- {0x227B, "\371\322"},
- {0x227C, "\372\010\114\371\360\142\040"},
- {0x227D, "\371\322\114\371\360\142\040"},
- {0x227E, "\372\010\114\371\360\371\010\040"},
- {0x227F, "\371\322\114\371\360\371\010\040"},
- {0x2280, "\371\112\372\010\362"},
- {0x2281, "\371\112\371\322\362"},
- {0x2282, "\371\321\012"},
- {0x2283, "\371\323\012"},
- {0x2284, "\362\132\371\321\012"},
- {0x2285, "\362\132\371\323\012"},
- {0x2286, "\371\321\114\142\040"},
- {0x2287, "\371\323\114\142\040"},
- {0x2288, "\216\132\371\321\216\142\040"},
- {0x2289, "\216\132\371\323\216\142\040"},
- {0x228A, "\371\321\371\111\334\142\040"},
- {0x228B, "\371\323\371\111\334\142\040"},
+ {0x227A, "\372\011"},
+ {0x227B, "\371\323"},
+ {0x227C, "\372\011\114\371\361\142\040"},
+ {0x227D, "\371\323\114\371\361\142\040"},
+ {0x227E, "\372\011\114\371\361\371\010\040"},
+ {0x227F, "\371\323\114\371\361\371\010\040"},
+ {0x2280, "\371\113\372\011\362"},
+ {0x2281, "\371\113\371\323\362"},
+ {0x2282, "\371\322\012"},
+ {0x2283, "\371\324\012"},
+ {0x2284, "\362\132\371\322\012"},
+ {0x2285, "\362\132\371\324\012"},
+ {0x2286, "\371\322\114\142\040"},
+ {0x2287, "\371\324\114\142\040"},
+ {0x2288, "\216\132\371\322\216\142\040"},
+ {0x2289, "\216\132\371\324\216\142\040"},
+ {0x228A, "\371\322\371\112\334\142\040"},
+ {0x228B, "\371\324\371\112\334\142\040"},
{0x228C, "\372\312"},
{0x228D, "\372\112\012\372\312"},
{0x228E, "\372\376\012\372\312"},
- {0x228F, "\371\232\371\264\012"},
- {0x2290, "\372\002\021\012"},
- {0x2291, "\371\232\371\264\114\142\040"},
- {0x2292, "\372\002\021\114\142\040"},
- {0x2293, "\375\026\021"},
- {0x2294, "\375\066\371\264"},
+ {0x228F, "\371\233\371\265\012"},
+ {0x2290, "\372\003\021\012"},
+ {0x2291, "\371\233\371\265\114\142\040"},
+ {0x2292, "\372\003\021\114\142\040"},
+ {0x2293, "\375\027\021"},
+ {0x2294, "\375\067\371\265"},
{0x2295, "\162\034"},
- {0x2296, "\371\036\034"},
- {0x2297, "\372\313\371\041\034"},
+ {0x2296, "\371\037\034"},
+ {0x2297, "\372\313\371\042\034"},
{0x2298, "\210\361\012\372\242\146"},
- {0x2299, "\371\031\027\034"},
- {0x229A, "\371\031\231\034"},
- {0x229B, "\371\031\371\011\034"},
+ {0x2299, "\371\032\027\034"},
+ {0x229A, "\371\032\231\034"},
+ {0x229B, "\371\032\371\011\034"},
{0x229C, "\142\034"},
- {0x229D, "\371\071\034"},
- {0x229E, "\162\371\356"},
- {0x229F, "\371\036\371\356"},
- {0x22A0, "\372\313\371\041\371\356"},
- {0x22A1, "\371\031\027\371\356"},
+ {0x229D, "\371\072\034"},
+ {0x229E, "\162\371\357"},
+ {0x229F, "\371\037\371\357"},
+ {0x22A0, "\372\313\371\042\371\357"},
+ {0x22A1, "\371\032\027\371\357"},
{0x22A2, "\307\173"},
{0x22A3, "\307\042"},
{0x22A4, "\307\013\035\061"},
{0x22A5, "\307\013\035\065"},
- {0x22A6, "\374\333"},
- {0x22A7, "\376\141"},
- {0x22A8, "\374\123"},
- {0x22A9, "\376\233"},
- {0x22AA, "\210\224\371\047\130\372\374\040\037"},
+ {0x22A6, "\374\334"},
+ {0x22A7, "\376\142"},
+ {0x22A8, "\374\124"},
+ {0x22A9, "\376\234"},
+ {0x22AA, "\210\224\371\050\130\372\374\040\037"},
{0x22AB, "\210\224\051\130\372\374\040\037\051"},
- {0x22AC, "\371\112\376\354\362"},
- {0x22AD, "\362\374\123"},
- {0x22AE, "\376\167\362"},
- {0x22AF, "\376\213\224\051\130\372\374\040\037\051"},
- {0x22B0, "\376\347\372\156\374\017"},
- {0x22B1, "\371\322\372\156\374\017"},
- {0x22B2, "\371\174\371\062\012"},
- {0x22B3, "\371\265\371\074\371\174\371\062"},
- {0x22B4, "\371\174\371\062\114\142\040"},
- {0x22B5, "\371\265\371\074\371\174\371\062\114\142\040"},
- {0x22B6, "\372\002\012"},
- {0x22B7, "\371\232\012"},
- {0x22B8, "\376\157"},
- {0x22B9, "\376\110\375\277\375\052"},
- {0x22BA, "\375\345"},
- {0x22BB, "\114\375\213"},
+ {0x22AC, "\371\113\376\355\362"},
+ {0x22AD, "\362\374\124"},
+ {0x22AE, "\376\170\362"},
+ {0x22AF, "\376\214\224\051\130\372\374\040\037\051"},
+ {0x22B0, "\376\350\372\156\374\020"},
+ {0x22B1, "\371\323\372\156\374\020"},
+ {0x22B2, "\371\175\371\063\012"},
+ {0x22B3, "\371\266\371\075\371\175\371\063"},
+ {0x22B4, "\371\175\371\063\114\142\040"},
+ {0x22B5, "\371\266\371\075\371\175\371\063\114\142\040"},
+ {0x22B6, "\372\003\012"},
+ {0x22B7, "\371\233\012"},
+ {0x22B8, "\376\160"},
+ {0x22B9, "\376\111\375\300\375\053"},
+ {0x22BA, "\375\346"},
+ {0x22BB, "\114\375\214"},
{0x22BC, "\334\011"},
{0x22BD, "\334\114"},
- {0x22BE, "\371\262\173\130\371\051"},
- {0x22BF, "\265\371\315"},
- {0x22C0, "\011\371\300\012\022\371\227"},
- {0x22C1, "\114\371\300\012\022\371\227"},
- {0x22C2, "\372\270\012\022\371\227"},
- {0x22C3, "\377\034\012\022\371\227"},
- {0x22C4, "\371\031\371\110"},
- {0x22C5, "\371\031\027"},
- {0x22C6, "\371\031\303"},
- {0x22C7, "\375\146\372\313"},
- {0x22C8, "\372\114\373\346"},
- {0x22C9, "\371\312\372\150\040\042\012\373\155\371\062"},
- {0x22CA, "\371\312\372\150\040\037\012\373\155\371\062"},
- {0x22CB, "\371\312\372\150\040\042"},
- {0x22CC, "\371\312\372\150\040\037"},
- {0x22CD, "\371\036\143\371\016"},
- {0x22CE, "\114\371\300\374\015"},
- {0x22CF, "\011\371\300\374\015"},
- {0x22D0, "\371\321\051"},
- {0x22D1, "\371\323\051"},
+ {0x22BE, "\371\263\173\130\371\052"},
+ {0x22BF, "\265\371\316"},
+ {0x22C0, "\011\371\301\012\022\371\230"},
+ {0x22C1, "\114\371\301\012\022\371\230"},
+ {0x22C2, "\372\270\012\022\371\230"},
+ {0x22C3, "\377\035\012\022\371\230"},
+ {0x22C4, "\371\032\371\111"},
+ {0x22C5, "\371\032\027"},
+ {0x22C6, "\371\032\303"},
+ {0x22C7, "\375\147\372\313"},
+ {0x22C8, "\372\114\373\347"},
+ {0x22C9, "\371\313\372\150\040\042\012\373\156\371\063"},
+ {0x22CA, "\371\313\372\150\040\037\012\373\156\371\063"},
+ {0x22CB, "\371\313\372\150\040\042"},
+ {0x22CC, "\371\313\372\150\040\037"},
+ {0x22CD, "\371\037\143\371\016"},
+ {0x22CE, "\114\371\301\374\016"},
+ {0x22CF, "\011\371\301\374\016"},
+ {0x22D0, "\371\322\051"},
+ {0x22D1, "\371\324\051"},
{0x22D2, "\372\270\051"},
{0x22D3, "\372\376\051"},
- {0x22D4, "\373\175"},
+ {0x22D4, "\373\176"},
{0x22D5, "\142\011\372\325\040"},
- {0x22D6, "\162\144\306\371\245"},
- {0x22D7, "\162\262\306\371\245"},
- {0x22D8, "\373\074\162\144\306"},
- {0x22D9, "\373\074\162\262\306"},
+ {0x22D6, "\162\144\306\371\246"},
+ {0x22D7, "\162\262\306\371\246"},
+ {0x22D8, "\373\075\162\144\306"},
+ {0x22D9, "\373\075\162\262\306"},
{0x22DA, "\162\144\114\142\114\162\262\306"},
{0x22DB, "\162\262\114\142\114\162\144\306"},
{0x22DC, "\142\114\162\144\306"},
{0x22DD, "\142\114\162\262\306"},
- {0x22DE, "\142\114\372\010"},
- {0x22DF, "\375\172\114\371\322"},
- {0x22E0, "\216\374\002\216\142\040"},
- {0x22E1, "\216\374\057\216\142\040"},
- {0x22E2, "\216\371\232\371\264\216\142\040"},
- {0x22E3, "\216\372\002\021\216\142\040"},
- {0x22E4, "\371\232\021\114\372\241\012"},
- {0x22E5, "\372\002\021\114\372\241\012"},
- {0x22E6, "\162\144\371\111\334\371\010\040"},
- {0x22E7, "\162\262\371\111\334\371\010\040"},
- {0x22E8, "\374\002\371\111\334\371\010\040"},
- {0x22E9, "\374\057\371\111\334\371\010\040"},
- {0x22EA, "\362\132\371\174\371\062\012"},
- {0x22EB, "\371\112\371\265\362\371\074\371\174\371\062"},
- {0x22EC, "\216\371\174\371\062\216\142\040"},
- {0x22ED, "\216\142\216\375\055\371\074\371\174\371\062"},
- {0x22EE, "\131\220\377\252"},
- {0x22EF, "\131\220\376\162"},
- {0x22F0, "\131\220\373\131\013\035\222\065\040\037"},
- {0x22F1, "\131\220\373\131\013\035\222\061\040\037"},
- {0x2300, "\015\375\142"},
- {0x2302, "\376\075"},
+ {0x22DE, "\142\114\372\011"},
+ {0x22DF, "\375\173\114\371\323"},
+ {0x22E0, "\216\374\003\216\142\040"},
+ {0x22E1, "\216\374\060\216\142\040"},
+ {0x22E2, "\216\371\233\371\265\216\142\040"},
+ {0x22E3, "\216\372\003\021\216\142\040"},
+ {0x22E4, "\371\233\021\114\372\241\012"},
+ {0x22E5, "\372\003\021\114\372\241\012"},
+ {0x22E6, "\162\144\371\112\334\371\010\040"},
+ {0x22E7, "\162\262\371\112\334\371\010\040"},
+ {0x22E8, "\374\003\371\112\334\371\010\040"},
+ {0x22E9, "\374\060\371\112\334\371\010\040"},
+ {0x22EA, "\362\132\371\175\371\063\012"},
+ {0x22EB, "\371\113\371\266\362\371\075\371\175\371\063"},
+ {0x22EC, "\216\371\175\371\063\216\142\040"},
+ {0x22ED, "\216\142\216\375\056\371\075\371\175\371\063"},
+ {0x22EE, "\131\220\377\253"},
+ {0x22EF, "\131\220\376\163"},
+ {0x22F0, "\131\220\373\132\013\035\222\065\040\037"},
+ {0x22F1, "\131\220\373\132\013\035\222\061\040\037"},
+ {0x2300, "\015\375\143"},
+ {0x2302, "\376\076"},
{0x2303, "\302\012\043\013\035\065"},
{0x2304, "\302\012\043\013\035\061"},
- {0x2305, "\376\352"},
- {0x2306, "\376\306"},
+ {0x2305, "\376\353"},
+ {0x2306, "\376\307"},
{0x2307, "\212\372\120"},
- {0x2308, "\373\365\040\042"},
- {0x2309, "\373\365\040\037"},
- {0x230A, "\373\366\040\042"},
- {0x230B, "\373\366\040\037"},
- {0x230C, "\372\111\371\251"},
+ {0x2308, "\373\366\040\042"},
+ {0x2309, "\373\366\040\037"},
+ {0x230A, "\373\367\040\042"},
+ {0x230B, "\373\367\040\037"},
+ {0x230C, "\372\111\371\252"},
{0x230D, "\372\111\372\162"},
- {0x230E, "\372\111\371\241"},
- {0x230F, "\372\111\371\375"},
+ {0x230E, "\372\111\371\242"},
+ {0x230F, "\372\111\371\376"},
{0x2310, "\134\372\116\336"},
- {0x2311, "\376\275\371\264"},
- {0x2312, "\371\051"},
- {0x2313, "\377\062"},
- {0x2314, "\377\061"},
- {0x2315, "\375\176\377\232"},
- {0x2316, "\372\265\012\376\344"},
- {0x2317, "\021\012\377\266"},
- {0x2318, "\015\012\027\375\112"},
+ {0x2311, "\376\276\371\265"},
+ {0x2312, "\371\052"},
+ {0x2313, "\377\063"},
+ {0x2314, "\377\062"},
+ {0x2315, "\375\177\377\233"},
+ {0x2316, "\372\265\012\376\345"},
+ {0x2317, "\021\012\377\267"},
+ {0x2318, "\015\012\027\375\113"},
{0x2319, "\134\372\116\260"},
- {0x231A, "\376\150"},
- {0x231B, "\377\035"},
- {0x231C, "\222\371\375"},
- {0x231D, "\222\371\241"},
+ {0x231A, "\376\151"},
+ {0x231B, "\377\036"},
+ {0x231C, "\222\371\376"},
+ {0x231D, "\222\371\242"},
{0x231E, "\222\372\162"},
- {0x231F, "\222\371\251"},
- {0x2320, "\267\371\176\373\112"},
- {0x2321, "\267\371\233\373\112"},
- {0x2322, "\373\304"},
- {0x2323, "\377\116"},
- {0x2324, "\302\012\043\013\035\065\052\154\377\214\375\316"},
- {0x2325, "\377\211\376\243"},
- {0x2326, "\375\171\040\037"},
- {0x2327, "\310\371\076\371\315"},
- {0x2328, "\375\037"},
+ {0x231F, "\222\371\252"},
+ {0x2320, "\267\371\177\373\113"},
+ {0x2321, "\267\371\234\373\113"},
+ {0x2322, "\373\305"},
+ {0x2323, "\377\117"},
+ {0x2324, "\302\012\043\013\035\065\052\154\377\215\375\317"},
+ {0x2325, "\377\212\376\244"},
+ {0x2326, "\375\172\040\037"},
+ {0x2327, "\310\371\077\371\316"},
+ {0x2328, "\375\040"},
{0x2329, "\100\013\022\042"},
{0x232A, "\100\013\022\037"},
- {0x232B, "\375\170\040\042"},
- {0x232C, "\374\310\012\374\362"},
- {0x232D, "\375\101"},
- {0x232E, "\376\350\375\317"},
- {0x232F, "\377\134"},
- {0x2330, "\375\072\377\210"},
- {0x2331, "\376\246\012\376\116"},
- {0x2332, "\377\033\375\050"},
- {0x2333, "\376\304"},
- {0x2334, "\374\304"},
- {0x2335, "\375\236"},
- {0x2336, "\015\012\123\122\376\371"},
- {0x2337, "\015\012\123\122\363\373\277"},
- {0x2338, "\015\012\123\122\377\333"},
- {0x2339, "\015\012\123\122\375\152"},
- {0x233A, "\015\012\123\122\377\007"},
- {0x233B, "\015\012\123\122\374\332"},
- {0x233C, "\015\012\123\122\377\006"},
- {0x233D, "\015\012\123\122\375\241"},
- {0x233E, "\015\012\123\122\374\361"},
- {0x233F, "\015\012\123\122\375\065\175"},
- {0x2340, "\015\012\123\122\375\056\371\217"},
+ {0x232B, "\375\171\040\042"},
+ {0x232C, "\374\311\012\374\363"},
+ {0x232D, "\375\102"},
+ {0x232E, "\376\351\375\320"},
+ {0x232F, "\377\135"},
+ {0x2330, "\375\073\377\211"},
+ {0x2331, "\376\247\012\376\117"},
+ {0x2332, "\377\034\375\051"},
+ {0x2333, "\376\305"},
+ {0x2334, "\374\305"},
+ {0x2335, "\375\237"},
+ {0x2336, "\015\012\123\122\376\372"},
+ {0x2337, "\015\012\123\122\363\373\300"},
+ {0x2338, "\015\012\123\122\377\334"},
+ {0x2339, "\015\012\123\122\375\153"},
+ {0x233A, "\015\012\123\122\377\010"},
+ {0x233B, "\015\012\123\122\374\333"},
+ {0x233C, "\015\012\123\122\377\007"},
+ {0x233D, "\015\012\123\122\375\242"},
+ {0x233E, "\015\012\123\122\374\362"},
+ {0x233F, "\015\012\123\122\375\066\175"},
+ {0x2340, "\015\012\123\122\375\057\371\220"},
{0x2341, "\015\012\123\122\363\361"},
- {0x2342, "\015\012\123\122\363\361\371\274"},
+ {0x2342, "\015\012\123\122\363\361\371\275"},
{0x2343, "\015\012\123\122\363\162\144\306"},
{0x2344, "\015\012\123\122\363\162\262\306"},
{0x2345, "\015\012\123\122\372\042\013\022\042"},
{0x2346, "\015\012\123\122\372\042\013\022\037"},
- {0x2347, "\015\012\123\122\363\376\054"},
- {0x2348, "\015\012\123\122\363\375\053"},
- {0x2349, "\015\012\123\122\374\035"},
- {0x234A, "\015\012\123\122\307\013\035\061\371\046"},
- {0x234B, "\015\012\123\122\377\052"},
+ {0x2347, "\015\012\123\122\363\376\055"},
+ {0x2348, "\015\012\123\122\363\375\054"},
+ {0x2349, "\015\012\123\122\374\036"},
+ {0x234A, "\015\012\123\122\307\013\035\061\371\047"},
+ {0x234B, "\015\012\123\122\377\053"},
{0x234C, "\015\012\123\122\363\117\371\016"},
- {0x234D, "\015\012\123\122\363\371\267"},
- {0x234E, "\015\012\123\122\373\171"},
+ {0x234D, "\015\012\123\122\363\371\270"},
+ {0x234E, "\015\012\123\122\373\172"},
{0x234F, "\015\012\123\122\372\042\013\035\065"},
{0x2350, "\015\012\123\122\363\372\216"},
{0x2351, "\015\012\123\122\307\013\035\065"},
- {0x2352, "\015\012\123\122\375\014"},
+ {0x2352, "\015\012\123\122\375\015"},
{0x2353, "\015\012\123\122\363\117"},
- {0x2354, "\015\012\123\122\363\375\126"},
- {0x2355, "\015\012\123\122\375\216"},
+ {0x2354, "\015\012\123\122\363\375\127"},
+ {0x2355, "\015\012\123\122\375\217"},
{0x2356, "\015\012\123\122\372\042\013\035\061"},
- {0x2357, "\015\012\123\122\363\375\175"},
- {0x2358, "\015\012\123\122\371\215\371\046"},
- {0x2359, "\015\012\123\122\371\267\371\046"},
- {0x235A, "\015\012\123\122\371\110\371\046"},
- {0x235B, "\015\012\123\122\144\231\371\046"},
- {0x235C, "\015\012\123\122\231\371\046"},
- {0x235D, "\015\012\123\122\374\264"},
- {0x235E, "\015\012\123\122\371\215\371\356"},
- {0x235F, "\015\012\123\122\375\036"},
- {0x2360, "\015\012\123\122\374\374\021"},
- {0x2361, "\015\012\123\122\377\140"},
- {0x2362, "\015\012\123\122\375\061"},
- {0x2363, "\015\012\123\122\377\141"},
- {0x2364, "\015\012\123\122\376\126"},
- {0x2365, "\015\012\123\122\375\144"},
- {0x2366, "\015\012\123\122\373\175"},
+ {0x2357, "\015\012\123\122\363\375\176"},
+ {0x2358, "\015\012\123\122\371\216\371\047"},
+ {0x2359, "\015\012\123\122\371\270\371\047"},
+ {0x235A, "\015\012\123\122\371\111\371\047"},
+ {0x235B, "\015\012\123\122\144\231\371\047"},
+ {0x235C, "\015\012\123\122\231\371\047"},
+ {0x235D, "\015\012\123\122\374\265"},
+ {0x235E, "\015\012\123\122\371\216\371\357"},
+ {0x235F, "\015\012\123\122\375\037"},
+ {0x2360, "\015\012\123\122\374\375\021"},
+ {0x2361, "\015\012\123\122\377\141"},
+ {0x2362, "\015\012\123\122\375\062"},
+ {0x2363, "\015\012\123\122\377\142"},
+ {0x2364, "\015\012\123\122\376\127"},
+ {0x2365, "\015\012\123\122\375\145"},
+ {0x2366, "\015\012\123\122\373\176"},
{0x2367, "\015\012\123\122\372\212"},
- {0x2368, "\015\012\123\122\373\304"},
- {0x2369, "\015\012\123\122\376\143"},
- {0x236A, "\015\012\123\122\374\355"},
- {0x236B, "\015\012\123\122\377\247"},
- {0x236C, "\015\012\123\122\377\323"},
- {0x236D, "\015\012\123\122\374\301"},
- {0x236E, "\015\012\123\122\372\007\371\046"},
+ {0x2368, "\015\012\123\122\373\305"},
+ {0x2369, "\015\012\123\122\376\144"},
+ {0x236A, "\015\012\123\122\374\356"},
+ {0x236B, "\015\012\123\122\377\250"},
+ {0x236C, "\015\012\123\122\377\324"},
+ {0x236D, "\015\012\123\122\374\302"},
+ {0x236E, "\015\012\123\122\372\010\371\047"},
{0x236F, "\015\012\123\122\363\372\241\012"},
- {0x2370, "\015\012\123\122\363\375\343"},
- {0x2371, "\015\012\123\122\376\214"},
- {0x2372, "\015\012\123\122\376\215"},
+ {0x2370, "\015\012\123\122\363\375\344"},
+ {0x2371, "\015\012\123\122\376\215"},
+ {0x2372, "\015\012\123\122\376\216"},
{0x2373, "\015\012\123\122\055"},
- {0x2374, "\015\012\123\122\371\170"},
+ {0x2374, "\015\012\123\122\371\171"},
{0x2375, "\015\012\123\122\147"},
- {0x2376, "\015\012\123\122\152\371\046"},
- {0x2377, "\015\012\123\122\247\371\046"},
- {0x2378, "\015\012\123\122\055\371\046"},
- {0x2379, "\015\012\123\122\147\371\046"},
+ {0x2376, "\015\012\123\122\152\371\047"},
+ {0x2377, "\015\012\123\122\247\371\047"},
+ {0x2378, "\015\012\123\122\055\371\047"},
+ {0x2379, "\015\012\123\122\147\371\047"},
{0x237A, "\015\012\123\122\152"},
- {0x2400, "\015\335\373\325"},
- {0x2401, "\015\371\141\373\110"},
- {0x2402, "\015\371\141\012\372\166"},
+ {0x2400, "\015\335\373\326"},
+ {0x2401, "\015\371\142\373\111"},
+ {0x2402, "\015\371\142\012\372\166"},
{0x2403, "\015\070\012\372\166"},
- {0x2404, "\015\070\012\371\254"},
- {0x2405, "\015\373\122"},
- {0x2406, "\015\373\105\012\372\147"},
- {0x2407, "\015\012\374\050"},
- {0x2408, "\015\371\025\373\033"},
- {0x2409, "\377\133\012\372\163\372\263"},
- {0x240A, "\015\012\373\065\012\212"},
+ {0x2404, "\015\070\012\371\255"},
+ {0x2405, "\015\373\123"},
+ {0x2406, "\015\373\106\012\372\147"},
+ {0x2407, "\015\012\374\051"},
+ {0x2408, "\015\371\026\373\034"},
+ {0x2409, "\377\134\012\372\163\372\263"},
+ {0x240A, "\015\012\373\066\012\212"},
{0x240B, "\015\012\372\163\224"},
- {0x240C, "\015\012\377\053\012\373\345"},
- {0x240D, "\015\012\374\022\012\373\066"},
- {0x240E, "\015\373\227\372\047"},
+ {0x240C, "\015\012\377\054\012\373\346"},
+ {0x240D, "\015\012\374\023\012\373\067"},
+ {0x240E, "\015\373\230\372\047"},
{0x240F, "\015\007\372\047"},
- {0x2410, "\015\373\016\371\254"},
- {0x2411, "\015\012\371\023\012\372\055\132"},
- {0x2412, "\015\012\371\023\012\372\055\154"},
- {0x2413, "\015\012\371\023\012\372\055\131"},
- {0x2414, "\015\012\371\023\012\372\055\200"},
- {0x2415, "\015\373\105\012\372\147\223"},
- {0x2416, "\015\012\374\064"},
- {0x2417, "\015\012\070\012\304\012\371\254"},
- {0x2418, "\015\373\106"},
- {0x2419, "\015\012\070\012\374\060"},
- {0x241A, "\015\012\374\056"},
- {0x241B, "\015\375\115"},
- {0x241C, "\015\371\007\012\373\163"},
- {0x241D, "\015\371\007\012\373\215"},
- {0x241E, "\015\371\007\375\106"},
- {0x241F, "\015\371\007\375\114"},
- {0x2420, "\015\335\371\025"},
- {0x2421, "\015\012\374\061"},
- {0x2422, "\015\377\267\335\376\043"},
- {0x2423, "\374\375\376\257"},
- {0x2424, "\015\012\376\221\212"},
- {0x2440, "\100\371\042"},
- {0x2441, "\375\025\371\042"},
- {0x2442, "\373\176\371\042"},
- {0x2443, "\373\176\352\371\042"},
- {0x2444, "\372\210\012\375\021\371\042"},
- {0x2445, "\372\114\373\346\371\042"},
- {0x2446, "\375\335\012\377\125\374\353\371\042"},
- {0x2447, "\376\147\226\375\034\371\042"},
- {0x2448, "\371\071\371\042"},
- {0x2449, "\373\330\012\375\045\371\042"},
- {0x244A, "\051\210\361\371\274\371\042"},
+ {0x2410, "\015\373\016\371\255"},
+ {0x2411, "\015\012\371\024\012\372\055\132"},
+ {0x2412, "\015\012\371\024\012\372\055\154"},
+ {0x2413, "\015\012\371\024\012\372\055\131"},
+ {0x2414, "\015\012\371\024\012\372\055\200"},
+ {0x2415, "\015\373\106\012\372\147\223"},
+ {0x2416, "\015\012\374\065"},
+ {0x2417, "\015\012\070\012\304\012\371\255"},
+ {0x2418, "\015\373\107"},
+ {0x2419, "\015\012\070\012\374\061"},
+ {0x241A, "\015\012\374\057"},
+ {0x241B, "\015\375\116"},
+ {0x241C, "\015\371\007\012\373\164"},
+ {0x241D, "\015\371\007\012\373\216"},
+ {0x241E, "\015\371\007\375\107"},
+ {0x241F, "\015\371\007\375\115"},
+ {0x2420, "\015\335\371\026"},
+ {0x2421, "\015\012\374\062"},
+ {0x2422, "\015\377\270\335\376\044"},
+ {0x2423, "\374\376\376\260"},
+ {0x2424, "\015\012\376\222\212"},
+ {0x2440, "\100\371\043"},
+ {0x2441, "\375\026\371\043"},
+ {0x2442, "\373\177\371\043"},
+ {0x2443, "\373\177\352\371\043"},
+ {0x2444, "\372\210\012\375\022\371\043"},
+ {0x2445, "\372\114\373\347\371\043"},
+ {0x2446, "\375\336\012\377\126\374\354\371\043"},
+ {0x2447, "\376\150\226\375\035\371\043"},
+ {0x2448, "\371\072\371\043"},
+ {0x2449, "\373\331\012\375\046\371\043"},
+ {0x244A, "\051\210\361\371\275\371\043"},
{0x2460, "\017\132\034"},
{0x2461, "\017\154\034"},
{0x2462, "\017\131\034"},
{0x2467, "\017\204\034"},
{0x2468, "\017\235\034"},
{0x2469, "\163\354\034"},
- {0x246A, "\163\371\243\034"},
- {0x246B, "\163\371\140\034"},
- {0x246C, "\163\372\023\034"},
- {0x246D, "\163\372\011\034"},
- {0x246E, "\163\372\012\034"},
- {0x246F, "\163\371\247\034"},
- {0x2470, "\163\371\352\034"},
- {0x2471, "\163\371\350\034"},
- {0x2472, "\163\371\351\034"},
- {0x2473, "\163\372\030\034"},
+ {0x246A, "\163\371\244\034"},
+ {0x246B, "\163\371\141\034"},
+ {0x246C, "\163\372\024\034"},
+ {0x246D, "\163\372\012\034"},
+ {0x246E, "\163\372\013\034"},
+ {0x246F, "\163\371\250\034"},
+ {0x2470, "\163\371\353\034"},
+ {0x2471, "\163\371\351\034"},
+ {0x2472, "\163\371\352\034"},
+ {0x2473, "\163\372\031\034"},
{0x2474, "\017\132\052\053"},
{0x2475, "\017\154\052\053"},
{0x2476, "\017\131\052\053"},
{0x247B, "\017\204\052\053"},
{0x247C, "\017\235\052\053"},
{0x247D, "\163\354\052\053"},
- {0x247E, "\163\371\243\052\053"},
- {0x247F, "\163\371\140\052\053"},
- {0x2480, "\163\372\023\052\053"},
- {0x2481, "\163\372\011\052\053"},
- {0x2482, "\163\372\012\052\053"},
- {0x2483, "\163\371\247\052\053"},
- {0x2484, "\163\371\352\052\053"},
- {0x2485, "\163\371\350\052\053"},
- {0x2486, "\163\371\351\052\053"},
- {0x2487, "\163\372\030\052\053"},
+ {0x247E, "\163\371\244\052\053"},
+ {0x247F, "\163\371\141\052\053"},
+ {0x2480, "\163\372\024\052\053"},
+ {0x2481, "\163\372\012\052\053"},
+ {0x2482, "\163\372\013\052\053"},
+ {0x2483, "\163\371\250\052\053"},
+ {0x2484, "\163\371\353\052\053"},
+ {0x2485, "\163\371\351\052\053"},
+ {0x2486, "\163\371\352\052\053"},
+ {0x2487, "\163\372\031\052\053"},
{0x2488, "\017\132\027"},
{0x2489, "\017\154\027"},
{0x248A, "\017\131\027"},
{0x248F, "\017\204\027"},
{0x2490, "\017\235\027"},
{0x2491, "\163\354\027"},
- {0x2492, "\163\371\243\027"},
- {0x2493, "\163\371\140\027"},
- {0x2494, "\163\372\023\027"},
- {0x2495, "\163\372\011\027"},
- {0x2496, "\163\372\012\027"},
- {0x2497, "\163\371\247\027"},
- {0x2498, "\163\371\352\027"},
- {0x2499, "\163\371\350\027"},
- {0x249A, "\163\371\351\027"},
- {0x249B, "\163\372\030\027"},
+ {0x2492, "\163\371\244\027"},
+ {0x2493, "\163\371\141\027"},
+ {0x2494, "\163\372\024\027"},
+ {0x2495, "\163\372\012\027"},
+ {0x2496, "\163\372\013\027"},
+ {0x2497, "\163\371\250\027"},
+ {0x2498, "\163\371\353\027"},
+ {0x2499, "\163\371\351\027"},
+ {0x249A, "\163\371\352\027"},
+ {0x249B, "\163\372\031\027"},
{0x249C, "\001\003\004\046\052\053"},
{0x249D, "\001\003\004\275\052\053"},
{0x249E, "\001\003\004\241\052\053"},
{0x24A9, "\001\003\004\213\052\053"},
{0x24AA, "\001\003\004\050\052\053"},
{0x24AB, "\001\003\004\351\052\053"},
- {0x24AC, "\001\003\004\371\065\052\053"},
+ {0x24AC, "\001\003\004\371\066\052\053"},
{0x24AD, "\001\003\004\150\052\053"},
{0x24AE, "\001\003\004\207\052\053"},
{0x24AF, "\001\003\004\236\052\053"},
{0x24C3, "\001\005\004\213\146"},
{0x24C4, "\001\005\004\050\146"},
{0x24C5, "\001\005\004\351\146"},
- {0x24C6, "\001\005\004\371\065\146"},
+ {0x24C6, "\001\005\004\371\066\146"},
{0x24C7, "\001\005\004\150\146"},
{0x24C8, "\001\005\004\207\146"},
{0x24C9, "\001\005\004\236\146"},
{0x24DD, "\001\003\004\213\146"},
{0x24DE, "\001\003\004\050\146"},
{0x24DF, "\001\003\004\351\146"},
- {0x24E0, "\001\003\004\371\065\146"},
+ {0x24E0, "\001\003\004\371\066\146"},
{0x24E1, "\001\003\004\150\146"},
{0x24E2, "\001\003\004\207\146"},
{0x24E3, "\001\003\004\236\146"},
{0x2501, "\045\211\121"},
{0x2502, "\045\145\070"},
{0x2503, "\045\145\121"},
- {0x2504, "\045\371\022\371\047\211\070"},
- {0x2505, "\045\371\022\371\047\211\121"},
- {0x2506, "\045\371\022\371\047\145\070"},
- {0x2507, "\045\371\022\371\047\145\121"},
- {0x2508, "\045\371\022\372\140\211\070"},
- {0x2509, "\045\371\022\372\140\211\121"},
- {0x250A, "\045\371\022\372\140\145\070"},
- {0x250B, "\045\371\022\372\140\145\121"},
+ {0x2504, "\045\371\023\371\050\211\070"},
+ {0x2505, "\045\371\023\371\050\211\121"},
+ {0x2506, "\045\371\023\371\050\145\070"},
+ {0x2507, "\045\371\023\371\050\145\121"},
+ {0x2508, "\045\371\023\372\140\211\070"},
+ {0x2509, "\045\371\023\372\140\211\121"},
+ {0x250A, "\045\371\023\372\140\145\070"},
+ {0x250B, "\045\371\023\372\140\145\121"},
{0x250C, "\045\070\013\035\061\011\013\022\037"},
{0x250D, "\045\070\013\035\061\011\121\013\022\037"},
{0x250E, "\045\121\013\035\061\011\070\013\022\037"},
{0x2549, "\045\070\013\022\037\011\121\013\022\042\011\145"},
{0x254A, "\045\070\013\022\042\011\121\013\022\037\011\145"},
{0x254B, "\045\145\011\211\121"},
- {0x254C, "\045\371\022\051\211\070"},
- {0x254D, "\045\371\022\051\211\121"},
- {0x254E, "\045\371\022\051\145\070"},
- {0x254F, "\045\371\022\051\145\121"},
+ {0x254C, "\045\371\023\051\211\070"},
+ {0x254D, "\045\371\023\051\211\121"},
+ {0x254E, "\045\371\023\051\145\070"},
+ {0x254F, "\045\371\023\051\145\121"},
{0x2550, "\045\051\211"},
{0x2551, "\045\051\145"},
{0x2552, "\045\270\035\061\011\051\013\022\037"},
{0x256A, "\045\145\270\011\211\051"},
{0x256B, "\045\145\051\011\211\270"},
{0x256C, "\045\051\145\011\211"},
- {0x256D, "\045\070\371\051\013\035\061\011\013\022\037"},
- {0x256E, "\045\070\371\051\013\035\061\011\013\022\042"},
- {0x256F, "\045\070\371\051\013\035\065\011\013\022\042"},
- {0x2570, "\045\070\371\051\013\035\065\011\013\022\037"},
- {0x2571, "\045\372\240\070\226\222\326\173\371\216\222\300\042"},
+ {0x256D, "\045\070\371\052\013\035\061\011\013\022\037"},
+ {0x256E, "\045\070\371\052\013\035\061\011\013\022\042"},
+ {0x256F, "\045\070\371\052\013\035\065\011\013\022\042"},
+ {0x2570, "\045\070\371\052\013\035\065\011\013\022\037"},
+ {0x2571, "\045\372\240\070\226\222\326\173\371\217\222\300\042"},
{0x2572, "\045\372\240\070\226\222\326\042\013\035\222\300\173"},
{0x2573, "\045\372\240\070\007\340"},
{0x2574, "\045\070\013\022\042"},
{0x257D, "\045\070\013\035\065\011\121\013\035\061"},
{0x257E, "\045\121\013\022\042\011\070\013\022\037"},
{0x257F, "\045\121\013\035\065\011\070\013\035\061"},
- {0x2580, "\304\267\371\176"},
- {0x2581, "\304\132\371\366\300"},
+ {0x2580, "\304\267\371\177"},
+ {0x2581, "\304\132\371\367\300"},
{0x2582, "\304\132\372\141\300"},
- {0x2583, "\304\131\371\104\300"},
- {0x2584, "\304\267\371\233"},
- {0x2585, "\304\203\371\104\300"},
+ {0x2583, "\304\131\371\105\300"},
+ {0x2584, "\304\267\371\234"},
+ {0x2585, "\304\203\371\105\300"},
{0x2586, "\304\131\372\334\300"},
- {0x2587, "\304\221\371\104\300"},
- {0x2588, "\304\373\370"},
- {0x2589, "\304\221\371\104\042"},
+ {0x2587, "\304\221\371\105\300"},
+ {0x2588, "\304\373\371"},
+ {0x2589, "\304\221\371\105\042"},
{0x258A, "\304\131\372\334\042"},
- {0x258B, "\304\203\371\104\042"},
+ {0x258B, "\304\203\371\105\042"},
{0x258C, "\304\267\042"},
- {0x258D, "\304\131\371\104\042"},
+ {0x258D, "\304\131\371\105\042"},
{0x258E, "\304\132\372\141\042"},
- {0x258F, "\304\132\371\366\042"},
+ {0x258F, "\304\132\371\367\042"},
{0x2590, "\304\267\037"},
- {0x2591, "\371\242\376\071"},
- {0x2592, "\371\242\373\306"},
- {0x2593, "\371\242\375\234"},
- {0x2594, "\304\132\371\366\326"},
- {0x2595, "\304\132\371\366\173"},
+ {0x2591, "\371\243\376\072"},
+ {0x2592, "\371\243\373\307"},
+ {0x2593, "\371\243\375\235"},
+ {0x2594, "\304\132\371\367\326"},
+ {0x2595, "\304\132\371\367\173"},
{0x25A0, "\021\156"},
{0x25A1, "\021\133"},
- {0x25A2, "\021\133\130\375\041\374\323"},
- {0x25A3, "\144\021\156\372\266\371\076\132\021\133"},
- {0x25A4, "\021\371\365\375\315"},
- {0x25A5, "\021\371\365\373\001"},
- {0x25A6, "\021\374\005"},
- {0x25A7, "\021\371\365\226\065\040\042\013\035\061\040\037"},
- {0x25A8, "\021\371\365\226\065\040\037\013\035\061\040\042"},
- {0x25A9, "\021\374\005\007\375\141"},
+ {0x25A2, "\021\133\130\375\042\374\324"},
+ {0x25A3, "\144\021\156\372\266\371\077\132\021\133"},
+ {0x25A4, "\021\371\366\375\316"},
+ {0x25A5, "\021\371\366\373\001"},
+ {0x25A6, "\021\374\006"},
+ {0x25A7, "\021\371\366\226\065\040\042\013\035\061\040\037"},
+ {0x25A8, "\021\371\366\226\065\040\037\013\035\061\040\042"},
+ {0x25A9, "\021\374\006\007\375\142"},
{0x25AA, "\144\021\156"},
{0x25AB, "\144\021\133"},
- {0x25AC, "\371\315\156"},
- {0x25AD, "\371\315\133"},
- {0x25AE, "\371\315\145\156"},
- {0x25AF, "\371\315\145\133"},
- {0x25B0, "\373\347\156"},
- {0x25B1, "\373\347\133"},
+ {0x25AC, "\371\316\156"},
+ {0x25AD, "\371\316\133"},
+ {0x25AE, "\371\316\145\156"},
+ {0x25AF, "\371\316\145\133"},
+ {0x25B0, "\373\350\156"},
+ {0x25B1, "\373\350\133"},
{0x25B2, "\265\156\245\013\035\065"},
{0x25B3, "\265\133\245\013\035\065"},
{0x25B4, "\144\265\156\245\013\035\065"},
{0x25C3, "\144\265\133\245\013\022\042"},
{0x25C4, "\372\130\156\013\022\042"},
{0x25C5, "\372\130\133\013\022\042"},
- {0x25C6, "\371\110\156"},
- {0x25C7, "\371\110\133"},
- {0x25C8, "\371\110\133\130\144\371\110\156\007\374\265"},
- {0x25C9, "\144\252\156\372\266\371\076\132\252\133"},
- {0x25CA, "\371\110"},
+ {0x25C6, "\371\111\156"},
+ {0x25C7, "\371\111\133"},
+ {0x25C8, "\371\111\133\130\144\371\111\156\007\374\266"},
+ {0x25C9, "\144\252\156\372\266\371\077\132\252\133"},
+ {0x25CA, "\371\111"},
{0x25CB, "\252\133"},
- {0x25CC, "\252\007\376\337"},
- {0x25CD, "\252\371\365\373\001"},
- {0x25CE, "\144\252\133\372\266\371\076\132\252\133"},
- {0x25CF, "\373\133\156"},
+ {0x25CC, "\252\007\376\340"},
+ {0x25CD, "\252\371\366\373\001"},
+ {0x25CE, "\144\252\133\372\266\371\077\132\252\133"},
+ {0x25CF, "\373\134\156"},
{0x25D0, "\252\130\267\042\217"},
{0x25D1, "\252\130\267\037\217"},
- {0x25D2, "\252\130\267\371\233\217"},
- {0x25D3, "\252\130\267\371\176\217"},
- {0x25D4, "\252\130\371\313\326\173\156"},
- {0x25D5, "\373\133\130\371\313\326\042\133"},
- {0x25D6, "\373\124\042\156"},
- {0x25D7, "\373\124\037\156"},
+ {0x25D2, "\252\130\267\371\234\217"},
+ {0x25D3, "\252\130\267\371\177\217"},
+ {0x25D4, "\252\130\371\314\326\173\156"},
+ {0x25D5, "\373\134\130\371\314\326\042\133"},
+ {0x25D6, "\373\125\042\156"},
+ {0x25D7, "\373\125\037\156"},
{0x25D8, "\027\007\223"},
{0x25D9, "\252\133\007\223"},
{0x25DA, "\372\053\326\133\007\223"},
{0x25DB, "\372\053\300\133\007\223"},
- {0x25DC, "\371\051\012\252\371\076\035\371\313\326\042"},
- {0x25DD, "\371\051\012\252\371\076\035\371\313\326\173"},
- {0x25DE, "\371\051\012\252\371\076\035\371\313\300\173"},
- {0x25DF, "\371\051\012\252\371\076\035\371\313\300\042"},
+ {0x25DC, "\371\052\012\252\371\077\035\371\314\326\042"},
+ {0x25DD, "\371\052\012\252\371\077\035\371\314\326\173"},
+ {0x25DE, "\371\052\012\252\371\077\035\371\314\300\173"},
+ {0x25DF, "\371\052\012\252\371\077\035\371\314\300\042"},
{0x25E0, "\372\053\326"},
{0x25E1, "\372\053\300"},
- {0x25E2, "\222\371\325\156\300\173"},
- {0x25E3, "\222\371\325\156\300\042"},
- {0x25E4, "\222\371\325\156\326\042"},
- {0x25E5, "\222\371\325\156\326\173"},
+ {0x25E2, "\222\371\326\156\300\173"},
+ {0x25E3, "\222\371\326\156\300\042"},
+ {0x25E4, "\222\371\326\156\326\042"},
+ {0x25E5, "\222\371\326\156\326\173"},
{0x25E6, "\144\252\133"},
{0x25E7, "\021\130\267\042\217"},
{0x25E8, "\021\130\267\037\217"},
- {0x25E9, "\021\130\267\371\176\042\217"},
- {0x25EA, "\021\130\267\371\233\037\217"},
- {0x25EB, "\021\133\130\212\374\367\224"},
- {0x25EC, "\265\133\245\013\035\065\371\245"},
+ {0x25E9, "\021\130\267\371\177\042\217"},
+ {0x25EA, "\021\130\267\371\234\037\217"},
+ {0x25EB, "\021\133\130\212\374\370\224"},
+ {0x25EC, "\265\133\245\013\035\065\371\246"},
{0x25ED, "\265\245\013\035\065\130\267\042\217"},
{0x25EE, "\265\245\013\035\065\130\267\037\217"},
{0x25EF, "\262\252"},
- {0x2600, "\372\015\156\130\374\014"},
- {0x2601, "\376\224"},
- {0x2602, "\376\267"},
- {0x2603, "\374\371\012\372\113"},
- {0x2604, "\375\046"},
+ {0x2600, "\372\016\156\130\374\015"},
+ {0x2601, "\376\225"},
+ {0x2602, "\376\270"},
+ {0x2603, "\374\372\012\372\113"},
+ {0x2604, "\375\047"},
{0x2605, "\303\217"},
{0x2606, "\303\315"},
- {0x2607, "\377\324"},
- {0x2608, "\376\244"},
- {0x2609, "\372\015"},
- {0x260A, "\372\114\373\035"},
- {0x260B, "\372\114\375\134"},
- {0x260C, "\375\051"},
- {0x260D, "\376\242"},
+ {0x2607, "\377\325"},
+ {0x2608, "\376\245"},
+ {0x2609, "\372\016"},
+ {0x260A, "\372\114\373\036"},
+ {0x260B, "\372\114\375\135"},
+ {0x260C, "\375\052"},
+ {0x260D, "\376\243"},
{0x260E, "\372\170\156"},
{0x260F, "\372\170\133"},
- {0x2610, "\371\341\012\372\032"},
- {0x2611, "\371\341\012\372\032\375\040"},
- {0x2612, "\371\341\012\372\032\130\310"},
- {0x2613, "\374\356"},
- {0x261A, "\371\150\156\245\013\022\042"},
- {0x261B, "\371\150\156\245\013\022\037"},
- {0x261C, "\371\150\133\245\013\022\042"},
- {0x261D, "\371\150\133\245\013\035\065"},
- {0x261E, "\371\150\133\245\013\022\037"},
- {0x261F, "\371\150\133\245\013\035\061"},
- {0x2620, "\377\233\012\376\151"},
- {0x2621, "\134\012\373\117"},
- {0x2622, "\134\012\376\370"},
- {0x2623, "\134\012\373\117\374\365"},
- {0x2624, "\375\007"},
- {0x2625, "\340\377\330"},
- {0x2626, "\340\376\247"},
- {0x2627, "\372\301\371\170"},
- {0x2628, "\340\012\376\064"},
- {0x2629, "\340\012\375\376"},
- {0x262A, "\303\011\375\074"},
- {0x262B, "\015\371\272"},
- {0x262C, "\374\272\377\070"},
- {0x262D, "\375\222\011\376\106"},
- {0x262E, "\015\012\376\263"},
- {0x262F, "\015\226\377\304\011\226\377\303"},
- {0x2630, "\371\204\335\372\216"},
- {0x2631, "\371\204\335\376\045"},
- {0x2632, "\371\204\335\372\253"},
- {0x2633, "\371\204\335\377\207"},
- {0x2634, "\371\204\335\377\246"},
- {0x2635, "\371\204\335\372\247"},
- {0x2636, "\371\204\335\376\146"},
- {0x2637, "\371\204\335\372\021"},
- {0x2638, "\377\024\012\375\140"},
- {0x2639, "\372\173\133\375\261"},
- {0x263A, "\372\173\133\374\051"},
- {0x263B, "\372\173\156\374\051"},
- {0x263C, "\372\015\133\130\374\014"},
- {0x263D, "\373\375\374\006\012\372\104"},
- {0x263E, "\375\133\374\006\012\372\104"},
- {0x263F, "\376\115"},
- {0x2640, "\134\373\161"},
- {0x2641, "\372\021"},
- {0x2642, "\134\373\311"},
- {0x2643, "\375\374"},
- {0x2644, "\374\035"},
- {0x2645, "\377\242"},
- {0x2646, "\376\177"},
- {0x2647, "\376\335"},
- {0x2648, "\375\003"},
- {0x2649, "\377\145"},
- {0x264A, "\375\266"},
- {0x264B, "\375\011"},
- {0x264C, "\376\056"},
- {0x264D, "\377\257"},
- {0x264E, "\374\352"},
- {0x264F, "\377\054"},
- {0x2650, "\377\036"},
- {0x2651, "\375\012"},
- {0x2652, "\377\250"},
- {0x2653, "\376\341"},
- {0x2654, "\374\031\133\226\371\027\371\024"},
- {0x2655, "\373\115\315\226\371\027\371\024"},
- {0x2656, "\374\103\315\226\371\027\371\024"},
- {0x2657, "\373\174\133\226\371\027\371\024"},
- {0x2658, "\373\057\133\226\371\027\371\024"},
- {0x2659, "\373\354\133\226\371\027\371\024"},
- {0x265A, "\374\031\156\226\371\027\371\024"},
- {0x265B, "\373\115\217\226\371\027\371\024"},
- {0x265C, "\374\103\217\226\371\027\371\024"},
- {0x265D, "\373\174\156\226\371\027\371\024"},
- {0x265E, "\373\057\156\226\371\027\371\024"},
- {0x265F, "\373\354\156\226\371\027\371\024"},
+ {0x2610, "\371\342\012\372\033"},
+ {0x2611, "\371\342\012\372\033\375\041"},
+ {0x2612, "\371\342\012\372\033\130\310"},
+ {0x2613, "\374\357"},
+ {0x261A, "\371\151\156\245\013\022\042"},
+ {0x261B, "\371\151\156\245\013\022\037"},
+ {0x261C, "\371\151\133\245\013\022\042"},
+ {0x261D, "\371\151\133\245\013\035\065"},
+ {0x261E, "\371\151\133\245\013\022\037"},
+ {0x261F, "\371\151\133\245\013\035\061"},
+ {0x2620, "\377\234\012\376\152"},
+ {0x2621, "\134\012\373\120"},
+ {0x2622, "\134\012\376\371"},
+ {0x2623, "\134\012\373\120\374\366"},
+ {0x2624, "\375\010"},
+ {0x2625, "\340\377\331"},
+ {0x2626, "\340\376\250"},
+ {0x2627, "\372\301\371\171"},
+ {0x2628, "\340\012\376\065"},
+ {0x2629, "\340\012\375\377"},
+ {0x262A, "\303\011\375\075"},
+ {0x262B, "\015\371\273"},
+ {0x262C, "\374\273\377\071"},
+ {0x262D, "\375\223\011\376\107"},
+ {0x262E, "\015\012\376\264"},
+ {0x262F, "\015\226\377\305\011\226\377\304"},
+ {0x2630, "\371\205\335\372\216"},
+ {0x2631, "\371\205\335\376\046"},
+ {0x2632, "\371\205\335\372\253"},
+ {0x2633, "\371\205\335\377\210"},
+ {0x2634, "\371\205\335\377\247"},
+ {0x2635, "\371\205\335\372\247"},
+ {0x2636, "\371\205\335\376\147"},
+ {0x2637, "\371\205\335\372\022"},
+ {0x2638, "\377\025\012\375\141"},
+ {0x2639, "\372\173\133\375\262"},
+ {0x263A, "\372\173\133\374\052"},
+ {0x263B, "\372\173\156\374\052"},
+ {0x263C, "\372\016\133\130\374\015"},
+ {0x263D, "\373\376\374\007\012\372\104"},
+ {0x263E, "\375\134\374\007\012\372\104"},
+ {0x263F, "\376\116"},
+ {0x2640, "\134\373\162"},
+ {0x2641, "\372\022"},
+ {0x2642, "\134\373\312"},
+ {0x2643, "\375\375"},
+ {0x2644, "\374\036"},
+ {0x2645, "\377\243"},
+ {0x2646, "\376\200"},
+ {0x2647, "\376\336"},
+ {0x2648, "\375\004"},
+ {0x2649, "\377\146"},
+ {0x264A, "\375\267"},
+ {0x264B, "\375\012"},
+ {0x264C, "\376\057"},
+ {0x264D, "\377\260"},
+ {0x264E, "\374\353"},
+ {0x264F, "\377\055"},
+ {0x2650, "\377\037"},
+ {0x2651, "\375\013"},
+ {0x2652, "\377\251"},
+ {0x2653, "\376\342"},
+ {0x2654, "\374\032\133\226\371\030\371\025"},
+ {0x2655, "\373\116\315\226\371\030\371\025"},
+ {0x2656, "\374\104\315\226\371\030\371\025"},
+ {0x2657, "\373\175\133\226\371\030\371\025"},
+ {0x2658, "\373\060\133\226\371\030\371\025"},
+ {0x2659, "\373\355\133\226\371\030\371\025"},
+ {0x265A, "\374\032\156\226\371\030\371\025"},
+ {0x265B, "\373\116\217\226\371\030\371\025"},
+ {0x265C, "\374\104\217\226\371\030\371\025"},
+ {0x265D, "\373\175\156\226\371\030\371\025"},
+ {0x265E, "\373\060\156\226\371\030\371\025"},
+ {0x265F, "\373\355\156\226\371\030\371\025"},
{0x2660, "\372\124\156"},
- {0x2661, "\371\223\133"},
- {0x2662, "\373\056\133"},
- {0x2663, "\374\106\156"},
+ {0x2661, "\371\224\133"},
+ {0x2662, "\373\057\133"},
+ {0x2663, "\374\107\156"},
{0x2664, "\372\124\133"},
- {0x2665, "\371\223\156"},
- {0x2666, "\373\056\156"},
- {0x2667, "\374\106\133"},
- {0x2668, "\377\115\375\027"},
- {0x2669, "\373\324\217"},
- {0x266A, "\373\324\375\073"},
- {0x266B, "\154\373\103\374\012"},
- {0x266C, "\154\375\155\373\103\374\012"},
- {0x266D, "\375\004"},
- {0x266E, "\375\002"},
- {0x266F, "\375\147"},
- {0x2701, "\372\046\040\373\260\371\176\374\121"},
- {0x2702, "\372\046\376\210"},
- {0x2703, "\372\046\040\373\260\371\233\374\121"},
- {0x2704, "\372\046\374\370"},
- {0x2706, "\015\375\105\226\372\170"},
- {0x2707, "\375\166\012\377\026"},
- {0x2708, "\374\343"},
- {0x2709, "\375\202"},
- {0x270C, "\373\270\012\022\377\254"},
- {0x270D, "\373\270\007\377\213\375\116"},
- {0x270E, "\372\226\371\245\013\035\061\040\037"},
+ {0x2665, "\371\224\156"},
+ {0x2666, "\373\057\156"},
+ {0x2667, "\374\107\133"},
+ {0x2668, "\377\116\375\030"},
+ {0x2669, "\373\325\217"},
+ {0x266A, "\373\325\375\074"},
+ {0x266B, "\154\373\104\374\013"},
+ {0x266C, "\154\375\156\373\104\374\013"},
+ {0x266D, "\375\005"},
+ {0x266E, "\375\003"},
+ {0x266F, "\375\150"},
+ {0x2701, "\372\046\040\373\261\371\177\374\122"},
+ {0x2702, "\372\046\376\211"},
+ {0x2703, "\372\046\040\373\261\371\234\374\122"},
+ {0x2704, "\372\046\374\371"},
+ {0x2706, "\015\375\106\226\372\170"},
+ {0x2707, "\375\167\012\377\027"},
+ {0x2708, "\374\344"},
+ {0x2709, "\375\203"},
+ {0x270C, "\373\271\012\022\377\255"},
+ {0x270D, "\373\271\007\377\214\375\117"},
+ {0x270E, "\372\226\371\246\013\035\061\040\037"},
{0x270F, "\372\226"},
- {0x2710, "\372\226\371\245\013\035\065\040\037"},
- {0x2711, "\373\046\012\373\371\133"},
- {0x2712, "\373\046\012\373\371\156"},
- {0x2713, "\134\012\374\126"},
- {0x2714, "\370\134\012\374\126"},
+ {0x2710, "\372\226\371\246\013\035\065\040\037"},
+ {0x2711, "\373\047\012\373\372\133"},
+ {0x2712, "\373\047\012\373\372\156"},
+ {0x2713, "\134\012\374\127"},
+ {0x2714, "\370\134\012\374\127"},
{0x2715, "\310\012\372\112"},
{0x2716, "\370\310\012\372\112"},
- {0x2717, "\310\012\371\341\012\372\032"},
- {0x2718, "\370\310\012\371\341\012\372\032"},
+ {0x2717, "\310\012\371\342\012\372\033"},
+ {0x2718, "\370\310\012\371\342\012\372\033"},
{0x2719, "\340\014\130\371\012"},
- {0x271A, "\371\146\340\014"},
- {0x271B, "\340\372\326\371\132\021"},
- {0x271C, "\371\146\340\372\326\371\132\021"},
+ {0x271A, "\371\147\340\014"},
+ {0x271B, "\340\372\326\371\133\021"},
+ {0x271C, "\371\147\340\372\326\371\133\021"},
{0x271D, "\340\004"},
- {0x271E, "\340\004\377\256\371\164"},
+ {0x271E, "\340\004\377\257\371\165"},
{0x271F, "\340\004\130\371\012"},
- {0x2720, "\340\012\376\101"},
- {0x2721, "\303\012\375\121"},
+ {0x2720, "\340\012\376\102"},
+ {0x2721, "\303\012\375\122"},
{0x2722, "\340\372\304"},
- {0x2723, "\340\373\373"},
- {0x2724, "\371\146\340\373\373"},
- {0x2725, "\340\377\226"},
+ {0x2723, "\340\373\374"},
+ {0x2724, "\371\147\340\373\374"},
+ {0x2725, "\340\377\227"},
{0x2726, "\303\217\040\200\365"},
{0x2727, "\303\315\040\200\365"},
- {0x2729, "\303\315\040\371\012\374\266"},
+ {0x2729, "\303\315\040\371\012\374\267"},
{0x272A, "\303\315\146"},
- {0x272B, "\373\302\217"},
- {0x272C, "\373\302\315"},
+ {0x272B, "\373\303\217"},
+ {0x272C, "\373\303\315"},
{0x272D, "\303\217\130\371\012"},
{0x272E, "\303\217\130\370\371\012"},
- {0x272F, "\303\374\013"},
- {0x2730, "\303\315\371\164"},
+ {0x272F, "\303\374\014"},
+ {0x2730, "\303\315\371\165"},
{0x2731, "\370\371\011"},
- {0x2732, "\371\011\373\352"},
+ {0x2732, "\371\011\373\353"},
{0x2733, "\371\011\040\204\365"},
{0x2734, "\303\217\040\204\365"},
- {0x2735, "\303\374\013\040\204\365"},
+ {0x2735, "\303\374\014\040\204\365"},
{0x2736, "\303\217\040\233\365"},
- {0x2737, "\303\374\016\040\204\365"},
- {0x2738, "\371\146\303\374\016\040\204\365"},
- {0x2739, "\303\217\040\371\140\365"},
- {0x273A, "\371\011\040\371\247\365"},
+ {0x2737, "\303\374\017\040\204\365"},
+ {0x2738, "\371\147\303\374\017\040\204\365"},
+ {0x2739, "\303\217\040\371\141\365"},
+ {0x273A, "\371\011\040\371\250\365"},
{0x273B, "\371\011\372\101"},
- {0x273C, "\371\011\372\101\373\352"},
+ {0x273C, "\371\011\372\101\373\353"},
{0x273D, "\370\371\011\372\101"},
- {0x273E, "\377\075\315\011\217"},
- {0x273F, "\374\010\217"},
- {0x2740, "\374\010\315"},
- {0x2741, "\051\376\367\217\130\371\012"},
+ {0x273E, "\377\076\315\011\217"},
+ {0x273F, "\374\011\217"},
+ {0x2740, "\374\011\315"},
+ {0x2741, "\051\376\370\217\130\371\012"},
{0x2742, "\303\146\372\326\040\204\365"},
- {0x2743, "\370\374\334\376\375\372\101"},
+ {0x2743, "\370\374\335\376\376\372\101"},
{0x2744, "\372\254\012\372\113"},
- {0x2745, "\372\254\012\372\113\040\131\375\233\377\215"},
- {0x2746, "\370\372\254\012\372\113\040\375\032"},
- {0x2747, "\374\155"},
- {0x2748, "\370\374\155"},
- {0x2749, "\371\011\376\342"},
- {0x274A, "\373\036\040\204\365\373\261"},
- {0x274B, "\370\373\036\040\204\365\373\261"},
+ {0x2745, "\372\254\012\372\113\040\131\375\234\377\216"},
+ {0x2746, "\370\372\254\012\372\113\040\375\033"},
+ {0x2747, "\374\156"},
+ {0x2748, "\370\374\156"},
+ {0x2749, "\371\011\376\343"},
+ {0x274A, "\373\037\040\204\365\373\262"},
+ {0x274B, "\370\373\037\040\204\365\373\262"},
{0x274D, "\252\133\372\321"},
- {0x274F, "\021\133\130\371\242\373\376\372\156\035\222\300\173"},
- {0x2750, "\021\133\130\371\242\373\376\372\156\035\222\326\173"},
- {0x2751, "\021\133\372\321\371\216\222\300\173"},
- {0x2752, "\021\133\372\321\371\216\222\326\173"},
- {0x2756, "\371\110\156\376\104\371\132\310\133"},
- {0x2758, "\210\224\373\165"},
- {0x2759, "\210\224\373\306"},
- {0x275A, "\210\224\377\331"},
- {0x275B, "\371\014\012\371\230\007\242\012\371\146\331\270\371\343"},
- {0x275C, "\371\014\012\371\230\007\242\012\371\146\331\270"},
- {0x275D, "\371\014\012\371\230\007\242\012\371\146\331\051\371\343"},
- {0x275E, "\371\014\012\371\230\007\242\012\371\146\331\051"},
- {0x2761, "\373\353\012\373\303\012\371\230\040\320\375\070"},
- {0x2762, "\370\027\371\131\012\371\230"},
- {0x2763, "\370\027\371\131\012\371\230\007\242\012\371\223"},
- {0x2764, "\370\371\223\156"},
- {0x2765, "\370\371\223\156\372\224"},
- {0x2766, "\371\223\373\167"},
- {0x2767, "\371\223\373\167\372\224"},
+ {0x274F, "\021\133\130\371\243\373\377\372\156\035\222\300\173"},
+ {0x2750, "\021\133\130\371\243\373\377\372\156\035\222\326\173"},
+ {0x2751, "\021\133\372\321\371\217\222\300\173"},
+ {0x2752, "\021\133\372\321\371\217\222\326\173"},
+ {0x2756, "\371\111\156\376\105\371\133\310\133"},
+ {0x2758, "\210\224\373\166"},
+ {0x2759, "\210\224\373\307"},
+ {0x275A, "\210\224\377\332"},
+ {0x275B, "\371\014\012\371\231\007\242\012\371\147\331\270\371\344"},
+ {0x275C, "\371\014\012\371\231\007\242\012\371\147\331\270"},
+ {0x275D, "\371\014\012\371\231\007\242\012\371\147\331\051\371\344"},
+ {0x275E, "\371\014\012\371\231\007\242\012\371\147\331\051"},
+ {0x2761, "\373\354\012\373\304\012\371\231\040\320\375\071"},
+ {0x2762, "\370\027\371\132\012\371\231"},
+ {0x2763, "\370\027\371\132\012\371\231\007\242\012\371\224"},
+ {0x2764, "\370\371\224\156"},
+ {0x2765, "\370\371\224\156\372\224"},
+ {0x2766, "\371\224\373\170"},
+ {0x2767, "\371\224\373\170\372\224"},
{0x2776, "\237\017\132\223\034"},
{0x2777, "\237\017\154\223\034"},
{0x2778, "\237\017\131\223\034"},
{0x2791, "\237\017\204\232\316\223\034"},
{0x2792, "\237\017\235\232\316\223\034"},
{0x2793, "\237\163\354\232\316\223\034"},
- {0x2794, "\043\367\013\022\037\040\302\371\106"},
- {0x2798, "\043\367\371\251"},
+ {0x2794, "\043\367\013\022\037\040\302\371\107"},
+ {0x2798, "\043\367\371\252"},
{0x2799, "\043\367\013\022\037\367"},
- {0x279A, "\043\367\371\241"},
- {0x279B, "\043\012\377\220\013\022\037"},
- {0x279C, "\043\367\040\302\374\322\013\022\037"},
+ {0x279A, "\043\367\371\242"},
+ {0x279B, "\043\012\377\221\013\022\037"},
+ {0x279C, "\043\367\040\302\374\323\013\022\037"},
{0x279D, "\043\040\302\007\265\013\022\037"},
{0x279E, "\043\367\040\302\007\265\013\022\037"},
{0x279F, "\043\130\372\132\040\302\007\265\013\022\037"},
{0x27A0, "\043\367\130\372\132\040\302\007\265\013\022\037"},
{0x27A1, "\043\217\013\022\037"},
- {0x27A2, "\302\012\043\013\022\037\007\374\105\374\154\371\041\035\065"},
- {0x27A3, "\302\012\043\013\022\037\007\374\105\374\154\371\041\035\061"},
+ {0x27A2, "\302\012\043\013\022\037\007\374\106\374\155\371\042\035\065"},
+ {0x27A3, "\302\012\043\013\022\037\007\374\106\374\155\371\042\035\061"},
{0x27A4, "\302\012\043\217\013\022\037"},
- {0x27A5, "\043\217\367\373\101\013\035\061\011\013\022\037"},
- {0x27A6, "\043\217\373\101\013\035\065\011\013\022\037"},
- {0x27A7, "\043\217\377\217\013\022\037"},
- {0x27A8, "\043\217\367\040\302\375\047\013\022\037"},
- {0x27A9, "\043\315\013\022\037\371\164\040\372\076"},
- {0x27AA, "\043\315\013\022\037\371\164\040\373\257"},
- {0x27AB, "\043\315\013\022\037\373\351\013\373\257\011\371\164"},
- {0x27AC, "\043\315\013\022\037\373\351\013\372\076\011\371\164"},
- {0x27AD, "\043\315\367\013\022\037\040\371\242\371\233\037"},
- {0x27AE, "\043\315\367\013\022\037\040\371\242\371\176\037"},
- {0x27AF, "\043\373\152\315\013\022\037\371\164\040\372\076\011\371\041\375\137"},
- {0x27B1, "\043\373\152\315\013\022\037\371\164\040\372\076\011\371\041\373\126"},
- {0x27B2, "\043\315\367\013\022\037\040\371\012\375\035"},
- {0x27B3, "\043\040\371\100\315\013\022\037"},
- {0x27B4, "\043\040\371\100\156\371\251"},
- {0x27B5, "\043\040\371\100\156\013\022\037"},
- {0x27B6, "\043\040\371\100\156\371\241"},
- {0x27B7, "\043\040\371\100\121\217\371\251"},
- {0x27B8, "\043\040\371\100\121\217\013\022\037"},
- {0x27B9, "\043\040\371\100\121\217\371\241"},
+ {0x27A5, "\043\217\367\373\102\013\035\061\011\013\022\037"},
+ {0x27A6, "\043\217\373\102\013\035\065\011\013\022\037"},
+ {0x27A7, "\043\217\377\220\013\022\037"},
+ {0x27A8, "\043\217\367\040\302\375\050\013\022\037"},
+ {0x27A9, "\043\315\013\022\037\371\165\040\372\076"},
+ {0x27AA, "\043\315\013\022\037\371\165\040\373\260"},
+ {0x27AB, "\043\315\013\022\037\373\352\013\373\260\011\371\165"},
+ {0x27AC, "\043\315\013\022\037\373\352\013\372\076\011\371\165"},
+ {0x27AD, "\043\315\367\013\022\037\040\371\243\371\234\037"},
+ {0x27AE, "\043\315\367\013\022\037\040\371\243\371\177\037"},
+ {0x27AF, "\043\373\153\315\013\022\037\371\165\040\372\076\011\371\042\375\140"},
+ {0x27B1, "\043\373\153\315\013\022\037\371\165\040\372\076\011\371\042\373\127"},
+ {0x27B2, "\043\315\367\013\022\037\040\371\012\375\036"},
+ {0x27B3, "\043\040\371\101\315\013\022\037"},
+ {0x27B4, "\043\040\371\101\156\371\252"},
+ {0x27B5, "\043\040\371\101\156\013\022\037"},
+ {0x27B6, "\043\040\371\101\156\371\242"},
+ {0x27B7, "\043\040\371\101\121\217\371\252"},
+ {0x27B8, "\043\040\371\101\121\217\013\022\037"},
+ {0x27B9, "\043\040\371\101\121\217\371\242"},
{0x27BA, "\043\013\022\037\040\302\372\304"},
{0x27BB, "\043\013\022\037\040\372\257\372\304"},
{0x27BC, "\043\013\022\037\040\372\142\007\242\012\222"},
{0x27BD, "\043\367\013\022\037\040\372\142\007\242\012\222"},
- {0x27BE, "\043\013\022\037\040\371\012\371\306"},
- {0x3000, "\371\025\063"},
+ {0x27BE, "\043\013\022\037\040\371\012\371\307"},
+ {0x3000, "\371\026\063"},
{0x3001, "\331\063"},
{0x3002, "\027\063"},
- {0x3003, "\375\262\012\371\316"},
- {0x3004, "\015\012\373\323\375\341\375\370"},
- {0x3005, "\153\063\371\345"},
- {0x3006, "\153\063\012\375\223"},
+ {0x3003, "\375\263\012\371\317"},
+ {0x3004, "\015\012\373\324\375\342\375\371"},
+ {0x3005, "\153\063\371\346"},
+ {0x3006, "\153\063\012\375\224"},
{0x3007, "\311\063"},
{0x3008, "\100\372\040\040\042"},
{0x3009, "\100\372\040\040\037"},
{0x300D, "\100\222\173"},
{0x300E, "\100\133\222\042"},
{0x300F, "\100\133\222\173"},
- {0x3010, "\100\156\371\277\042"},
- {0x3011, "\100\156\371\277\173"},
+ {0x3010, "\100\156\371\300\042"},
+ {0x3011, "\100\156\371\300\173"},
{0x3012, "\153\372\330"},
- {0x3013, "\134\375\271"},
- {0x3014, "\100\042\007\371\212"},
- {0x3015, "\100\173\007\371\212"},
- {0x3016, "\100\133\371\277\042"},
- {0x3017, "\100\133\371\277\173"},
- {0x3018, "\100\133\042\007\371\212"},
- {0x3019, "\100\133\173\007\371\212"},
+ {0x3013, "\134\375\272"},
+ {0x3014, "\100\042\007\371\213"},
+ {0x3015, "\100\173\007\371\213"},
+ {0x3016, "\100\133\371\300\042"},
+ {0x3017, "\100\133\371\300\173"},
+ {0x3018, "\100\133\042\007\371\213"},
+ {0x3019, "\100\133\173\007\371\213"},
{0x301A, "\100\133\042"},
{0x301B, "\100\133\173"},
- {0x301C, "\264\371\225\007\371\357"},
- {0x301D, "\371\014\051\371\064\336"},
- {0x301E, "\371\014\051\371\064"},
- {0x301F, "\371\014\051\371\064\300"},
+ {0x301C, "\264\371\226\007\371\360"},
+ {0x301D, "\371\014\051\371\065\336"},
+ {0x301E, "\371\014\051\371\065"},
+ {0x301F, "\371\014\051\371\065\300"},
{0x3020, "\372\173\007\153\372\330"},
- {0x3021, "\163\132\371\102"},
- {0x3022, "\163\154\371\102"},
- {0x3023, "\163\131\371\102"},
- {0x3024, "\163\200\371\102"},
- {0x3025, "\163\203\371\102"},
- {0x3026, "\163\233\371\102"},
- {0x3027, "\163\221\371\102"},
- {0x3028, "\163\204\371\102"},
- {0x3029, "\163\235\371\102"},
- {0x302A, "\153\063\012\272\375\230"},
- {0x302B, "\153\063\012\272\373\035"},
- {0x302C, "\153\063\012\272\377\113"},
- {0x302D, "\153\063\012\272\375\201"},
+ {0x3021, "\163\132\371\103"},
+ {0x3022, "\163\154\371\103"},
+ {0x3023, "\163\131\371\103"},
+ {0x3024, "\163\200\371\103"},
+ {0x3025, "\163\203\371\103"},
+ {0x3026, "\163\233\371\103"},
+ {0x3027, "\163\221\371\103"},
+ {0x3028, "\163\204\371\103"},
+ {0x3029, "\163\235\371\103"},
+ {0x302A, "\153\063\012\272\375\231"},
+ {0x302B, "\153\063\012\272\373\036"},
+ {0x302C, "\153\063\012\272\377\114"},
+ {0x302D, "\153\063\012\272\375\202"},
{0x302E, "\153\012\272\010\027"},
{0x302F, "\153\012\272\010\051\027"},
- {0x3030, "\264\371\225\372\001"},
- {0x3031, "\153\224\371\370\012\371\316"},
- {0x3032, "\153\224\371\370\012\371\316\130\371\067\372\031"},
- {0x3033, "\267\371\176\012\153\224\371\370\012\371\316"},
- {0x3034, "\267\371\176\012\153\224\371\370\012\371\316\130\371\067\372\031"},
- {0x3035, "\267\371\233\012\153\224\371\370\012\371\316"},
+ {0x3030, "\264\371\226\372\002"},
+ {0x3031, "\153\224\371\371\012\371\317"},
+ {0x3032, "\153\224\371\371\012\371\317\130\371\070\372\032"},
+ {0x3033, "\267\371\177\012\153\224\371\371\012\371\317"},
+ {0x3034, "\267\371\177\012\153\224\371\371\012\371\317\130\371\070\372\032"},
+ {0x3035, "\267\371\234\012\153\224\371\371\012\371\317"},
{0x3036, "\153\372\330\146"},
- {0x3037, "\015\125\063\371\007\012\373\065\012\212"},
- {0x303F, "\375\131\063"},
+ {0x3037, "\015\125\063\371\007\012\373\066\012\212"},
+ {0x303F, "\375\132\063"},
{0x3041, "\001\075\046\003"},
{0x3042, "\001\075\046"},
{0x3043, "\001\075\072\003"},
{0x3049, "\001\075\050\003"},
{0x304A, "\001\075\050"},
{0x304B, "\001\075\244"},
- {0x304C, "\001\075\371\056"},
+ {0x304C, "\001\075\371\057"},
{0x304D, "\001\075\372\073"},
- {0x304E, "\001\075\373\207"},
+ {0x304E, "\001\075\373\210"},
{0x304F, "\001\075\372\075"},
- {0x3050, "\001\075\373\216"},
- {0x3051, "\001\075\371\235"},
- {0x3052, "\001\075\373\202"},
- {0x3053, "\001\075\371\237"},
- {0x3054, "\001\075\373\214"},
+ {0x3050, "\001\075\373\217"},
+ {0x3051, "\001\075\371\236"},
+ {0x3052, "\001\075\373\203"},
+ {0x3053, "\001\075\371\240"},
+ {0x3054, "\001\075\373\215"},
{0x3055, "\001\075\364"},
{0x3056, "\001\075\372\177"},
{0x3057, "\001\075\372\152"},
- {0x3058, "\001\075\374\146"},
+ {0x3058, "\001\075\374\147"},
{0x3059, "\001\075\372\161"},
- {0x305A, "\001\075\374\151"},
- {0x305B, "\001\075\371\317"},
- {0x305C, "\001\075\374\145"},
- {0x305D, "\001\075\371\045"},
- {0x305E, "\001\075\374\150"},
+ {0x305A, "\001\075\374\152"},
+ {0x305B, "\001\075\371\320"},
+ {0x305C, "\001\075\374\146"},
+ {0x305D, "\001\075\371\046"},
+ {0x305E, "\001\075\374\151"},
{0x305F, "\001\075\371\017"},
{0x3060, "\001\075\371\013"},
- {0x3061, "\001\075\372\022"},
- {0x3062, "\001\075\373\130"},
- {0x3063, "\001\075\371\255\003"},
- {0x3064, "\001\075\371\255"},
+ {0x3061, "\001\075\372\023"},
+ {0x3062, "\001\075\373\131"},
+ {0x3063, "\001\075\371\256\003"},
+ {0x3064, "\001\075\371\256"},
{0x3065, "\001\075\226"},
{0x3066, "\001\075\372\165"},
{0x3067, "\001\075\012"},
- {0x3068, "\001\075\371\253"},
- {0x3069, "\001\075\371\353"},
+ {0x3068, "\001\075\371\254"},
+ {0x3069, "\001\075\371\354"},
{0x306A, "\001\075\371\002"},
{0x306B, "\001\075\216"},
- {0x306C, "\001\075\371\304"},
- {0x306D, "\001\075\371\112"},
- {0x306E, "\001\075\371\163"},
+ {0x306C, "\001\075\371\305"},
+ {0x306D, "\001\075\371\113"},
+ {0x306E, "\001\075\371\164"},
{0x306F, "\001\075\333"},
- {0x3070, "\001\075\371\052"},
+ {0x3070, "\001\075\371\053"},
{0x3071, "\001\075\371\015"},
{0x3072, "\001\075\372\067"},
- {0x3073, "\001\075\373\047"},
- {0x3074, "\001\075\371\307"},
+ {0x3073, "\001\075\373\050"},
+ {0x3074, "\001\075\371\310"},
{0x3075, "\001\075\372\070"},
- {0x3076, "\001\075\373\054"},
- {0x3077, "\001\075\374\003"},
- {0x3078, "\001\075\371\103"},
- {0x3079, "\001\075\373\044"},
- {0x307A, "\001\075\371\115"},
- {0x307B, "\001\075\371\060"},
+ {0x3076, "\001\075\373\055"},
+ {0x3077, "\001\075\374\004"},
+ {0x3078, "\001\075\371\104"},
+ {0x3079, "\001\075\373\045"},
+ {0x307A, "\001\075\371\116"},
+ {0x307B, "\001\075\371\061"},
{0x307C, "\001\075\372\045"},
{0x307D, "\001\075\372\126"},
{0x307E, "\001\075\360"},
{0x307F, "\001\075\372\110"},
{0x3080, "\001\075\371\001"},
{0x3081, "\001\075\372\106"},
- {0x3082, "\001\075\371\240"},
+ {0x3082, "\001\075\371\241"},
{0x3083, "\001\075\332\003"},
{0x3084, "\001\075\332"},
- {0x3085, "\001\075\371\256\003"},
- {0x3086, "\001\075\371\256"},
+ {0x3085, "\001\075\371\257\003"},
+ {0x3086, "\001\075\371\257"},
{0x3087, "\001\075\371\021\003"},
{0x3088, "\001\075\371\021"},
{0x3089, "\001\075\345"},
{0x308A, "\001\075\372\144"},
{0x308B, "\001\075\372\146"},
- {0x308C, "\001\075\371\314"},
- {0x308D, "\001\075\372\014"},
- {0x308E, "\001\075\371\121\003"},
- {0x308F, "\001\075\371\121"},
- {0x3090, "\001\075\371\330"},
- {0x3091, "\001\075\372\033"},
- {0x3092, "\001\075\371\122"},
+ {0x308C, "\001\075\371\315"},
+ {0x308D, "\001\075\372\015"},
+ {0x308E, "\001\075\371\122\003"},
+ {0x308F, "\001\075\371\122"},
+ {0x3090, "\001\075\371\331"},
+ {0x3091, "\001\075\372\034"},
+ {0x3092, "\001\075\371\123"},
{0x3093, "\001\075\213"},
- {0x3094, "\001\075\374\124"},
- {0x3099, "\023\371\276\371\067\372\031"},
- {0x309A, "\023\371\276\371\067\372\352"},
- {0x309B, "\153\371\276\012\371\067\372\031"},
- {0x309C, "\153\371\276\012\371\067\372\352"},
- {0x309D, "\153\371\345\075"},
- {0x309E, "\153\371\345\374\122\075"},
+ {0x3094, "\001\075\374\125"},
+ {0x3099, "\023\371\277\371\070\372\032"},
+ {0x309A, "\023\371\277\371\070\372\352"},
+ {0x309B, "\153\371\277\012\371\070\372\032"},
+ {0x309C, "\153\371\277\012\371\070\372\352"},
+ {0x309D, "\153\371\346\075"},
+ {0x309E, "\153\371\346\374\123\075"},
{0x30A1, "\001\030\046\003"},
{0x30A2, "\001\030\046"},
{0x30A3, "\001\030\072\003"},
{0x30A9, "\001\030\050\003"},
{0x30AA, "\001\030\050"},
{0x30AB, "\001\030\244"},
- {0x30AC, "\001\030\371\056"},
+ {0x30AC, "\001\030\371\057"},
{0x30AD, "\001\030\372\073"},
- {0x30AE, "\001\030\373\207"},
+ {0x30AE, "\001\030\373\210"},
{0x30AF, "\001\030\372\075"},
- {0x30B0, "\001\030\373\216"},
- {0x30B1, "\001\030\371\235"},
- {0x30B2, "\001\030\373\202"},
- {0x30B3, "\001\030\371\237"},
- {0x30B4, "\001\030\373\214"},
+ {0x30B0, "\001\030\373\217"},
+ {0x30B1, "\001\030\371\236"},
+ {0x30B2, "\001\030\373\203"},
+ {0x30B3, "\001\030\371\240"},
+ {0x30B4, "\001\030\373\215"},
{0x30B5, "\001\030\364"},
{0x30B6, "\001\030\372\177"},
{0x30B7, "\001\030\372\152"},
- {0x30B8, "\001\030\374\146"},
+ {0x30B8, "\001\030\374\147"},
{0x30B9, "\001\030\372\161"},
- {0x30BA, "\001\030\374\151"},
- {0x30BB, "\001\030\371\317"},
- {0x30BC, "\001\030\374\145"},
- {0x30BD, "\001\030\371\045"},
- {0x30BE, "\001\030\374\150"},
+ {0x30BA, "\001\030\374\152"},
+ {0x30BB, "\001\030\371\320"},
+ {0x30BC, "\001\030\374\146"},
+ {0x30BD, "\001\030\371\046"},
+ {0x30BE, "\001\030\374\151"},
{0x30BF, "\001\030\371\017"},
{0x30C0, "\001\030\371\013"},
- {0x30C1, "\001\030\372\022"},
- {0x30C2, "\001\030\373\130"},
- {0x30C3, "\001\030\371\255\003"},
- {0x30C4, "\001\030\371\255"},
+ {0x30C1, "\001\030\372\023"},
+ {0x30C2, "\001\030\373\131"},
+ {0x30C3, "\001\030\371\256\003"},
+ {0x30C4, "\001\030\371\256"},
{0x30C5, "\001\030\226"},
{0x30C6, "\001\030\372\165"},
{0x30C7, "\001\030\012"},
- {0x30C8, "\001\030\371\253"},
- {0x30C9, "\001\030\371\353"},
+ {0x30C8, "\001\030\371\254"},
+ {0x30C9, "\001\030\371\354"},
{0x30CA, "\001\030\371\002"},
{0x30CB, "\001\030\216"},
- {0x30CC, "\001\030\371\304"},
- {0x30CD, "\001\030\371\112"},
- {0x30CE, "\001\030\371\163"},
+ {0x30CC, "\001\030\371\305"},
+ {0x30CD, "\001\030\371\113"},
+ {0x30CE, "\001\030\371\164"},
{0x30CF, "\001\030\333"},
- {0x30D0, "\001\030\371\052"},
+ {0x30D0, "\001\030\371\053"},
{0x30D1, "\001\030\371\015"},
{0x30D2, "\001\030\372\067"},
- {0x30D3, "\001\030\373\047"},
- {0x30D4, "\001\030\371\307"},
+ {0x30D3, "\001\030\373\050"},
+ {0x30D4, "\001\030\371\310"},
{0x30D5, "\001\030\372\070"},
- {0x30D6, "\001\030\373\054"},
- {0x30D7, "\001\030\374\003"},
- {0x30D8, "\001\030\371\103"},
- {0x30D9, "\001\030\373\044"},
- {0x30DA, "\001\030\371\115"},
- {0x30DB, "\001\030\371\060"},
+ {0x30D6, "\001\030\373\055"},
+ {0x30D7, "\001\030\374\004"},
+ {0x30D8, "\001\030\371\104"},
+ {0x30D9, "\001\030\373\045"},
+ {0x30DA, "\001\030\371\116"},
+ {0x30DB, "\001\030\371\061"},
{0x30DC, "\001\030\372\045"},
{0x30DD, "\001\030\372\126"},
{0x30DE, "\001\030\360"},
{0x30DF, "\001\030\372\110"},
{0x30E0, "\001\030\371\001"},
{0x30E1, "\001\030\372\106"},
- {0x30E2, "\001\030\371\240"},
+ {0x30E2, "\001\030\371\241"},
{0x30E3, "\001\030\332\003"},
{0x30E4, "\001\030\332"},
- {0x30E5, "\001\030\371\256\003"},
- {0x30E6, "\001\030\371\256"},
+ {0x30E5, "\001\030\371\257\003"},
+ {0x30E6, "\001\030\371\257"},
{0x30E7, "\001\030\371\021\003"},
{0x30E8, "\001\030\371\021"},
{0x30E9, "\001\030\345"},
{0x30EA, "\001\030\372\144"},
{0x30EB, "\001\030\372\146"},
- {0x30EC, "\001\030\371\314"},
- {0x30ED, "\001\030\372\014"},
- {0x30EE, "\001\030\371\121\003"},
- {0x30EF, "\001\030\371\121"},
- {0x30F0, "\001\030\371\330"},
- {0x30F1, "\001\030\372\033"},
- {0x30F2, "\001\030\371\122"},
+ {0x30EC, "\001\030\371\315"},
+ {0x30ED, "\001\030\372\015"},
+ {0x30EE, "\001\030\371\122\003"},
+ {0x30EF, "\001\030\371\122"},
+ {0x30F0, "\001\030\371\331"},
+ {0x30F1, "\001\030\372\034"},
+ {0x30F2, "\001\030\371\123"},
{0x30F3, "\001\030\213"},
- {0x30F4, "\001\030\374\124"},
+ {0x30F4, "\001\030\374\125"},
{0x30F5, "\001\030\244\003"},
- {0x30F6, "\001\030\371\235\003"},
- {0x30F7, "\001\030\371\206"},
- {0x30F8, "\001\030\377\253"},
+ {0x30F6, "\001\030\371\236\003"},
+ {0x30F7, "\001\030\371\207"},
+ {0x30F8, "\001\030\377\254"},
{0x30F9, "\001\030\372\172"},
{0x30FA, "\001\030\373\002"},
- {0x30FB, "\027\371\037\030"},
- {0x30FC, "\153\371\276\012\371\067\372\134"},
- {0x30FD, "\153\371\345\030"},
- {0x30FE, "\153\371\345\374\122\030"},
+ {0x30FB, "\027\371\040\030"},
+ {0x30FC, "\153\371\277\012\371\070\372\134"},
+ {0x30FD, "\153\371\346\030"},
+ {0x30FE, "\153\371\346\374\123\030"},
{0x3105, "\001\177\275"},
{0x3106, "\001\177\351"},
{0x3107, "\001\177\256"},
{0x310E, "\001\177\301"},
{0x310F, "\001\177\230"},
{0x3110, "\001\177\344"},
- {0x3111, "\001\177\371\065"},
+ {0x3111, "\001\177\371\066"},
{0x3112, "\001\177\310"},
- {0x3113, "\001\177\377\321"},
- {0x3114, "\001\177\375\023"},
- {0x3115, "\001\177\377\067"},
+ {0x3113, "\001\177\377\322"},
+ {0x3114, "\001\177\375\024"},
+ {0x3115, "\001\177\377\070"},
{0x3116, "\001\177\150"},
{0x3117, "\001\177\243"},
{0x3118, "\001\177\241"},
{0x311A, "\001\177\046"},
{0x311B, "\001\177\050"},
{0x311C, "\001\177\060"},
- {0x311D, "\001\177\375\173"},
+ {0x311D, "\001\177\375\174"},
{0x311E, "\001\177\250"},
- {0x311F, "\001\177\373\146"},
- {0x3120, "\001\177\371\216"},
+ {0x311F, "\001\177\373\147"},
+ {0x3120, "\001\177\371\217"},
{0x3121, "\001\177\114"},
{0x3122, "\001\177\372\205"},
{0x3123, "\001\177\007"},
- {0x3124, "\001\177\373\030"},
+ {0x3124, "\001\177\373\031"},
{0x3125, "\001\177\372\060"},
- {0x3126, "\001\177\375\203"},
+ {0x3126, "\001\177\375\204"},
{0x3127, "\001\177\072"},
{0x3128, "\001\177\107"},
- {0x3129, "\001\177\375\353"},
+ {0x3129, "\001\177\375\354"},
{0x312A, "\001\177\324"},
- {0x312B, "\001\177\371\303"},
- {0x312C, "\001\177\375\256"},
- {0x3131, "\001\010\371\154"},
+ {0x312B, "\001\177\371\304"},
+ {0x312C, "\001\177\375\257"},
+ {0x3131, "\001\010\371\155"},
{0x3132, "\001\010\372\157"},
{0x3133, "\001\010\372\302"},
- {0x3134, "\001\010\371\162"},
+ {0x3134, "\001\010\371\163"},
{0x3135, "\001\010\372\316"},
{0x3136, "\001\010\372\315"},
- {0x3137, "\001\010\371\203"},
+ {0x3137, "\001\010\371\204"},
{0x3138, "\001\010\372\364"},
- {0x3139, "\001\010\371\171"},
+ {0x3139, "\001\010\371\172"},
{0x313A, "\001\010\372\342"},
{0x313B, "\001\010\372\343"},
{0x313C, "\001\010\372\345"},
{0x313E, "\001\010\372\347"},
{0x313F, "\001\010\372\344"},
{0x3140, "\001\010\372\145"},
- {0x3141, "\001\010\371\160"},
- {0x3142, "\001\010\371\167"},
+ {0x3141, "\001\010\371\161"},
+ {0x3142, "\001\010\371\170"},
{0x3143, "\001\010\372\362"},
{0x3144, "\001\010\372\125"},
- {0x3145, "\001\010\371\173"},
+ {0x3145, "\001\010\371\174"},
{0x3146, "\001\010\372\160"},
- {0x3147, "\001\010\371\151"},
- {0x3148, "\001\010\371\116"},
+ {0x3147, "\001\010\371\152"},
+ {0x3148, "\001\010\371\117"},
{0x3149, "\001\010\372\363"},
- {0x314A, "\001\010\371\200"},
- {0x314B, "\001\010\371\153"},
- {0x314C, "\001\010\371\177"},
- {0x314D, "\001\010\371\165"},
- {0x314E, "\001\010\371\147"},
+ {0x314A, "\001\010\371\201"},
+ {0x314B, "\001\010\371\154"},
+ {0x314C, "\001\010\371\200"},
+ {0x314D, "\001\010\371\166"},
+ {0x314E, "\001\010\371\150"},
{0x314F, "\001\010\046"},
{0x3150, "\001\010\373\015"},
{0x3151, "\001\010\332"},
{0x3152, "\001\010\373\012"},
{0x3153, "\001\010\050"},
- {0x3154, "\001\010\371\257"},
+ {0x3154, "\001\010\371\260"},
{0x3155, "\001\010\371\021"},
{0x3156, "\001\010\373\013"},
{0x3157, "\001\010\373\020"},
- {0x3158, "\001\010\371\121"},
+ {0x3158, "\001\010\371\122"},
{0x3159, "\001\010\373\004"},
{0x315A, "\001\010\372\251"},
{0x315B, "\001\010\373\014"},
{0x315C, "\001\010\114"},
- {0x315D, "\001\010\371\122"},
+ {0x315D, "\001\010\371\123"},
{0x315E, "\001\010\373\005"},
- {0x315F, "\001\010\371\330"},
- {0x3160, "\001\010\371\050"},
+ {0x315F, "\001\010\371\331"},
+ {0x3160, "\001\010\371\051"},
{0x3161, "\001\010\373\021"},
{0x3162, "\001\010\373\022"},
{0x3163, "\001\010\072"},
- {0x3164, "\371\340\010"},
- {0x3165, "\001\010\374\054"},
+ {0x3164, "\371\341\010"},
+ {0x3165, "\001\010\374\055"},
{0x3166, "\001\010\372\317"},
- {0x3167, "\001\010\373\317"},
- {0x3168, "\001\010\373\316"},
- {0x3169, "\001\010\374\023"},
- {0x316A, "\001\010\374\027"},
- {0x316B, "\001\010\374\026"},
- {0x316C, "\001\010\374\025"},
- {0x316D, "\001\010\374\030"},
+ {0x3167, "\001\010\373\320"},
+ {0x3168, "\001\010\373\317"},
+ {0x3169, "\001\010\374\024"},
+ {0x316A, "\001\010\374\030"},
+ {0x316B, "\001\010\374\027"},
+ {0x316C, "\001\010\374\026"},
+ {0x316D, "\001\010\374\031"},
{0x316E, "\001\010\372\310"},
- {0x316F, "\001\010\373\301"},
- {0x3170, "\001\010\373\300"},
+ {0x316F, "\001\010\373\302"},
+ {0x3170, "\001\010\373\301"},
{0x3171, "\001\010\372\275"},
- {0x3172, "\001\010\373\356"},
- {0x3173, "\001\010\373\364"},
- {0x3174, "\001\010\373\360"},
- {0x3175, "\001\010\373\361"},
- {0x3176, "\001\010\373\363"},
- {0x3177, "\001\010\373\362"},
+ {0x3172, "\001\010\373\357"},
+ {0x3173, "\001\010\373\365"},
+ {0x3174, "\001\010\373\361"},
+ {0x3175, "\001\010\373\362"},
+ {0x3176, "\001\010\373\364"},
+ {0x3177, "\001\010\373\363"},
{0x3178, "\001\010\372\277"},
- {0x3179, "\001\010\373\246"},
+ {0x3179, "\001\010\373\247"},
{0x317A, "\001\010\372\354"},
- {0x317B, "\001\010\374\045"},
+ {0x317B, "\001\010\374\046"},
{0x317C, "\001\010\372\356"},
{0x317D, "\001\010\372\355"},
- {0x317E, "\001\010\374\047"},
+ {0x317E, "\001\010\374\050"},
{0x317F, "\001\010\372\323"},
{0x3180, "\001\010\372\361"},
{0x3181, "\001\010\373\006"},
- {0x3182, "\001\010\374\135"},
- {0x3183, "\001\010\374\134"},
+ {0x3182, "\001\010\374\136"},
+ {0x3183, "\001\010\374\135"},
{0x3184, "\001\010\372\276"},
- {0x3185, "\001\010\374\053"},
+ {0x3185, "\001\010\374\054"},
{0x3186, "\001\010\373\010"},
- {0x3187, "\001\010\374\142"},
- {0x3188, "\001\010\374\143"},
- {0x3189, "\001\010\374\141"},
- {0x318A, "\001\010\374\137"},
- {0x318B, "\001\010\374\140"},
- {0x318C, "\001\010\374\136"},
- {0x318D, "\001\010\373\034"},
- {0x318E, "\001\010\374\331"},
- {0x3190, "\153\346\063\012\376\053"},
- {0x3191, "\153\346\063\375\113"},
+ {0x3187, "\001\010\374\143"},
+ {0x3188, "\001\010\374\144"},
+ {0x3189, "\001\010\374\142"},
+ {0x318A, "\001\010\374\140"},
+ {0x318B, "\001\010\374\141"},
+ {0x318C, "\001\010\374\137"},
+ {0x318D, "\001\010\373\035"},
+ {0x318E, "\001\010\374\332"},
+ {0x3190, "\153\346\063\012\376\054"},
+ {0x3191, "\153\346\063\375\114"},
{0x3192, "\153\346\063\132"},
{0x3193, "\153\346\063\154"},
{0x3194, "\153\346\063\131"},
{0x3196, "\153\346\063\226\065"},
{0x3197, "\153\346\063\226\372\213"},
{0x3198, "\153\346\063\226\061"},
- {0x3199, "\153\346\063\226\373\375"},
- {0x319A, "\153\346\063\226\377\056"},
- {0x319B, "\153\346\063\226\377\225"},
- {0x319C, "\153\346\063\226\374\007"},
+ {0x3199, "\153\346\063\226\373\376"},
+ {0x319A, "\153\346\063\226\377\057"},
+ {0x319B, "\153\346\063\226\377\226"},
+ {0x319C, "\153\346\063\226\374\010"},
{0x319D, "\153\346\063\226\372\216"},
- {0x319E, "\153\346\063\012\022\372\021"},
- {0x319F, "\153\346\063\012\376\044"},
- {0x3200, "\010\371\154\052\053"},
- {0x3201, "\010\371\162\052\053"},
- {0x3202, "\010\371\203\052\053"},
- {0x3203, "\010\371\171\052\053"},
- {0x3204, "\010\371\160\052\053"},
- {0x3205, "\010\371\167\052\053"},
- {0x3206, "\010\371\173\052\053"},
- {0x3207, "\010\371\151\052\053"},
- {0x3208, "\010\371\116\052\053"},
- {0x3209, "\010\371\200\052\053"},
- {0x320A, "\010\371\153\052\053"},
- {0x320B, "\010\371\177\052\053"},
- {0x320C, "\010\371\165\052\053"},
- {0x320D, "\010\371\147\052\053"},
- {0x320E, "\010\371\154\046\052\053"},
- {0x320F, "\010\371\162\046\052\053"},
- {0x3210, "\010\371\203\046\052\053"},
- {0x3211, "\010\371\171\046\052\053"},
- {0x3212, "\010\371\160\046\052\053"},
- {0x3213, "\010\371\167\046\052\053"},
- {0x3214, "\010\371\173\046\052\053"},
- {0x3215, "\010\371\151\046\052\053"},
- {0x3216, "\010\371\116\046\052\053"},
- {0x3217, "\010\371\200\046\052\053"},
- {0x3218, "\010\371\153\046\052\053"},
- {0x3219, "\010\371\177\046\052\053"},
- {0x321A, "\010\371\165\046\052\053"},
- {0x321B, "\010\371\147\046\052\053"},
- {0x321C, "\010\371\116\114\052\053"},
+ {0x319E, "\153\346\063\012\022\372\022"},
+ {0x319F, "\153\346\063\012\376\045"},
+ {0x3200, "\010\371\155\052\053"},
+ {0x3201, "\010\371\163\052\053"},
+ {0x3202, "\010\371\204\052\053"},
+ {0x3203, "\010\371\172\052\053"},
+ {0x3204, "\010\371\161\052\053"},
+ {0x3205, "\010\371\170\052\053"},
+ {0x3206, "\010\371\174\052\053"},
+ {0x3207, "\010\371\152\052\053"},
+ {0x3208, "\010\371\117\052\053"},
+ {0x3209, "\010\371\201\052\053"},
+ {0x320A, "\010\371\154\052\053"},
+ {0x320B, "\010\371\200\052\053"},
+ {0x320C, "\010\371\166\052\053"},
+ {0x320D, "\010\371\150\052\053"},
+ {0x320E, "\010\371\155\046\052\053"},
+ {0x320F, "\010\371\163\046\052\053"},
+ {0x3210, "\010\371\204\046\052\053"},
+ {0x3211, "\010\371\172\046\052\053"},
+ {0x3212, "\010\371\161\046\052\053"},
+ {0x3213, "\010\371\170\046\052\053"},
+ {0x3214, "\010\371\174\046\052\053"},
+ {0x3215, "\010\371\152\046\052\053"},
+ {0x3216, "\010\371\117\046\052\053"},
+ {0x3217, "\010\371\201\046\052\053"},
+ {0x3218, "\010\371\154\046\052\053"},
+ {0x3219, "\010\371\200\046\052\053"},
+ {0x321A, "\010\371\166\046\052\053"},
+ {0x321B, "\010\371\150\046\052\053"},
+ {0x321C, "\010\371\117\114\052\053"},
{0x3220, "\077\132\052\053"},
{0x3221, "\077\154\052\053"},
{0x3222, "\077\131\052\053"},
{0x322A, "\077\372\104\052\053"},
{0x322B, "\077\372\253\052\053"},
{0x322C, "\077\372\247\052\053"},
- {0x322D, "\077\373\053\052\053"},
- {0x322E, "\077\373\312\052\053"},
- {0x322F, "\077\372\021\052\053"},
- {0x3230, "\077\372\015\052\053"},
- {0x3231, "\077\373\272\052\053"},
- {0x3232, "\077\373\040\052\053"},
+ {0x322D, "\077\373\054\052\053"},
+ {0x322E, "\077\373\313\052\053"},
+ {0x322F, "\077\372\022\052\053"},
+ {0x3230, "\077\372\016\052\053"},
+ {0x3231, "\077\373\273\052\053"},
+ {0x3232, "\077\373\041\052\053"},
{0x3233, "\077\372\357\052\053"},
- {0x3234, "\077\373\322\052\053"},
- {0x3235, "\077\374\052\052\053"},
- {0x3236, "\077\373\164\052\053"},
- {0x3237, "\077\373\200\052\053"},
- {0x3238, "\077\374\104\052\053"},
- {0x3239, "\077\377\004\052\053"},
- {0x323A, "\077\374\320\052\053"},
- {0x323B, "\077\374\156\052\053"},
- {0x323C, "\077\377\127\052\053"},
- {0x323D, "\077\373\153\052\053"},
- {0x323E, "\077\374\021\052\053"},
- {0x323F, "\077\373\027\052\053"},
- {0x3240, "\077\375\224\052\053"},
- {0x3241, "\077\374\020\052\053"},
- {0x3242, "\077\377\110\052\053"},
- {0x3243, "\077\374\336\052\053"},
- {0x3260, "\010\034\371\154"},
- {0x3261, "\010\034\371\162"},
- {0x3262, "\010\034\371\203"},
- {0x3263, "\010\034\371\171"},
- {0x3264, "\010\034\371\160"},
- {0x3265, "\010\034\371\167"},
- {0x3266, "\010\034\371\173"},
- {0x3267, "\010\034\371\151"},
- {0x3268, "\010\034\371\116"},
- {0x3269, "\010\034\371\200"},
- {0x326A, "\010\034\371\153"},
- {0x326B, "\010\034\371\177"},
- {0x326C, "\010\034\371\165"},
- {0x326D, "\010\034\371\147"},
- {0x326E, "\010\034\371\154\046"},
- {0x326F, "\010\034\371\162\046"},
- {0x3270, "\010\034\371\203\046"},
- {0x3271, "\010\034\371\171\046"},
- {0x3272, "\010\034\371\160\046"},
- {0x3273, "\010\034\371\167\046"},
- {0x3274, "\010\034\371\173\046"},
- {0x3275, "\010\034\371\151\046"},
- {0x3276, "\010\034\371\116\046"},
- {0x3277, "\010\034\371\200\046"},
- {0x3278, "\010\034\371\153\046"},
- {0x3279, "\010\034\371\177\046"},
- {0x327A, "\010\034\371\165\046"},
- {0x327B, "\010\034\371\147\046"},
- {0x327F, "\015\012\373\323\375\064"},
+ {0x3234, "\077\373\323\052\053"},
+ {0x3235, "\077\374\053\052\053"},
+ {0x3236, "\077\373\165\052\053"},
+ {0x3237, "\077\373\201\052\053"},
+ {0x3238, "\077\374\105\052\053"},
+ {0x3239, "\077\377\005\052\053"},
+ {0x323A, "\077\374\321\052\053"},
+ {0x323B, "\077\374\157\052\053"},
+ {0x323C, "\077\377\130\052\053"},
+ {0x323D, "\077\373\154\052\053"},
+ {0x323E, "\077\374\022\052\053"},
+ {0x323F, "\077\373\030\052\053"},
+ {0x3240, "\077\375\225\052\053"},
+ {0x3241, "\077\374\021\052\053"},
+ {0x3242, "\077\377\111\052\053"},
+ {0x3243, "\077\374\337\052\053"},
+ {0x3260, "\010\034\371\155"},
+ {0x3261, "\010\034\371\163"},
+ {0x3262, "\010\034\371\204"},
+ {0x3263, "\010\034\371\172"},
+ {0x3264, "\010\034\371\161"},
+ {0x3265, "\010\034\371\170"},
+ {0x3266, "\010\034\371\174"},
+ {0x3267, "\010\034\371\152"},
+ {0x3268, "\010\034\371\117"},
+ {0x3269, "\010\034\371\201"},
+ {0x326A, "\010\034\371\154"},
+ {0x326B, "\010\034\371\200"},
+ {0x326C, "\010\034\371\166"},
+ {0x326D, "\010\034\371\150"},
+ {0x326E, "\010\034\371\155\046"},
+ {0x326F, "\010\034\371\163\046"},
+ {0x3270, "\010\034\371\204\046"},
+ {0x3271, "\010\034\371\172\046"},
+ {0x3272, "\010\034\371\161\046"},
+ {0x3273, "\010\034\371\170\046"},
+ {0x3274, "\010\034\371\174\046"},
+ {0x3275, "\010\034\371\152\046"},
+ {0x3276, "\010\034\371\117\046"},
+ {0x3277, "\010\034\371\201\046"},
+ {0x3278, "\010\034\371\154\046"},
+ {0x3279, "\010\034\371\200\046"},
+ {0x327A, "\010\034\371\166\046"},
+ {0x327B, "\010\034\371\150\046"},
+ {0x327F, "\015\012\373\324\375\065"},
{0x3280, "\077\132\034"},
{0x3281, "\077\154\034"},
{0x3282, "\077\131\034"},
{0x328A, "\077\372\104\034"},
{0x328B, "\077\372\253\034"},
{0x328C, "\077\372\247\034"},
- {0x328D, "\077\373\053\034"},
- {0x328E, "\077\373\312\034"},
- {0x328F, "\077\372\021\034"},
- {0x3290, "\077\372\015\034"},
- {0x3291, "\077\373\272\034"},
- {0x3292, "\077\373\040\034"},
+ {0x328D, "\077\373\054\034"},
+ {0x328E, "\077\373\313\034"},
+ {0x328F, "\077\372\022\034"},
+ {0x3290, "\077\372\016\034"},
+ {0x3291, "\077\373\273\034"},
+ {0x3292, "\077\373\041\034"},
{0x3293, "\077\372\357\034"},
- {0x3294, "\077\373\322\034"},
- {0x3295, "\077\374\052\034"},
- {0x3296, "\077\373\164\034"},
- {0x3297, "\077\373\200\034"},
- {0x3298, "\077\374\104\034"},
- {0x3299, "\077\377\060\034"},
- {0x329A, "\077\373\311\034"},
- {0x329B, "\077\373\161\034"},
- {0x329C, "\077\374\267\034"},
- {0x329D, "\077\375\211\034"},
- {0x329E, "\077\375\337\034"},
- {0x329F, "\077\374\340\034"},
- {0x32A0, "\077\374\324\034"},
- {0x32A1, "\077\374\020\034"},
- {0x32A2, "\077\375\057\034"},
- {0x32A3, "\077\375\062\034"},
+ {0x3294, "\077\373\323\034"},
+ {0x3295, "\077\374\053\034"},
+ {0x3296, "\077\373\165\034"},
+ {0x3297, "\077\373\201\034"},
+ {0x3298, "\077\374\105\034"},
+ {0x3299, "\077\377\061\034"},
+ {0x329A, "\077\373\312\034"},
+ {0x329B, "\077\373\162\034"},
+ {0x329C, "\077\374\270\034"},
+ {0x329D, "\077\375\212\034"},
+ {0x329E, "\077\375\340\034"},
+ {0x329F, "\077\374\341\034"},
+ {0x32A0, "\077\374\325\034"},
+ {0x32A1, "\077\374\021\034"},
+ {0x32A2, "\077\375\060\034"},
+ {0x32A3, "\077\375\063\034"},
{0x32A4, "\077\065\034"},
{0x32A5, "\077\372\213\034"},
{0x32A6, "\077\061\034"},
{0x32A7, "\077\042\034"},
{0x32A8, "\077\173\034"},
- {0x32A9, "\077\376\160\034"},
- {0x32AA, "\077\377\001\034"},
- {0x32AB, "\077\374\156\034"},
- {0x32AC, "\077\377\130\034"},
- {0x32AD, "\077\373\153\034"},
- {0x32AE, "\077\374\021\034"},
- {0x32AF, "\077\373\027\034"},
- {0x32B0, "\077\376\225\034"},
- {0x32C0, "\015\125\063\375\367"},
- {0x32C1, "\015\125\063\375\243"},
- {0x32C2, "\015\125\063\376\105"},
- {0x32C3, "\015\125\063\374\344"},
- {0x32C4, "\015\125\063\371\030"},
- {0x32C5, "\015\125\063\375\373"},
- {0x32C6, "\015\125\063\375\372"},
- {0x32C7, "\015\125\063\374\316"},
- {0x32C8, "\015\125\063\377\065"},
- {0x32C9, "\015\125\063\376\235"},
- {0x32CA, "\015\125\063\376\222"},
- {0x32CB, "\015\125\063\375\157"},
+ {0x32A9, "\077\376\161\034"},
+ {0x32AA, "\077\377\002\034"},
+ {0x32AB, "\077\374\157\034"},
+ {0x32AC, "\077\377\131\034"},
+ {0x32AD, "\077\373\154\034"},
+ {0x32AE, "\077\374\022\034"},
+ {0x32AF, "\077\373\030\034"},
+ {0x32B0, "\077\376\226\034"},
+ {0x32C0, "\015\125\063\375\370"},
+ {0x32C1, "\015\125\063\375\244"},
+ {0x32C2, "\015\125\063\376\106"},
+ {0x32C3, "\015\125\063\374\345"},
+ {0x32C4, "\015\125\063\371\031"},
+ {0x32C5, "\015\125\063\375\374"},
+ {0x32C6, "\015\125\063\375\373"},
+ {0x32C7, "\015\125\063\374\317"},
+ {0x32C8, "\015\125\063\377\066"},
+ {0x32C9, "\015\125\063\376\236"},
+ {0x32CA, "\015\125\063\376\223"},
+ {0x32CB, "\015\125\063\375\160"},
{0x32D0, "\030\034\046"},
{0x32D1, "\030\034\072"},
{0x32D2, "\030\034\107"},
{0x32D5, "\030\034\244"},
{0x32D6, "\030\034\372\073"},
{0x32D7, "\030\034\372\075"},
- {0x32D8, "\030\034\371\235"},
- {0x32D9, "\030\034\371\237"},
+ {0x32D8, "\030\034\371\236"},
+ {0x32D9, "\030\034\371\240"},
{0x32DA, "\030\034\364"},
{0x32DB, "\030\034\372\152"},
{0x32DC, "\030\034\372\161"},
- {0x32DD, "\030\034\371\317"},
- {0x32DE, "\030\034\371\045"},
+ {0x32DD, "\030\034\371\320"},
+ {0x32DE, "\030\034\371\046"},
{0x32DF, "\030\034\371\017"},
- {0x32E0, "\030\034\372\022"},
- {0x32E1, "\030\034\371\255"},
+ {0x32E0, "\030\034\372\023"},
+ {0x32E1, "\030\034\371\256"},
{0x32E2, "\030\034\372\165"},
- {0x32E3, "\030\034\371\253"},
+ {0x32E3, "\030\034\371\254"},
{0x32E4, "\030\034\371\002"},
{0x32E5, "\030\034\216"},
- {0x32E6, "\030\034\371\304"},
- {0x32E7, "\030\034\371\112"},
- {0x32E8, "\030\034\371\163"},
+ {0x32E6, "\030\034\371\305"},
+ {0x32E7, "\030\034\371\113"},
+ {0x32E8, "\030\034\371\164"},
{0x32E9, "\030\034\333"},
{0x32EA, "\030\034\372\067"},
{0x32EB, "\030\034\372\070"},
- {0x32EC, "\030\034\371\103"},
- {0x32ED, "\030\034\371\060"},
+ {0x32EC, "\030\034\371\104"},
+ {0x32ED, "\030\034\371\061"},
{0x32EE, "\030\034\360"},
{0x32EF, "\030\034\372\110"},
{0x32F0, "\030\034\371\001"},
{0x32F1, "\030\034\372\106"},
- {0x32F2, "\030\034\371\240"},
+ {0x32F2, "\030\034\371\241"},
{0x32F3, "\030\034\332"},
- {0x32F4, "\030\034\371\256"},
+ {0x32F4, "\030\034\371\257"},
{0x32F5, "\030\034\371\021"},
{0x32F6, "\030\034\345"},
{0x32F7, "\030\034\372\144"},
{0x32F8, "\030\034\372\146"},
- {0x32F9, "\030\034\371\314"},
- {0x32FA, "\030\034\372\014"},
- {0x32FB, "\030\034\371\121"},
- {0x32FC, "\030\034\371\330"},
- {0x32FD, "\030\034\372\033"},
- {0x32FE, "\030\034\371\122"},
- {0x3300, "\374\317\031\007\021"},
- {0x3301, "\374\325\031\007\021"},
- {0x3302, "\374\313\031\007\021"},
- {0x3303, "\374\263\031\007\021"},
- {0x3304, "\375\344\031\007\021"},
- {0x3305, "\375\347\031\007\021"},
- {0x3306, "\377\240\031\007\021"},
- {0x3307, "\375\207\031\007\021"},
- {0x3308, "\375\167\031\007\021"},
- {0x3309, "\376\240\031\007\021"},
- {0x330A, "\376\241\031\007\021"},
- {0x330B, "\376\001\031\007\021"},
- {0x330C, "\376\003\031\007\021"},
- {0x330D, "\376\004\031\007\021"},
- {0x330E, "\375\245\031\007\021"},
- {0x330F, "\375\244\031\007\021"},
- {0x3310, "\375\252\031\007\021"},
- {0x3311, "\375\254\031\007\021"},
- {0x3312, "\376\042\031\007\021"},
- {0x3313, "\375\255\031\007\021"},
- {0x3314, "\376\017\031\007\021"},
- {0x3315, "\376\020\031\007\021"},
- {0x3316, "\376\021\031\007\021"},
- {0x3317, "\376\022\031\007\021"},
- {0x3318, "\375\263\031\007\021"},
- {0x3319, "\375\264\031\007\021"},
- {0x331A, "\376\037\031\007\021"},
- {0x331B, "\376\036\031\007\021"},
- {0x331C, "\376\007\031\007\021"},
- {0x331D, "\376\031\031\007\021"},
- {0x331E, "\376\030\031\007\021"},
- {0x331F, "\377\037\031\007\021"},
- {0x3320, "\377\051\031\007\021"},
- {0x3321, "\377\073\031\007\021"},
- {0x3322, "\377\063\031\007\021"},
- {0x3323, "\377\064\031\007\021"},
- {0x3324, "\375\117\031\007\021"},
- {0x3325, "\375\136\031\007\021"},
- {0x3326, "\375\154\031\007\021"},
- {0x3327, "\377\206\031\007\021"},
- {0x3328, "\376\173\031\007\021"},
- {0x3329, "\376\216\031\007\021"},
- {0x332A, "\375\272\031\007\021"},
- {0x332B, "\376\261\031\007\021"},
- {0x332C, "\376\262\031\007\021"},
- {0x332D, "\374\347\031\007\021"},
- {0x332E, "\376\320\031\007\021"},
- {0x332F, "\376\322\031\007\021"},
- {0x3330, "\376\321\031\007\021"},
- {0x3331, "\374\366\031\007\021"},
- {0x3332, "\375\322\031\007\021"},
- {0x3333, "\375\323\031\007\021"},
- {0x3334, "\375\001\031\007\021"},
- {0x3335, "\375\324\031\007\021"},
- {0x3336, "\375\276\031\007\021"},
- {0x3337, "\376\310\031\007\021"},
- {0x3338, "\376\302\031\007\021"},
- {0x3339, "\375\300\031\007\021"},
- {0x333A, "\376\303\031\007\021"},
- {0x333B, "\376\301\031\007\021"},
- {0x333C, "\374\360\031\007\021"},
- {0x333D, "\376\340\031\007\021"},
- {0x333E, "\374\373\031\007\021"},
- {0x333F, "\375\312\031\007\021"},
- {0x3340, "\376\343\031\007\021"},
- {0x3341, "\375\314\031\007\021"},
- {0x3342, "\375\313\031\007\021"},
- {0x3343, "\376\112\031\007\021"},
- {0x3344, "\376\111\031\007\021"},
- {0x3345, "\376\072\031\007\021"},
- {0x3346, "\376\100\031\007\021"},
- {0x3347, "\376\102\031\007\021"},
- {0x3348, "\376\123\031\007\021"},
- {0x3349, "\376\127\031\007\021"},
- {0x334A, "\376\130\031\007\021"},
+ {0x32F9, "\030\034\371\315"},
+ {0x32FA, "\030\034\372\015"},
+ {0x32FB, "\030\034\371\122"},
+ {0x32FC, "\030\034\371\331"},
+ {0x32FD, "\030\034\372\034"},
+ {0x32FE, "\030\034\371\123"},
+ {0x3300, "\374\320\031\007\021"},
+ {0x3301, "\374\326\031\007\021"},
+ {0x3302, "\374\314\031\007\021"},
+ {0x3303, "\374\264\031\007\021"},
+ {0x3304, "\375\345\031\007\021"},
+ {0x3305, "\375\350\031\007\021"},
+ {0x3306, "\377\241\031\007\021"},
+ {0x3307, "\375\210\031\007\021"},
+ {0x3308, "\375\170\031\007\021"},
+ {0x3309, "\376\241\031\007\021"},
+ {0x330A, "\376\242\031\007\021"},
+ {0x330B, "\376\002\031\007\021"},
+ {0x330C, "\376\004\031\007\021"},
+ {0x330D, "\376\005\031\007\021"},
+ {0x330E, "\375\246\031\007\021"},
+ {0x330F, "\375\245\031\007\021"},
+ {0x3310, "\375\253\031\007\021"},
+ {0x3311, "\375\255\031\007\021"},
+ {0x3312, "\376\043\031\007\021"},
+ {0x3313, "\375\256\031\007\021"},
+ {0x3314, "\376\020\031\007\021"},
+ {0x3315, "\376\021\031\007\021"},
+ {0x3316, "\376\022\031\007\021"},
+ {0x3317, "\376\023\031\007\021"},
+ {0x3318, "\375\264\031\007\021"},
+ {0x3319, "\375\265\031\007\021"},
+ {0x331A, "\376\040\031\007\021"},
+ {0x331B, "\376\037\031\007\021"},
+ {0x331C, "\376\010\031\007\021"},
+ {0x331D, "\376\032\031\007\021"},
+ {0x331E, "\376\031\031\007\021"},
+ {0x331F, "\377\040\031\007\021"},
+ {0x3320, "\377\052\031\007\021"},
+ {0x3321, "\377\074\031\007\021"},
+ {0x3322, "\377\064\031\007\021"},
+ {0x3323, "\377\065\031\007\021"},
+ {0x3324, "\375\120\031\007\021"},
+ {0x3325, "\375\137\031\007\021"},
+ {0x3326, "\375\155\031\007\021"},
+ {0x3327, "\377\207\031\007\021"},
+ {0x3328, "\376\174\031\007\021"},
+ {0x3329, "\376\217\031\007\021"},
+ {0x332A, "\375\273\031\007\021"},
+ {0x332B, "\376\262\031\007\021"},
+ {0x332C, "\376\263\031\007\021"},
+ {0x332D, "\374\350\031\007\021"},
+ {0x332E, "\376\321\031\007\021"},
+ {0x332F, "\376\323\031\007\021"},
+ {0x3330, "\376\322\031\007\021"},
+ {0x3331, "\374\367\031\007\021"},
+ {0x3332, "\375\323\031\007\021"},
+ {0x3333, "\375\324\031\007\021"},
+ {0x3334, "\375\002\031\007\021"},
+ {0x3335, "\375\325\031\007\021"},
+ {0x3336, "\375\277\031\007\021"},
+ {0x3337, "\376\311\031\007\021"},
+ {0x3338, "\376\303\031\007\021"},
+ {0x3339, "\375\301\031\007\021"},
+ {0x333A, "\376\304\031\007\021"},
+ {0x333B, "\376\302\031\007\021"},
+ {0x333C, "\374\361\031\007\021"},
+ {0x333D, "\376\341\031\007\021"},
+ {0x333E, "\374\374\031\007\021"},
+ {0x333F, "\375\313\031\007\021"},
+ {0x3340, "\376\344\031\007\021"},
+ {0x3341, "\375\315\031\007\021"},
+ {0x3342, "\375\314\031\007\021"},
+ {0x3343, "\376\113\031\007\021"},
+ {0x3344, "\376\112\031\007\021"},
+ {0x3345, "\376\073\031\007\021"},
+ {0x3346, "\376\101\031\007\021"},
+ {0x3347, "\376\103\031\007\021"},
+ {0x3348, "\376\124\031\007\021"},
+ {0x3349, "\376\130\031\007\021"},
+ {0x334A, "\376\131\031\007\021"},
{0x334B, "\372\314\031\007\021"},
- {0x334C, "\376\163\031\007\021"},
- {0x334D, "\376\113\031\007\021"},
- {0x334E, "\377\277\031\007\021"},
- {0x334F, "\377\300\031\007\021"},
- {0x3350, "\377\316\031\007\021"},
- {0x3351, "\377\011\031\007\021"},
- {0x3352, "\377\010\031\007\021"},
- {0x3353, "\377\027\031\007\021"},
- {0x3354, "\377\030\031\007\021"},
- {0x3355, "\377\002\031\007\021"},
- {0x3356, "\377\003\031\007\021"},
- {0x3357, "\377\272\031\007\021"},
+ {0x334C, "\376\164\031\007\021"},
+ {0x334D, "\376\114\031\007\021"},
+ {0x334E, "\377\300\031\007\021"},
+ {0x334F, "\377\301\031\007\021"},
+ {0x3350, "\377\317\031\007\021"},
+ {0x3351, "\377\012\031\007\021"},
+ {0x3352, "\377\011\031\007\021"},
+ {0x3353, "\377\030\031\007\021"},
+ {0x3354, "\377\031\031\007\021"},
+ {0x3355, "\377\003\031\007\021"},
+ {0x3356, "\377\004\031\007\021"},
+ {0x3357, "\377\273\031\007\021"},
{0x3358, "\015\125\063\255\311"},
{0x3359, "\015\125\063\255\132"},
{0x335A, "\015\125\063\255\154"},
{0x3360, "\015\125\063\255\204"},
{0x3361, "\015\125\063\255\235"},
{0x3362, "\015\125\063\255\354"},
- {0x3363, "\015\125\063\255\371\243"},
- {0x3364, "\015\125\063\255\371\140"},
- {0x3365, "\015\125\063\255\372\023"},
- {0x3366, "\015\125\063\255\372\011"},
- {0x3367, "\015\125\063\255\372\012"},
- {0x3368, "\015\125\063\255\371\247"},
- {0x3369, "\015\125\063\255\371\352"},
- {0x336A, "\015\125\063\255\371\350"},
- {0x336B, "\015\125\063\255\371\351"},
- {0x336C, "\015\125\063\255\372\030"},
- {0x336D, "\015\125\063\255\374\116"},
- {0x336E, "\015\125\063\255\374\115"},
- {0x336F, "\015\125\063\255\374\120"},
- {0x3370, "\015\125\063\255\374\117"},
- {0x3371, "\375\321\031\007\021"},
+ {0x3363, "\015\125\063\255\371\244"},
+ {0x3364, "\015\125\063\255\371\141"},
+ {0x3365, "\015\125\063\255\372\024"},
+ {0x3366, "\015\125\063\255\372\012"},
+ {0x3367, "\015\125\063\255\372\013"},
+ {0x3368, "\015\125\063\255\371\250"},
+ {0x3369, "\015\125\063\255\371\353"},
+ {0x336A, "\015\125\063\255\371\351"},
+ {0x336B, "\015\125\063\255\371\352"},
+ {0x336C, "\015\125\063\255\372\031"},
+ {0x336D, "\015\125\063\255\374\117"},
+ {0x336E, "\015\125\063\255\374\116"},
+ {0x336F, "\015\125\063\255\374\121"},
+ {0x3370, "\015\125\063\255\374\120"},
+ {0x3371, "\375\322\031\007\021"},
{0x3372, "\371\013\031\007\021"},
- {0x3373, "\371\216\031\007\021"},
- {0x3374, "\374\354\031\007\021"},
- {0x3375, "\376\260\031\007\021"},
- {0x3376, "\376\300\031\007\021"},
- {0x337B, "\372\202\375\275\031\007\021"},
- {0x337C, "\372\202\377\135\031\007\021"},
- {0x337D, "\372\202\377\143\031\007\021"},
- {0x337E, "\372\202\376\114\031\007\021"},
+ {0x3373, "\371\217\031\007\021"},
+ {0x3374, "\374\355\031\007\021"},
+ {0x3375, "\376\261\031\007\021"},
+ {0x3376, "\376\301\031\007\021"},
+ {0x337B, "\372\202\375\276\031\007\021"},
+ {0x337C, "\372\202\377\136\031\007\021"},
+ {0x337D, "\372\202\377\144\031\007\021"},
+ {0x337E, "\372\202\376\115\031\007\021"},
{0x337F, "\372\357\031\007\021"},
- {0x3380, "\371\015\374\305\031\007\021"},
+ {0x3380, "\371\015\374\306\031\007\021"},
{0x3381, "\371\002\031\007\021"},
{0x3382, "\371\001\046\031\007\021"},
{0x3383, "\360\031\007\021"},
{0x3384, "\244\031\007\021"},
- {0x3385, "\376\005\031\007\021"},
- {0x3386, "\373\273\031\007\021"},
- {0x3387, "\375\246\031\007\021"},
- {0x3388, "\375\010\031\007\021"},
- {0x3389, "\376\006\031\007\021"},
- {0x338A, "\376\311\031\007\021"},
- {0x338B, "\376\200\031\007\021"},
+ {0x3385, "\376\006\031\007\021"},
+ {0x3386, "\373\274\031\007\021"},
+ {0x3387, "\375\247\031\007\021"},
+ {0x3388, "\375\011\031\007\021"},
+ {0x3389, "\376\007\031\007\021"},
+ {0x338A, "\376\312\031\007\021"},
+ {0x338B, "\376\201\031\007\021"},
{0x338C, "\371\001\355\031\007\021"},
{0x338D, "\371\001\227\031\007\021"},
- {0x338E, "\376\120\031\007\021"},
- {0x338F, "\373\250\031\007\021"},
- {0x3390, "\375\326\031\007\021"},
- {0x3391, "\376\016\031\007\021"},
- {0x3392, "\376\121\031\007\021"},
- {0x3393, "\375\251\031\007\021"},
- {0x3394, "\377\201\031\007\021"},
+ {0x338E, "\376\121\031\007\021"},
+ {0x338F, "\373\251\031\007\021"},
+ {0x3390, "\375\327\031\007\021"},
+ {0x3391, "\376\017\031\007\021"},
+ {0x3392, "\376\122\031\007\021"},
+ {0x3393, "\375\252\031\007\021"},
+ {0x3394, "\377\202\031\007\021"},
{0x3395, "\371\001\167\031\007\021"},
- {0x3396, "\376\137\031\007\021"},
- {0x3397, "\375\151\031\007\021"},
- {0x3398, "\376\026\031\007\021"},
- {0x3399, "\375\232\031\007\021"},
- {0x339A, "\376\207\031\007\021"},
+ {0x3396, "\376\140\031\007\021"},
+ {0x3397, "\375\152\031\007\021"},
+ {0x3398, "\376\027\031\007\021"},
+ {0x3399, "\375\233\031\007\021"},
+ {0x339A, "\376\210\031\007\021"},
{0x339B, "\371\001\256\031\007\021"},
{0x339C, "\372\311\031\007\021"},
{0x339D, "\372\221\031\007\021"},
{0x33A4, "\372\221\372\051\031\007\021"},
{0x33A5, "\256\372\051\031\007\021"},
{0x33A6, "\372\074\372\051\031\007\021"},
- {0x33A7, "\256\371\252\207\031\007\021"},
- {0x33A8, "\256\371\252\207\021\031\007\021"},
+ {0x33A7, "\256\371\253\207\031\007\021"},
+ {0x33A8, "\256\371\253\207\021\031\007\021"},
{0x33A9, "\371\015\031\007\021"},
- {0x33AA, "\376\033\031\007\021"},
- {0x33AB, "\376\155\031\007\021"},
- {0x33AC, "\375\257\031\007\021"},
+ {0x33AA, "\376\034\031\007\021"},
+ {0x33AB, "\376\156\031\007\021"},
+ {0x33AC, "\375\260\031\007\021"},
{0x33AD, "\372\336\031\007\021"},
- {0x33AE, "\372\336\371\252\207\031\007\021"},
- {0x33AF, "\372\336\371\252\207\021\031\007\021"},
- {0x33B0, "\376\360\031\007\021"},
- {0x33B1, "\376\223\031\007\021"},
+ {0x33AE, "\372\336\371\253\207\031\007\021"},
+ {0x33AF, "\372\336\371\253\207\021\031\007\021"},
+ {0x33B0, "\376\361\031\007\021"},
+ {0x33B1, "\376\224\031\007\021"},
{0x33B2, "\371\001\207\031\007\021"},
- {0x33B3, "\376\156\031\007\021"},
- {0x33B4, "\376\361\031\007\021"},
- {0x33B5, "\376\226\031\007\021"},
+ {0x33B3, "\376\157\031\007\021"},
+ {0x33B4, "\376\362\031\007\021"},
+ {0x33B5, "\376\227\031\007\021"},
{0x33B6, "\371\001\324\031\007\021"},
- {0x33B7, "\373\307\031\007\021"},
- {0x33B8, "\376\040\031\007\021"},
- {0x33B9, "\373\307\372\314\031\007\021"},
- {0x33BA, "\376\362\031\007\021"},
- {0x33BB, "\376\227\031\007\021"},
+ {0x33B7, "\373\310\031\007\021"},
+ {0x33B8, "\376\041\031\007\021"},
+ {0x33B9, "\373\310\372\314\031\007\021"},
+ {0x33BA, "\376\363\031\007\021"},
+ {0x33BB, "\376\230\031\007\021"},
{0x33BC, "\371\001\273\031\007\021"},
- {0x33BD, "\373\310\031\007\021"},
- {0x33BE, "\376\041\031\007\021"},
- {0x33BF, "\373\310\372\314\031\007\021"},
+ {0x33BD, "\373\311\031\007\021"},
+ {0x33BE, "\376\042\031\007\021"},
+ {0x33BF, "\373\311\372\314\031\007\021"},
{0x33C0, "\301\372\117\031\007\021"},
{0x33C1, "\256\372\117\031\007\021"},
{0x33C2, "\372\204\031\007\021"},
- {0x33C3, "\374\376\031\007\021"},
- {0x33C4, "\375\016\031\007\021"},
- {0x33C5, "\375\017\031\007\021"},
- {0x33C6, "\241\371\252\373\250\031\007\021"},
+ {0x33C3, "\374\377\031\007\021"},
+ {0x33C4, "\375\017\031\007\021"},
+ {0x33C5, "\375\020\031\007\021"},
+ {0x33C6, "\241\371\253\373\251\031\007\021"},
{0x33C7, "\372\222\031\007\021"},
- {0x33C8, "\375\122\031\007\021"},
- {0x33C9, "\375\265\031\007\021"},
+ {0x33C8, "\375\123\031\007\021"},
+ {0x33C9, "\375\266\031\007\021"},
{0x33CA, "\333\031\007\021"},
- {0x33CB, "\375\320\031\007\021"},
+ {0x33CB, "\375\321\031\007\021"},
{0x33CC, "\372\264\031\007\021"},
- {0x33CD, "\376\025\031\007\021"},
+ {0x33CD, "\376\026\031\007\021"},
{0x33CE, "\372\074\005\031\007\021"},
- {0x33CF, "\376\035\031\007\021"},
- {0x33D0, "\376\061\031\007\021"},
- {0x33D1, "\376\062\031\007\021"},
- {0x33D2, "\376\063\031\007\021"},
- {0x33D3, "\376\070\031\007\021"},
- {0x33D4, "\373\273\003\031\007\021"},
- {0x33D5, "\376\124\031\007\021"},
- {0x33D6, "\376\145\031\007\021"},
- {0x33D7, "\376\312\031\007\021"},
- {0x33D8, "\376\336\031\007\021"},
- {0x33D9, "\376\345\031\007\021"},
- {0x33DA, "\376\346\031\007\021"},
- {0x33DB, "\377\121\031\007\021"},
- {0x33DC, "\377\132\031\007\021"},
- {0x33DD, "\377\273\031\007\021"},
+ {0x33CF, "\376\036\031\007\021"},
+ {0x33D0, "\376\062\031\007\021"},
+ {0x33D1, "\376\063\031\007\021"},
+ {0x33D2, "\376\064\031\007\021"},
+ {0x33D3, "\376\071\031\007\021"},
+ {0x33D4, "\373\274\003\031\007\021"},
+ {0x33D5, "\376\125\031\007\021"},
+ {0x33D6, "\376\146\031\007\021"},
+ {0x33D7, "\376\313\031\007\021"},
+ {0x33D8, "\376\337\031\007\021"},
+ {0x33D9, "\376\346\031\007\021"},
+ {0x33DA, "\376\347\031\007\021"},
+ {0x33DB, "\377\122\031\007\021"},
+ {0x33DC, "\377\133\031\007\021"},
+ {0x33DD, "\377\274\031\007\021"},
{0x33E0, "\015\125\063\234\132"},
{0x33E1, "\015\125\063\234\154"},
{0x33E2, "\015\125\063\234\131"},
{0x33E7, "\015\125\063\234\204"},
{0x33E8, "\015\125\063\234\235"},
{0x33E9, "\015\125\063\234\354"},
- {0x33EA, "\015\125\063\234\371\243"},
- {0x33EB, "\015\125\063\234\371\140"},
- {0x33EC, "\015\125\063\372\023"},
- {0x33ED, "\015\125\063\234\372\011"},
- {0x33EE, "\015\125\063\234\372\012"},
- {0x33EF, "\015\125\063\234\371\247"},
- {0x33F0, "\015\125\063\234\371\352"},
- {0x33F1, "\015\125\063\234\371\350"},
- {0x33F2, "\015\125\063\234\371\351"},
- {0x33F3, "\015\125\063\234\372\030"},
- {0x33F4, "\015\125\063\234\374\116"},
- {0x33F5, "\015\125\063\234\374\115"},
- {0x33F6, "\015\125\063\234\374\120"},
- {0x33F7, "\015\125\063\234\374\117"},
- {0x33F8, "\015\125\063\234\377\260"},
- {0x33F9, "\015\125\063\234\377\264"},
- {0x33FA, "\015\125\063\234\377\263"},
- {0x33FB, "\015\125\063\234\377\261"},
- {0x33FC, "\015\125\063\234\377\262"},
- {0x33FD, "\015\125\063\234\377\221"},
- {0x33FE, "\015\125\063\234\377\222"},
- {0xFB00, "\006\003\004\375\225"},
- {0xFB01, "\006\003\004\373\162"},
- {0xFB02, "\006\003\004\375\231"},
- {0xFB03, "\006\003\004\375\226"},
- {0xFB04, "\006\003\004\375\227"},
+ {0x33EA, "\015\125\063\234\371\244"},
+ {0x33EB, "\015\125\063\234\371\141"},
+ {0x33EC, "\015\125\063\372\024"},
+ {0x33ED, "\015\125\063\234\372\012"},
+ {0x33EE, "\015\125\063\234\372\013"},
+ {0x33EF, "\015\125\063\234\371\250"},
+ {0x33F0, "\015\125\063\234\371\353"},
+ {0x33F1, "\015\125\063\234\371\351"},
+ {0x33F2, "\015\125\063\234\371\352"},
+ {0x33F3, "\015\125\063\234\372\031"},
+ {0x33F4, "\015\125\063\234\374\117"},
+ {0x33F5, "\015\125\063\234\374\116"},
+ {0x33F6, "\015\125\063\234\374\121"},
+ {0x33F7, "\015\125\063\234\374\120"},
+ {0x33F8, "\015\125\063\234\377\261"},
+ {0x33F9, "\015\125\063\234\377\265"},
+ {0x33FA, "\015\125\063\234\377\264"},
+ {0x33FB, "\015\125\063\234\377\262"},
+ {0x33FC, "\015\125\063\234\377\263"},
+ {0x33FD, "\015\125\063\234\377\222"},
+ {0x33FE, "\015\125\063\234\377\223"},
+ {0xFB00, "\006\003\004\375\226"},
+ {0xFB01, "\006\003\004\373\163"},
+ {0xFB02, "\006\003\004\375\232"},
+ {0xFB03, "\006\003\004\375\227"},
+ {0xFB04, "\006\003\004\375\230"},
{0xFB05, "\006\003\004\207\372\306\236"},
- {0xFB06, "\006\003\004\377\123"},
- {0xFB13, "\006\003\076\371\302\372\115"},
- {0xFB14, "\006\003\076\371\302\372\072"},
- {0xFB15, "\006\003\076\371\302\072"},
+ {0xFB06, "\006\003\004\377\124"},
+ {0xFB13, "\006\003\076\371\303\372\115"},
+ {0xFB14, "\006\003\076\371\303\372\072"},
+ {0xFB15, "\006\003\076\371\303\072"},
{0xFB16, "\006\003\076\372\377\372\115"},
- {0xFB17, "\006\003\076\371\302\372\215"},
- {0xFB1E, "\027\343\375\371\377\245"},
- {0xFB1F, "\006\110\372\175\371\331\371\331\372\122"},
- {0xFB20, "\001\110\374\302\373\041"},
- {0xFB21, "\001\110\371\106\371\261"},
- {0xFB22, "\001\110\371\106\372\052"},
- {0xFB23, "\001\110\371\106\371\103"},
- {0xFB24, "\001\110\371\106\205"},
- {0xFB25, "\001\110\371\106\372\100"},
- {0xFB26, "\001\110\371\106\372\107\016"},
- {0xFB27, "\001\110\371\106\372\337"},
- {0xFB28, "\001\110\371\106\372\367"},
- {0xFB29, "\001\110\134\162\377\244"},
- {0xFB2A, "\001\110\371\073\027\371\073"},
- {0xFB2B, "\001\110\371\073\027\372\353"},
- {0xFB2C, "\001\110\371\073\276\011\027\371\073"},
- {0xFB2D, "\001\110\371\073\276\011\027\372\353"},
- {0xFB2E, "\001\110\371\261\372\122"},
- {0xFB2F, "\001\110\371\261\372\333"},
- {0xFB30, "\001\110\371\261\372\307"},
+ {0xFB17, "\006\003\076\371\303\372\215"},
+ {0xFB1E, "\027\343\375\372\377\246"},
+ {0xFB1F, "\006\110\372\175\371\332\371\332\372\122"},
+ {0xFB20, "\001\110\374\303\373\042"},
+ {0xFB21, "\001\110\371\107\371\262"},
+ {0xFB22, "\001\110\371\107\372\052"},
+ {0xFB23, "\001\110\371\107\371\104"},
+ {0xFB24, "\001\110\371\107\205"},
+ {0xFB25, "\001\110\371\107\372\100"},
+ {0xFB26, "\001\110\371\107\372\107\016"},
+ {0xFB27, "\001\110\371\107\372\337"},
+ {0xFB28, "\001\110\371\107\372\367"},
+ {0xFB29, "\001\110\134\162\377\245"},
+ {0xFB2A, "\001\110\371\074\027\371\074"},
+ {0xFB2B, "\001\110\371\074\027\372\353"},
+ {0xFB2C, "\001\110\371\074\276\011\027\371\074"},
+ {0xFB2D, "\001\110\371\074\276\011\027\372\353"},
+ {0xFB2E, "\001\110\371\262\372\122"},
+ {0xFB2F, "\001\110\371\262\372\333"},
+ {0xFB30, "\001\110\371\262\372\307"},
{0xFB31, "\001\110\372\044\276"},
- {0xFB32, "\001\110\373\217\276"},
- {0xFB33, "\001\110\372\052\375\120"},
- {0xFB34, "\001\110\371\103\372\307"},
- {0xFB35, "\001\110\372\027\276"},
- {0xFB36, "\001\110\374\144\276"},
- {0xFB38, "\001\110\374\074\276"},
- {0xFB39, "\001\110\371\331\276"},
+ {0xFB32, "\001\110\373\220\276"},
+ {0xFB33, "\001\110\372\052\375\121"},
+ {0xFB34, "\001\110\371\104\372\307"},
+ {0xFB35, "\001\110\372\030\276"},
+ {0xFB36, "\001\110\374\145\276"},
+ {0xFB38, "\001\110\374\075\276"},
+ {0xFB39, "\001\110\371\332\276"},
{0xFB3A, "\001\110\205\276\016"},
{0xFB3B, "\001\110\205\276"},
{0xFB3C, "\001\110\372\100\276"},
{0xFB3E, "\001\110\372\107\276"},
{0xFB40, "\001\110\372\320\276"},
- {0xFB41, "\001\110\377\044\276"},
- {0xFB43, "\001\110\371\115\276\016"},
- {0xFB44, "\001\110\371\115\276"},
+ {0xFB41, "\001\110\377\045\276"},
+ {0xFB43, "\001\110\371\116\276\016"},
+ {0xFB44, "\001\110\371\116\276"},
{0xFB46, "\001\110\372\375\276"},
- {0xFB47, "\001\110\374\004\276"},
+ {0xFB47, "\001\110\374\005\276"},
{0xFB48, "\001\110\372\337\276"},
- {0xFB49, "\001\110\371\073\276"},
+ {0xFB49, "\001\110\371\074\276"},
{0xFB4A, "\001\110\372\367\276"},
- {0xFB4B, "\001\110\372\027\373\225"},
+ {0xFB4B, "\001\110\372\030\373\226"},
{0xFB4C, "\001\110\372\044\372\143"},
{0xFB4D, "\001\110\205\372\143"},
- {0xFB4E, "\001\110\371\115\372\143"},
- {0xFB4F, "\006\110\371\261\372\100"},
+ {0xFB4E, "\001\110\371\116\372\143"},
+ {0xFB4F, "\006\110\371\262\372\100"},
{0xFB50, "\001\002\054\373\003\020"},
{0xFB51, "\001\002\054\373\003\016"},
- {0xFB52, "\001\002\371\336\020"},
- {0xFB53, "\001\002\371\336\016"},
- {0xFB54, "\001\002\371\336\036"},
- {0xFB55, "\001\002\371\336\105"},
- {0xFB56, "\001\002\372\004\020"},
- {0xFB57, "\001\002\372\004\016"},
- {0xFB58, "\001\002\372\004\036"},
- {0xFB59, "\001\002\372\004\105"},
- {0xFB5A, "\001\002\371\337\020"},
- {0xFB5B, "\001\002\371\337\016"},
- {0xFB5C, "\001\002\371\337\036"},
- {0xFB5D, "\001\002\371\337\105"},
- {0xFB5E, "\001\002\372\025\020"},
- {0xFB5F, "\001\002\372\025\016"},
- {0xFB60, "\001\002\372\025\036"},
- {0xFB61, "\001\002\372\025\105"},
- {0xFB62, "\001\002\372\020\020"},
- {0xFB63, "\001\002\372\020\016"},
- {0xFB64, "\001\002\372\020\036"},
- {0xFB65, "\001\002\372\020\105"},
- {0xFB66, "\001\002\372\024\020"},
- {0xFB67, "\001\002\372\024\016"},
- {0xFB68, "\001\002\372\024\036"},
- {0xFB69, "\001\002\372\024\105"},
- {0xFB6A, "\001\002\372\026\020"},
- {0xFB6B, "\001\002\372\026\016"},
- {0xFB6C, "\001\002\372\026\036"},
- {0xFB6D, "\001\002\372\026\105"},
- {0xFB6E, "\001\002\372\005\020"},
- {0xFB6F, "\001\002\372\005\016"},
- {0xFB70, "\001\002\372\005\036"},
- {0xFB71, "\001\002\372\005\105"},
- {0xFB72, "\001\002\371\355\020"},
- {0xFB73, "\001\002\371\355\016"},
- {0xFB74, "\001\002\371\355\036"},
- {0xFB75, "\001\002\371\355\105"},
- {0xFB76, "\001\002\371\377\020"},
- {0xFB77, "\001\002\371\377\016"},
- {0xFB78, "\001\002\371\377\036"},
- {0xFB79, "\001\002\371\377\105"},
- {0xFB7A, "\001\002\372\017\020"},
- {0xFB7B, "\001\002\372\017\016"},
- {0xFB7C, "\001\002\372\017\036"},
- {0xFB7D, "\001\002\372\017\105"},
- {0xFB7E, "\001\002\372\016\020"},
- {0xFB7F, "\001\002\372\016\016"},
- {0xFB80, "\001\002\372\016\036"},
- {0xFB81, "\001\002\372\016\105"},
+ {0xFB52, "\001\002\371\337\020"},
+ {0xFB53, "\001\002\371\337\016"},
+ {0xFB54, "\001\002\371\337\036"},
+ {0xFB55, "\001\002\371\337\105"},
+ {0xFB56, "\001\002\372\005\020"},
+ {0xFB57, "\001\002\372\005\016"},
+ {0xFB58, "\001\002\372\005\036"},
+ {0xFB59, "\001\002\372\005\105"},
+ {0xFB5A, "\001\002\371\340\020"},
+ {0xFB5B, "\001\002\371\340\016"},
+ {0xFB5C, "\001\002\371\340\036"},
+ {0xFB5D, "\001\002\371\340\105"},
+ {0xFB5E, "\001\002\372\026\020"},
+ {0xFB5F, "\001\002\372\026\016"},
+ {0xFB60, "\001\002\372\026\036"},
+ {0xFB61, "\001\002\372\026\105"},
+ {0xFB62, "\001\002\372\021\020"},
+ {0xFB63, "\001\002\372\021\016"},
+ {0xFB64, "\001\002\372\021\036"},
+ {0xFB65, "\001\002\372\021\105"},
+ {0xFB66, "\001\002\372\025\020"},
+ {0xFB67, "\001\002\372\025\016"},
+ {0xFB68, "\001\002\372\025\036"},
+ {0xFB69, "\001\002\372\025\105"},
+ {0xFB6A, "\001\002\372\027\020"},
+ {0xFB6B, "\001\002\372\027\016"},
+ {0xFB6C, "\001\002\372\027\036"},
+ {0xFB6D, "\001\002\372\027\105"},
+ {0xFB6E, "\001\002\372\006\020"},
+ {0xFB6F, "\001\002\372\006\016"},
+ {0xFB70, "\001\002\372\006\036"},
+ {0xFB71, "\001\002\372\006\105"},
+ {0xFB72, "\001\002\371\356\020"},
+ {0xFB73, "\001\002\371\356\016"},
+ {0xFB74, "\001\002\371\356\036"},
+ {0xFB75, "\001\002\371\356\105"},
+ {0xFB76, "\001\002\372\001\020"},
+ {0xFB77, "\001\002\372\001\016"},
+ {0xFB78, "\001\002\372\001\036"},
+ {0xFB79, "\001\002\372\001\105"},
+ {0xFB7A, "\001\002\372\020\020"},
+ {0xFB7B, "\001\002\372\020\016"},
+ {0xFB7C, "\001\002\372\020\036"},
+ {0xFB7D, "\001\002\372\020\105"},
+ {0xFB7E, "\001\002\372\017\020"},
+ {0xFB7F, "\001\002\372\017\016"},
+ {0xFB80, "\001\002\372\017\036"},
+ {0xFB81, "\001\002\372\017\105"},
{0xFB82, "\001\002\372\234\020"},
{0xFB83, "\001\002\372\234\016"},
{0xFB84, "\001\002\372\232\020"},
{0xFB8B, "\001\002\372\272\016"},
{0xFB8C, "\001\002\372\351\020"},
{0xFB8D, "\001\002\372\351\016"},
- {0xFB8E, "\001\002\371\372\020"},
- {0xFB8F, "\001\002\371\372\016"},
- {0xFB90, "\001\002\371\372\036"},
- {0xFB91, "\001\002\371\372\105"},
- {0xFB92, "\001\002\371\144\020"},
- {0xFB93, "\001\002\371\144\016"},
- {0xFB94, "\001\002\371\144\036"},
- {0xFB95, "\001\002\371\144\105"},
- {0xFB96, "\001\002\371\364\020"},
- {0xFB97, "\001\002\371\364\016"},
- {0xFB98, "\001\002\371\364\036"},
- {0xFB99, "\001\002\371\364\105"},
- {0xFB9A, "\001\002\371\374\020"},
- {0xFB9B, "\001\002\371\374\016"},
- {0xFB9C, "\001\002\371\374\036"},
- {0xFB9D, "\001\002\371\374\105"},
+ {0xFB8E, "\001\002\371\373\020"},
+ {0xFB8F, "\001\002\371\373\016"},
+ {0xFB90, "\001\002\371\373\036"},
+ {0xFB91, "\001\002\371\373\105"},
+ {0xFB92, "\001\002\371\145\020"},
+ {0xFB93, "\001\002\371\145\016"},
+ {0xFB94, "\001\002\371\145\036"},
+ {0xFB95, "\001\002\371\145\105"},
+ {0xFB96, "\001\002\371\365\020"},
+ {0xFB97, "\001\002\371\365\016"},
+ {0xFB98, "\001\002\371\365\036"},
+ {0xFB99, "\001\002\371\365\105"},
+ {0xFB9A, "\001\002\371\375\020"},
+ {0xFB9B, "\001\002\371\375\016"},
+ {0xFB9C, "\001\002\371\375\036"},
+ {0xFB9D, "\001\002\371\375\105"},
{0xFB9E, "\001\002\164\372\256\020"},
{0xFB9F, "\001\002\164\372\256\016"},
- {0xFBA0, "\001\002\372\013\020"},
- {0xFBA1, "\001\002\372\013\016"},
- {0xFBA2, "\001\002\372\013\036"},
- {0xFBA3, "\001\002\372\013\105"},
+ {0xFBA0, "\001\002\372\014\020"},
+ {0xFBA1, "\001\002\372\014\016"},
+ {0xFBA2, "\001\002\372\014\036"},
+ {0xFBA3, "\001\002\372\014\105"},
{0xFBA4, "\001\002\171\041\007\025\020"},
{0xFBA5, "\001\002\171\041\007\025\016"},
- {0xFBA6, "\001\002\171\371\231\020"},
- {0xFBA7, "\001\002\171\371\231\016"},
- {0xFBA8, "\001\002\171\371\231\036"},
- {0xFBA9, "\001\002\171\371\231\105"},
- {0xFBAA, "\001\002\171\371\354\020"},
- {0xFBAB, "\001\002\171\371\354\016"},
- {0xFBAC, "\001\002\171\371\354\036"},
- {0xFBAD, "\001\002\171\371\354\105"},
+ {0xFBA6, "\001\002\171\371\232\020"},
+ {0xFBA7, "\001\002\171\371\232\016"},
+ {0xFBA8, "\001\002\171\371\232\036"},
+ {0xFBA9, "\001\002\171\371\232\105"},
+ {0xFBAA, "\001\002\171\371\355\020"},
+ {0xFBAB, "\001\002\171\371\355\016"},
+ {0xFBAC, "\001\002\171\371\355\036"},
+ {0xFBAD, "\001\002\171\371\355\105"},
{0xFBAE, "\001\002\041\372\043\020"},
{0xFBAF, "\001\002\041\372\043\016"},
{0xFBB0, "\001\002\041\372\043\126\007\025\020"},
{0xFBB1, "\001\002\041\372\043\126\007\025\016"},
- {0xFBD3, "\001\002\371\303\020"},
- {0xFBD4, "\001\002\371\303\016"},
- {0xFBD5, "\001\002\371\303\036"},
- {0xFBD6, "\001\002\371\303\105"},
+ {0xFBD3, "\001\002\371\304\020"},
+ {0xFBD4, "\001\002\371\304\016"},
+ {0xFBD5, "\001\002\371\304\036"},
+ {0xFBD6, "\001\002\371\304\105"},
{0xFBD7, "\001\002\114\020"},
{0xFBD8, "\001\002\114\016"},
- {0xFBD9, "\001\002\371\040\020"},
- {0xFBDA, "\001\002\371\040\016"},
- {0xFBDB, "\001\002\371\050\020"},
- {0xFBDC, "\001\002\371\050\016"},
+ {0xFBD9, "\001\002\371\041\020"},
+ {0xFBDA, "\001\002\371\041\016"},
+ {0xFBDB, "\001\002\371\051\020"},
+ {0xFBDC, "\001\002\371\051\016"},
{0xFBDD, "\001\002\114\126\007\025\020"},
{0xFBDE, "\001\002\372\172\020"},
{0xFBDF, "\001\002\372\172\016"},
- {0xFBE0, "\001\002\371\035\371\040\020"},
- {0xFBE1, "\001\002\371\035\371\040\016"},
- {0xFBE2, "\001\002\371\035\371\050\020"},
- {0xFBE3, "\001\002\371\035\371\050\016"},
+ {0xFBE0, "\001\002\371\036\371\041\020"},
+ {0xFBE1, "\001\002\371\036\371\041\016"},
+ {0xFBE2, "\001\002\371\036\371\051\020"},
+ {0xFBE3, "\001\002\371\036\371\051\016"},
{0xFBE4, "\001\002\060\020"},
{0xFBE5, "\001\002\060\016"},
{0xFBE6, "\001\002\060\036"},
{0xFBE7, "\001\002\060\105"},
- {0xFBE8, "\001\002\372\003\373\247\371\035\054\124\036"},
- {0xFBE9, "\001\002\372\003\373\247\371\035\054\124\105"},
+ {0xFBE8, "\001\002\372\004\373\250\371\036\054\124\036"},
+ {0xFBE9, "\001\002\372\004\373\250\371\036\054\124\105"},
{0xFBEA, "\006\002\041\126\007\025\054\020"},
{0xFBEB, "\006\002\041\126\007\025\054\016"},
{0xFBEC, "\006\002\041\126\007\025\372\036\020"},
{0xFBED, "\006\002\041\126\007\025\372\036\016"},
- {0xFBEE, "\006\002\041\126\007\025\371\034\020"},
- {0xFBEF, "\006\002\041\126\007\025\371\034\016"},
+ {0xFBEE, "\006\002\041\126\007\025\371\035\020"},
+ {0xFBEF, "\006\002\041\126\007\025\371\035\016"},
{0xFBF0, "\006\002\041\126\007\025\107\020"},
{0xFBF1, "\006\002\041\126\007\025\107\016"},
- {0xFBF2, "\006\002\041\126\007\025\371\040\020"},
- {0xFBF3, "\006\002\041\126\007\025\371\040\016"},
- {0xFBF4, "\006\002\041\126\007\025\371\050\020"},
- {0xFBF5, "\006\002\041\126\007\025\371\050\016"},
+ {0xFBF2, "\006\002\041\126\007\025\371\041\020"},
+ {0xFBF3, "\006\002\041\126\007\025\371\041\016"},
+ {0xFBF4, "\006\002\041\126\007\025\371\051\020"},
+ {0xFBF5, "\006\002\041\126\007\025\371\051\016"},
{0xFBF6, "\006\002\041\126\007\025\060\020"},
{0xFBF7, "\006\002\041\126\007\025\060\016"},
{0xFBF8, "\006\002\041\126\007\025\060\036"},
- {0xFBF9, "\006\002\372\003\371\035\041\126\007\025\054\124\020"},
- {0xFBFA, "\006\002\372\003\371\035\041\126\007\025\054\124\016"},
- {0xFBFB, "\006\002\372\003\371\035\041\126\007\025\054\124\036"},
- {0xFBFC, "\001\002\371\272\041\020"},
- {0xFBFD, "\001\002\371\272\041\016"},
- {0xFBFE, "\001\002\371\272\041\036"},
- {0xFBFF, "\001\002\371\272\041\105"},
+ {0xFBF9, "\006\002\372\004\371\036\041\126\007\025\054\124\020"},
+ {0xFBFA, "\006\002\372\004\371\036\041\126\007\025\054\124\016"},
+ {0xFBFB, "\006\002\372\004\371\036\041\126\007\025\054\124\036"},
+ {0xFBFC, "\001\002\371\273\041\020"},
+ {0xFBFD, "\001\002\371\273\041\016"},
+ {0xFBFE, "\001\002\371\273\041\036"},
+ {0xFBFF, "\001\002\371\273\041\105"},
{0xFC00, "\006\002\041\126\007\025\066\020"},
{0xFC01, "\006\002\041\126\007\025\064\020"},
{0xFC02, "\006\002\041\126\007\025\033\020"},
{0xFC25, "\006\002\266\033\020"},
{0xFC26, "\006\002\327\064\020"},
{0xFC27, "\006\002\327\033\020"},
- {0xFC28, "\006\002\371\211\033\020"},
+ {0xFC28, "\006\002\371\212\033\020"},
{0xFC29, "\006\002\312\066\020"},
{0xFC2A, "\006\002\312\033\020"},
{0xFC2B, "\006\002\350\066\020"},
{0xFC5B, "\006\002\372\054\007\025\054\020"},
{0xFC5C, "\006\002\257\007\025\054\020"},
{0xFC5D, "\006\002\054\124\007\025\054\020"},
- {0xFC5E, "\006\002\371\044\372\233\020"},
- {0xFC5F, "\006\002\371\044\372\300\020"},
- {0xFC60, "\006\002\371\044\371\361\020"},
- {0xFC61, "\006\002\371\044\371\346\020"},
- {0xFC62, "\006\002\371\044\371\371\020"},
- {0xFC63, "\006\002\371\044\007\025\054\020"},
+ {0xFC5E, "\006\002\371\045\372\233\020"},
+ {0xFC5F, "\006\002\371\045\372\300\020"},
+ {0xFC60, "\006\002\371\045\371\362\020"},
+ {0xFC61, "\006\002\371\045\371\347\020"},
+ {0xFC62, "\006\002\371\045\371\372\020"},
+ {0xFC63, "\006\002\371\045\007\025\054\020"},
{0xFC64, "\006\002\041\126\007\025\257\016"},
- {0xFC65, "\006\002\041\126\007\025\371\123\016"},
+ {0xFC65, "\006\002\041\126\007\025\371\124\016"},
{0xFC66, "\006\002\041\126\007\025\033\016"},
{0xFC67, "\006\002\041\126\007\025\164\016"},
{0xFC68, "\006\002\041\126\007\025\054\124\016"},
{0xFC69, "\006\002\041\126\007\025\041\016"},
{0xFC6A, "\006\002\251\257\016"},
- {0xFC6B, "\006\002\251\371\123\016"},
+ {0xFC6B, "\006\002\251\371\124\016"},
{0xFC6C, "\006\002\251\033\016"},
{0xFC6D, "\006\002\251\164\016"},
{0xFC6E, "\006\002\251\054\124\016"},
{0xFC6F, "\006\002\251\041\016"},
{0xFC70, "\006\002\174\257\016"},
- {0xFC71, "\006\002\174\371\123\016"},
+ {0xFC71, "\006\002\174\371\124\016"},
{0xFC72, "\006\002\174\033\016"},
{0xFC73, "\006\002\174\164\016"},
{0xFC74, "\006\002\174\054\124\016"},
{0xFC75, "\006\002\174\041\016"},
{0xFC76, "\006\002\337\257\016"},
- {0xFC77, "\006\002\337\371\123\016"},
+ {0xFC77, "\006\002\337\371\124\016"},
{0xFC78, "\006\002\337\033\016"},
{0xFC79, "\006\002\337\164\016"},
{0xFC7A, "\006\002\337\054\124\016"},
{0xFC88, "\006\002\033\054\016"},
{0xFC89, "\006\002\033\033\016"},
{0xFC8A, "\006\002\164\257\016"},
- {0xFC8B, "\006\002\164\371\123\016"},
+ {0xFC8B, "\006\002\164\371\124\016"},
{0xFC8C, "\006\002\164\033\016"},
{0xFC8D, "\006\002\164\164\016"},
{0xFC8E, "\006\002\164\054\124\016"},
{0xFC8F, "\006\002\164\041\016"},
{0xFC90, "\006\002\054\124\007\025\054\016"},
{0xFC91, "\006\002\041\257\016"},
- {0xFC92, "\006\002\041\371\123\016"},
+ {0xFC92, "\006\002\041\371\124\016"},
{0xFC93, "\006\002\041\033\016"},
{0xFC94, "\006\002\041\164\016"},
{0xFC95, "\006\002\041\054\124\016"},
{0xFCB6, "\006\002\266\137\036"},
{0xFCB7, "\006\002\266\033\036"},
{0xFCB8, "\006\002\327\064\036"},
- {0xFCB9, "\006\002\371\211\033\036"},
+ {0xFCB9, "\006\002\371\212\033\036"},
{0xFCBA, "\006\002\312\066\036"},
{0xFCBB, "\006\002\312\033\036"},
{0xFCBC, "\006\002\350\066\036"},
{0xFCEF, "\006\002\164\171\105"},
{0xFCF0, "\006\002\041\033\105"},
{0xFCF1, "\006\002\041\171\105"},
- {0xFCF2, "\006\002\371\044\371\361\105"},
- {0xFCF3, "\006\002\371\044\371\346\105"},
- {0xFCF4, "\006\002\371\044\371\371\105"},
+ {0xFCF2, "\006\002\371\045\371\362\105"},
+ {0xFCF3, "\006\002\371\045\371\347\105"},
+ {0xFCF4, "\006\002\371\045\371\372\105"},
{0xFCF5, "\006\002\327\054\124\020"},
{0xFCF6, "\006\002\327\041\020"},
{0xFCF7, "\006\002\312\054\124\020"},
{0xFD38, "\006\002\206\064\105"},
{0xFD39, "\006\002\206\137\105"},
{0xFD3A, "\006\002\327\033\105"},
- {0xFD3B, "\006\002\371\211\033\105"},
- {0xFD3C, "\006\002\054\371\362\016"},
- {0xFD3D, "\006\002\054\371\362\020"},
- {0xFD3E, "\371\004\042\373\340"},
- {0xFD3F, "\371\004\037\373\340"},
+ {0xFD3B, "\006\002\371\212\033\105"},
+ {0xFD3C, "\006\002\054\371\363\016"},
+ {0xFD3D, "\006\002\054\371\363\020"},
+ {0xFD3E, "\371\004\042\373\341"},
+ {0xFD3F, "\371\004\037\373\341"},
{0xFD50, "\006\002\174\066\033\036"},
{0xFD51, "\006\002\174\064\066\016"},
{0xFD52, "\006\002\174\064\066\036"},
{0xFDC5, "\006\002\263\033\033\036"},
{0xFDC6, "\006\002\201\137\041\016"},
{0xFDC7, "\006\002\164\066\041\016"},
- {0xFDF0, "\006\002\374\033\020\374\112\371\074\134\373\107\373\077"},
- {0xFDF1, "\006\002\376\364\020\374\112\371\074\134\373\107\373\077"},
- {0xFDF2, "\006\002\374\300\020"},
- {0xFDF3, "\006\002\374\275\020"},
- {0xFDF4, "\006\002\376\142\020"},
- {0xFDF5, "\006\002\377\042\020"},
- {0xFDF6, "\006\002\376\374\020"},
- {0xFDF7, "\006\002\373\026\020"},
- {0xFDF8, "\006\002\374\127\020"},
- {0xFDF9, "\006\002\374\033\020"},
- {0xFDFA, "\006\002\377\043\373\026\374\127"},
- {0xFDFB, "\006\002\375\150"},
+ {0xFDF0, "\006\002\374\034\020\374\113\371\075\134\373\110\373\100"},
+ {0xFDF1, "\006\002\376\365\020\374\113\371\075\134\373\110\373\100"},
+ {0xFDF2, "\006\002\374\301\020"},
+ {0xFDF3, "\006\002\374\276\020"},
+ {0xFDF4, "\006\002\376\143\020"},
+ {0xFDF5, "\006\002\377\043\020"},
+ {0xFDF6, "\006\002\376\375\020"},
+ {0xFDF7, "\006\002\373\027\020"},
+ {0xFDF8, "\006\002\374\130\020"},
+ {0xFDF9, "\006\002\374\034\020"},
+ {0xFDFA, "\006\002\377\044\373\027\374\130"},
+ {0xFDFB, "\006\002\375\151"},
{0xFE20, "\023\267\042\012\006"},
{0xFE21, "\023\267\037\012\006"},
{0xFE22, "\023\267\042\012\143\051"},
{0xFE23, "\023\267\037\012\143\051"},
{0xFE30, "\242\012\305\012\027\372\231\051\145"},
- {0xFE31, "\242\012\305\012\371\071\371\221\145"},
- {0xFE32, "\242\012\305\012\371\071\372\237\145"},
+ {0xFE31, "\242\012\305\012\371\072\371\222\145"},
+ {0xFE32, "\242\012\305\012\371\072\372\237\145"},
{0xFE33, "\242\012\305\012\264\061\145"},
- {0xFE34, "\242\012\305\012\264\061\372\001\145"},
+ {0xFE34, "\242\012\305\012\264\061\372\002\145"},
{0xFE35, "\242\012\305\012\371\004\042\224"},
{0xFE36, "\242\012\305\012\371\004\037\224"},
- {0xFE37, "\242\012\305\373\104\042\145"},
- {0xFE38, "\242\012\305\373\104\037\145"},
- {0xFE39, "\242\012\305\012\100\042\145\007\371\212"},
- {0xFE3A, "\242\012\305\012\100\173\145\007\371\212"},
- {0xFE3B, "\242\012\305\012\100\042\371\277\156\145"},
- {0xFE3C, "\242\012\305\012\100\173\371\277\156\145"},
+ {0xFE37, "\242\012\305\373\105\042\145"},
+ {0xFE38, "\242\012\305\373\105\037\145"},
+ {0xFE39, "\242\012\305\012\100\042\145\007\371\213"},
+ {0xFE3A, "\242\012\305\012\100\173\145\007\371\213"},
+ {0xFE3B, "\242\012\305\012\100\042\371\300\156\145"},
+ {0xFE3C, "\242\012\305\012\100\173\371\300\156\145"},
{0xFE3D, "\242\012\305\012\100\051\042\145"},
{0xFE3E, "\242\012\305\012\100\051\173\145"},
{0xFE3F, "\242\012\305\012\100\042\145"},
{0xFE43, "\242\012\305\012\100\133\145\042\007\222"},
{0xFE44, "\242\012\305\012\100\133\145\173\007\222"},
{0xFE49, "\264\065\007\372\132"},
- {0xFE4A, "\264\065\040\027\373\061"},
- {0xFE4B, "\264\065\372\001"},
- {0xFE4C, "\264\065\051\372\001"},
+ {0xFE4A, "\264\065\040\027\373\062"},
+ {0xFE4B, "\264\065\372\002"},
+ {0xFE4C, "\264\065\051\372\002"},
{0xFE4D, "\264\061\130\372\132"},
- {0xFE4E, "\264\061\040\027\373\061"},
- {0xFE4F, "\264\061\372\001"},
+ {0xFE4E, "\264\061\040\027\373\062"},
+ {0xFE4F, "\264\061\372\002"},
{0xFE50, "\331\003"},
{0xFE51, "\331\063\003"},
{0xFE52, "\027\003"},
- {0xFE54, "\372\007\003"},
- {0xFE55, "\371\347\003"},
- {0xFE56, "\027\371\224\003"},
- {0xFE57, "\027\371\131\003"},
- {0xFE58, "\264\371\225\371\221\003"},
+ {0xFE54, "\372\010\003"},
+ {0xFE55, "\371\350\003"},
+ {0xFE56, "\027\371\225\003"},
+ {0xFE57, "\027\371\132\003"},
+ {0xFE58, "\264\371\226\371\222\003"},
{0xFE59, "\371\004\042\003"},
{0xFE5A, "\371\004\037\003"},
- {0xFE5B, "\371\260\042\003"},
- {0xFE5C, "\371\260\037\003"},
- {0xFE5D, "\100\042\007\371\212\003"},
- {0xFE5E, "\100\173\007\371\212\003"},
+ {0xFE5B, "\371\261\042\003"},
+ {0xFE5C, "\371\261\037\003"},
+ {0xFE5D, "\100\042\007\371\213\003"},
+ {0xFE5E, "\100\173\007\371\213\003"},
{0xFE5F, "\372\227\003"},
{0xFE60, "\372\327\003"},
{0xFE61, "\371\011\003"},
{0xFE62, "\134\162\003"},
- {0xFE63, "\371\071\003"},
+ {0xFE63, "\371\072\003"},
{0xFE64, "\134\300\040\003"},
{0xFE65, "\134\326\040\003"},
{0xFE66, "\134\142\040\003"},
- {0xFE68, "\210\361\371\274\003"},
+ {0xFE68, "\210\361\371\275\003"},
{0xFE69, "\015\372\243\003"},
- {0xFE6A, "\015\335\371\222\003"},
+ {0xFE6A, "\015\335\371\223\003"},
{0xFE6B, "\372\206\003"},
- {0xFE70, "\371\362\002\020"},
- {0xFE71, "\374\071\371\362\007\025\002"},
+ {0xFE70, "\371\363\002\020"},
+ {0xFE71, "\374\072\371\363\007\025\002"},
{0xFE72, "\372\233\002\020"},
{0xFE74, "\372\300\020\002"},
- {0xFE76, "\371\361\020\002"},
- {0xFE77, "\371\361\105\002"},
- {0xFE78, "\371\346\020\002"},
- {0xFE79, "\371\346\105\002"},
- {0xFE7A, "\371\371\020\002"},
- {0xFE7B, "\371\371\105\002"},
- {0xFE7C, "\371\044\020\002"},
- {0xFE7D, "\371\044\105\002"},
+ {0xFE76, "\371\362\020\002"},
+ {0xFE77, "\371\362\105\002"},
+ {0xFE78, "\371\347\020\002"},
+ {0xFE79, "\371\347\105\002"},
+ {0xFE7A, "\371\372\020\002"},
+ {0xFE7B, "\371\372\105\002"},
+ {0xFE7C, "\371\045\020\002"},
+ {0xFE7D, "\371\045\105\002"},
{0xFE7E, "\372\360\020\002"},
{0xFE7F, "\372\360\105\002"},
{0xFE80, "\001\002\126\020"},
- {0xFE81, "\001\002\054\371\301\007\025\020"},
- {0xFE82, "\001\002\054\371\301\007\025\016"},
+ {0xFE81, "\001\002\054\371\302\007\025\020"},
+ {0xFE82, "\001\002\054\371\302\007\025\016"},
{0xFE83, "\001\002\054\126\007\025\020"},
{0xFE84, "\001\002\016"},
- {0xFE85, "\001\002\371\034\126\007\025\020"},
- {0xFE86, "\001\002\371\034\126\007\025\016"},
+ {0xFE85, "\001\002\371\035\126\007\025\020"},
+ {0xFE86, "\001\002\371\035\126\007\025\016"},
{0xFE87, "\001\002\054\126\032\020"},
{0xFE88, "\001\002\054\126\032\016"},
{0xFE89, "\001\002\041\126\007\025\020"},
{0xFEA6, "\001\002\137\016"},
{0xFEA7, "\001\002\137\036"},
{0xFEA8, "\001\002\137\105"},
- {0xFEA9, "\001\002\371\133\020"},
- {0xFEAA, "\001\002\371\133\016"},
+ {0xFEA9, "\001\002\371\134\020"},
+ {0xFEAA, "\001\002\371\134\016"},
{0xFEAB, "\001\002\372\054\020"},
{0xFEAC, "\001\002\372\054\016"},
{0xFEAD, "\001\002\257\020"},
{0xFEAE, "\001\002\257\016"},
- {0xFEAF, "\001\002\371\123\020"},
- {0xFEB0, "\001\002\371\123\016"},
+ {0xFEAF, "\001\002\371\124\020"},
+ {0xFEB0, "\001\002\371\124\016"},
{0xFEB1, "\001\002\201\020"},
{0xFEB2, "\001\002\201\016"},
{0xFEB3, "\001\002\201\036"},
{0xFEC2, "\001\002\327\016"},
{0xFEC3, "\001\002\327\036"},
{0xFEC4, "\001\002\327\105"},
- {0xFEC5, "\001\002\371\211\020"},
- {0xFEC6, "\001\002\371\211\016"},
- {0xFEC7, "\001\002\371\211\036"},
- {0xFEC8, "\001\002\371\211\105"},
+ {0xFEC5, "\001\002\371\212\020"},
+ {0xFEC6, "\001\002\371\212\016"},
+ {0xFEC7, "\001\002\371\212\036"},
+ {0xFEC8, "\001\002\371\212\105"},
{0xFEC9, "\001\002\312\020"},
{0xFECA, "\001\002\312\016"},
{0xFECB, "\001\002\312\036"},
{0xFEEA, "\001\002\171\016"},
{0xFEEB, "\001\002\171\036"},
{0xFEEC, "\001\002\171\105"},
- {0xFEED, "\001\002\371\034\020"},
- {0xFEEE, "\001\002\371\034\016"},
+ {0xFEED, "\001\002\371\035\020"},
+ {0xFEEE, "\001\002\371\035\016"},
{0xFEEF, "\001\002\054\124\020"},
{0xFEF0, "\001\002\054\124\016"},
{0xFEF1, "\001\002\041\020"},
{0xFEF2, "\001\002\041\016"},
{0xFEF3, "\001\002\041\036"},
{0xFEF4, "\001\002\041\105"},
- {0xFEF5, "\006\002\155\054\371\301\007\025\020"},
- {0xFEF6, "\006\002\155\054\371\301\007\025\016"},
+ {0xFEF5, "\006\002\155\054\371\302\007\025\020"},
+ {0xFEF6, "\006\002\155\054\371\302\007\025\016"},
{0xFEF7, "\006\002\155\054\126\007\025\020"},
{0xFEF8, "\006\002\155\054\126\007\025\016"},
{0xFEF9, "\006\002\155\054\126\032\020"},
{0xFEFA, "\006\002\155\054\126\032\016"},
{0xFEFB, "\006\002\155\054\020"},
{0xFEFC, "\006\002\155\054\016"},
- {0xFEFF, "\371\025\373\237\232\056"},
- {0xFF01, "\027\371\131\062\056"},
+ {0xFEFF, "\371\026\373\240\232\056"},
+ {0xFF01, "\027\371\132\062\056"},
{0xFF02, "\371\014\062\056"},
{0xFF03, "\372\227\062\056"},
{0xFF04, "\015\372\243\062\056"},
- {0xFF05, "\015\335\371\222\062\056"},
+ {0xFF05, "\015\335\371\223\062\056"},
{0xFF06, "\372\327\062\056"},
- {0xFF07, "\371\215\062\056"},
+ {0xFF07, "\371\216\062\056"},
{0xFF08, "\371\004\042\062\056"},
{0xFF09, "\371\004\037\062\056"},
{0xFF0A, "\371\011\062\056"},
{0xFF0B, "\134\162\062\056"},
{0xFF0C, "\331\062\056"},
- {0xFF0D, "\371\071\062\056"},
+ {0xFF0D, "\371\072\062\056"},
{0xFF0E, "\027\062\056"},
{0xFF0F, "\210\361\062\056"},
{0xFF10, "\017\311\062\056"},
{0xFF17, "\017\221\062\056"},
{0xFF18, "\017\204\062\056"},
{0xFF19, "\017\235\062\056"},
- {0xFF1A, "\371\347\373\073\062\056"},
- {0xFF1B, "\372\007\062\056"},
+ {0xFF1A, "\371\350\373\074\062\056"},
+ {0xFF1B, "\372\010\062\056"},
{0xFF1C, "\134\300\040\062\056"},
{0xFF1D, "\134\142\040\062\056"},
{0xFF1E, "\134\326\040\062\056"},
- {0xFF1F, "\027\371\224\062\056"},
+ {0xFF1F, "\027\371\225\062\056"},
{0xFF20, "\372\206\062\056"},
{0xFF21, "\001\005\004\046\062\056"},
{0xFF22, "\001\005\004\275\062\056"},
{0xFF2E, "\001\005\004\213\062\056"},
{0xFF2F, "\001\005\004\050\062\056"},
{0xFF30, "\001\005\004\351\062\056"},
- {0xFF31, "\001\005\004\371\065\062\056"},
+ {0xFF31, "\001\005\004\371\066\062\056"},
{0xFF32, "\001\005\004\150\062\056"},
{0xFF33, "\001\005\004\207\062\056"},
{0xFF34, "\001\005\004\236\062\056"},
{0xFF39, "\001\005\004\240\062\056"},
{0xFF3A, "\001\005\004\243\062\056"},
{0xFF3B, "\100\042\062\056"},
- {0xFF3C, "\210\361\371\274\062\056"},
+ {0xFF3C, "\210\361\371\275\062\056"},
{0xFF3D, "\100\173\062\056"},
{0xFF3E, "\026\117\062\056"},
{0xFF3F, "\264\061\062\056"},
{0xFF4E, "\001\003\004\213\062\056"},
{0xFF4F, "\001\003\004\050\062\056"},
{0xFF50, "\001\003\004\351\062\056"},
- {0xFF51, "\001\003\004\371\065\062\056"},
+ {0xFF51, "\001\003\004\371\066\062\056"},
{0xFF52, "\001\003\004\150\062\056"},
{0xFF53, "\001\003\004\207\062\056"},
{0xFF54, "\001\003\004\236\062\056"},
{0xFF58, "\001\003\004\310\062\056"},
{0xFF59, "\001\003\004\240\062\056"},
{0xFF5A, "\001\003\004\243\062\056"},
- {0xFF5B, "\371\260\042\062\056"},
+ {0xFF5B, "\371\261\042\062\056"},
{0xFF5C, "\212\224\062\056"},
- {0xFF5D, "\371\260\037\062\056"},
+ {0xFF5D, "\371\261\037\062\056"},
{0xFF5E, "\143\062\056"},
{0xFF61, "\027\063\047"},
{0xFF62, "\100\042\007\222\047"},
{0xFF63, "\100\173\007\222\047"},
{0xFF64, "\331\063\047"},
- {0xFF65, "\027\371\037\030\047"},
- {0xFF66, "\001\030\371\122\047"},
+ {0xFF65, "\027\371\040\030\047"},
+ {0xFF66, "\001\030\371\123\047"},
{0xFF67, "\001\030\144\046\047"},
{0xFF68, "\001\030\144\072\047"},
{0xFF69, "\001\030\144\107\047"},
{0xFF6A, "\001\030\144\060\047"},
{0xFF6B, "\001\030\144\050\047"},
{0xFF6C, "\001\030\144\332\047"},
- {0xFF6D, "\001\030\144\371\256\047"},
+ {0xFF6D, "\001\030\144\371\257\047"},
{0xFF6E, "\001\030\144\371\021\047"},
- {0xFF6F, "\001\030\144\371\255\047"},
- {0xFF70, "\153\371\276\012\371\067\372\134\047"},
+ {0xFF6F, "\001\030\144\371\256\047"},
+ {0xFF70, "\153\371\277\012\371\070\372\134\047"},
{0xFF71, "\001\030\046\047"},
{0xFF72, "\001\030\072\047"},
{0xFF73, "\001\030\107\047"},
{0xFF76, "\001\030\244\047"},
{0xFF77, "\001\030\372\073\047"},
{0xFF78, "\001\030\372\075\047"},
- {0xFF79, "\001\030\371\235\047"},
- {0xFF7A, "\001\030\371\237\047"},
+ {0xFF79, "\001\030\371\236\047"},
+ {0xFF7A, "\001\030\371\240\047"},
{0xFF7B, "\001\030\364\047"},
{0xFF7C, "\001\030\372\152\047"},
{0xFF7D, "\001\030\372\161\047"},
- {0xFF7E, "\001\030\371\317\047"},
- {0xFF7F, "\001\030\371\045\047"},
+ {0xFF7E, "\001\030\371\320\047"},
+ {0xFF7F, "\001\030\371\046\047"},
{0xFF80, "\001\030\371\017\047"},
- {0xFF81, "\001\030\372\022\047"},
- {0xFF82, "\001\030\371\255\047"},
+ {0xFF81, "\001\030\372\023\047"},
+ {0xFF82, "\001\030\371\256\047"},
{0xFF83, "\001\030\372\165\047"},
- {0xFF84, "\001\030\371\253\047"},
+ {0xFF84, "\001\030\371\254\047"},
{0xFF85, "\001\030\371\002\047"},
{0xFF86, "\001\030\216\047"},
- {0xFF87, "\001\030\371\304\047"},
- {0xFF88, "\001\030\371\112\047"},
- {0xFF89, "\001\030\371\163\047"},
+ {0xFF87, "\001\030\371\305\047"},
+ {0xFF88, "\001\030\371\113\047"},
+ {0xFF89, "\001\030\371\164\047"},
{0xFF8A, "\001\030\333\047"},
{0xFF8B, "\001\030\372\067\047"},
{0xFF8C, "\001\030\372\070\047"},
- {0xFF8D, "\001\030\371\103\047"},
- {0xFF8E, "\001\030\371\060\047"},
+ {0xFF8D, "\001\030\371\104\047"},
+ {0xFF8E, "\001\030\371\061\047"},
{0xFF8F, "\001\030\360\047"},
{0xFF90, "\001\030\372\110\047"},
{0xFF91, "\001\030\371\001\047"},
{0xFF92, "\001\030\372\106\047"},
- {0xFF93, "\001\030\371\240\047"},
+ {0xFF93, "\001\030\371\241\047"},
{0xFF94, "\001\030\332\047"},
- {0xFF95, "\001\030\371\256\047"},
+ {0xFF95, "\001\030\371\257\047"},
{0xFF96, "\001\030\371\021\047"},
{0xFF97, "\001\030\345\047"},
{0xFF98, "\001\030\372\144\047"},
{0xFF99, "\001\030\372\146\047"},
- {0xFF9A, "\001\030\371\314\047"},
- {0xFF9B, "\001\030\372\014\047"},
- {0xFF9C, "\001\030\371\121\047"},
+ {0xFF9A, "\001\030\371\315\047"},
+ {0xFF9B, "\001\030\372\015\047"},
+ {0xFF9C, "\001\030\371\122\047"},
{0xFF9D, "\001\030\213\047"},
- {0xFF9E, "\153\030\012\371\067\372\031\047"},
- {0xFF9F, "\153\030\012\371\067\372\352\047"},
- {0xFFA0, "\371\340\010\047"},
- {0xFFA1, "\001\010\371\154\047"},
+ {0xFF9E, "\153\030\012\371\070\372\032\047"},
+ {0xFF9F, "\153\030\012\371\070\372\352\047"},
+ {0xFFA0, "\371\341\010\047"},
+ {0xFFA1, "\001\010\371\155\047"},
{0xFFA2, "\001\010\372\157\047"},
{0xFFA3, "\001\010\372\302\047"},
- {0xFFA4, "\001\010\371\162\047"},
+ {0xFFA4, "\001\010\371\163\047"},
{0xFFA5, "\001\010\372\316\047"},
{0xFFA6, "\001\010\372\315\047"},
- {0xFFA7, "\001\010\371\203\047"},
+ {0xFFA7, "\001\010\371\204\047"},
{0xFFA8, "\001\010\372\364\047"},
- {0xFFA9, "\001\010\371\171\047"},
+ {0xFFA9, "\001\010\371\172\047"},
{0xFFAA, "\001\010\372\342\047"},
{0xFFAB, "\001\010\372\343\047"},
{0xFFAC, "\001\010\372\345\047"},
{0xFFAE, "\001\010\372\347\047"},
{0xFFAF, "\001\010\372\344\047"},
{0xFFB0, "\001\010\372\145\047"},
- {0xFFB1, "\001\010\371\160\047"},
- {0xFFB2, "\001\010\371\167\047"},
+ {0xFFB1, "\001\010\371\161\047"},
+ {0xFFB2, "\001\010\371\170\047"},
{0xFFB3, "\001\010\372\362\047"},
{0xFFB4, "\001\010\372\125\047"},
- {0xFFB5, "\001\010\371\173\047"},
+ {0xFFB5, "\001\010\371\174\047"},
{0xFFB6, "\001\010\372\160\047"},
- {0xFFB7, "\001\010\371\151\047"},
- {0xFFB8, "\001\010\371\116\047"},
+ {0xFFB7, "\001\010\371\152\047"},
+ {0xFFB8, "\001\010\371\117\047"},
{0xFFB9, "\001\010\372\363\047"},
- {0xFFBA, "\001\010\371\200\047"},
- {0xFFBB, "\001\010\371\153\047"},
- {0xFFBC, "\001\010\371\177\047"},
- {0xFFBD, "\001\010\371\165\047"},
- {0xFFBE, "\001\010\371\147\047"},
+ {0xFFBA, "\001\010\371\201\047"},
+ {0xFFBB, "\001\010\371\154\047"},
+ {0xFFBC, "\001\010\371\200\047"},
+ {0xFFBD, "\001\010\371\166\047"},
+ {0xFFBE, "\001\010\371\150\047"},
{0xFFC2, "\001\010\046\047"},
{0xFFC3, "\001\010\373\015\047"},
{0xFFC4, "\001\010\332\047"},
{0xFFC5, "\001\010\373\012\047"},
{0xFFC6, "\001\010\050\047"},
- {0xFFC7, "\001\010\371\257\047"},
+ {0xFFC7, "\001\010\371\260\047"},
{0xFFCA, "\001\010\371\021\047"},
{0xFFCB, "\001\010\373\013\047"},
{0xFFCC, "\001\010\373\020\047"},
- {0xFFCD, "\001\010\371\121\047"},
+ {0xFFCD, "\001\010\371\122\047"},
{0xFFCE, "\001\010\373\004\047"},
{0xFFCF, "\001\010\372\251\047"},
{0xFFD2, "\001\010\373\014\047"},
{0xFFD3, "\001\010\114\047"},
- {0xFFD4, "\001\010\371\122\047"},
+ {0xFFD4, "\001\010\371\123\047"},
{0xFFD5, "\001\010\373\005\047"},
- {0xFFD6, "\001\010\371\330\047"},
- {0xFFD7, "\001\010\371\050\047"},
+ {0xFFD6, "\001\010\371\331\047"},
+ {0xFFD7, "\001\010\371\051\047"},
{0xFFDA, "\001\010\373\021\047"},
{0xFFDB, "\001\010\373\022\047"},
{0xFFDC, "\001\010\072\047"},
{0xFFE0, "\015\372\212\062\056"},
- {0xFFE1, "\015\373\266\062\056"},
+ {0xFFE1, "\015\373\267\062\056"},
{0xFFE2, "\134\372\116\062\056"},
{0xFFE3, "\161\062\056"},
- {0xFFE4, "\212\374\377\062\056"},
- {0xFFE5, "\015\374\133\062\056"},
- {0xFFE6, "\015\374\130\062\056"},
- {0xFFE8, "\212\224\373\277\047"},
+ {0xFFE4, "\212\375\001\062\056"},
+ {0xFFE5, "\015\374\134\062\056"},
+ {0xFFE6, "\015\374\131\062\056"},
+ {0xFFE8, "\212\224\373\300\047"},
{0xFFE9, "\043\013\022\042\047"},
{0xFFEA, "\043\013\035\065\047"},
{0xFFEB, "\043\013\022\037\047"},
{0xFFED, "\021\156\047"},
{0xFFEE, "\252\133\047"},
{0xFFFD, "\074\012\372\340"},
- {0xFFFE, "\375\350"},
+ {0xFFFE, "\375\351"},
};
#define V40 (1 << 5)
#define ENTRY(Code, String, Flags) \
- { Code, 0 Flags, String }
+ { Code, Flags, String }
-static struct ucs2_to_string main_translations [] =
+static struct ucs2_to_string translations [] =
{
- ENTRY (33, "excl", ),
- ENTRY (34, "quot", | V20 ),
- ENTRY (35, "num", ),
- ENTRY (36, "dollar", ),
- ENTRY (37, "percnt", ),
- ENTRY (38, "amp", | V11 | V20 ),
- ENTRY (39, "apos", ),
- ENTRY (40, "lpar", ),
- ENTRY (41, "rpar", ),
- ENTRY (42, "ast", ),
- ENTRY (43, "plus", ),
- ENTRY (44, "comma", ),
- ENTRY (45, "horbar", ),
- ENTRY (46, "period", ),
- ENTRY (58, "colon", ),
- ENTRY (59, "semi", ),
- ENTRY (60, "lt", | V11 | V20 ),
- ENTRY (61, "equals", ),
- ENTRY (62, "gt", | V11 | V20 ),
- ENTRY (63, "quest", ),
- ENTRY (64, "commat", ),
- ENTRY (91, "lsqb", ),
- ENTRY (93, "rsqb", ),
- ENTRY (94, "uarr", ),
- ENTRY (95, "lowbar", ),
- ENTRY (96, "grave", ),
- ENTRY (123, "lcub", ),
- ENTRY (124, "verbar", ),
- ENTRY (125, "rcub", ),
- ENTRY (126, "tilde", ),
- ENTRY (160, "nbsp", | V27 | V32 | V40 ),
- ENTRY (161, "iexcl", | V27 | V32 | V40 ),
- ENTRY (162, "cent", | V27 | V32 | V40 ),
- ENTRY (163, "pound", | V27 | V32 | V40 ),
- ENTRY (164, "curren", | V27 | V32 | V40 ),
- ENTRY (165, "yen", | V27 | V32 | V40 ),
- ENTRY (166, "brkbar", | V11 ),
- ENTRY (166, "brvbar", | V27 | V32 | V40 ),
- ENTRY (167, "sect", | V27 | V32 | V40 ),
- ENTRY (168, "die", | V11 ),
- ENTRY (168, "uml", | V27 | V32 | V40 ),
- ENTRY (169, "copy", | V27 | V32 | V40 ),
- ENTRY (170, "ordf", | V27 | V32 | V40 ),
- ENTRY (171, "laquo", | V27 | V32 | V40 ),
- ENTRY (172, "not", | V27 | V32 | V40 ),
- ENTRY (173, "hyphen", | V11 ),
- ENTRY (173, "shy", | V27 | V32 | V40 ),
- ENTRY (174, "reg", | V27 | V32 | V40 ),
- ENTRY (175, "hibar", | V11 ),
- ENTRY (175, "macr", | V27 | V32 | V40 ),
- ENTRY (176, "deg", | V27 | V32 | V40 ),
- ENTRY (177, "plusmn", | V27 | V32 | V40 ),
- ENTRY (178, "sup2", | V27 | V32 | V40 ),
- ENTRY (179, "sup3", | V27 | V32 | V40 ),
- ENTRY (180, "acute", | V27 | V32 | V40 ),
- ENTRY (181, "micro", | V27 | V32 | V40 ),
- ENTRY (182, "para", | V27 | V32 | V40 ),
- ENTRY (183, "middot", | V27 | V32 | V40 ),
- ENTRY (184, "cedil", | V27 | V32 | V40 ),
- ENTRY (185, "sup1", | V27 | V32 | V40 ),
- ENTRY (186, "ordm", | V27 | V32 | V40 ),
- ENTRY (187, "raquo", | V27 | V32 | V40 ),
- ENTRY (188, "frac14", | V27 | V32 | V40 ),
- ENTRY (189, "half", | V11 ),
- ENTRY (189, "frac12", | V27 | V32 | V40 ),
- ENTRY (190, "frac34", | V27 | V32 | V40 ),
- ENTRY (191, "iquest", | V27 | V32 | V40 ),
- ENTRY (192, "Agrave", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (193, "Aacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (194, "Acircu", | V11 ),
- ENTRY (194, "Acirc", | V20 | V27 | V32 | V40 ),
- ENTRY (195, "Atilde", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (196, "Adiaer", | V11 ),
- ENTRY (196, "Auml", | V20 | V27 | V32 | V40 ),
- ENTRY (197, "Aring", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (198, "AE", | V11 ),
- ENTRY (198, "AElig", | V20 | V27 | V32 | V40 ),
- ENTRY (199, "Ccedil", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (200, "Egrave", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (201, "Eacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (202, "Ecircu", | V11 ),
- ENTRY (202, "Ecirc", | V20 | V27 | V32 | V40 ),
- ENTRY (203, "Ediaer", | V11 ),
- ENTRY (203, "Euml", | V20 | V27 | V32 | V40 ),
- ENTRY (204, "Igrave", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (205, "Iacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (206, "Icircu", | V11 ),
- ENTRY (206, "Icirc", | V20 | V27 | V32 | V40 ),
- ENTRY (207, "Idiaer", | V11 ),
- ENTRY (207, "Iuml", | V20 | V27 | V32 | V40 ),
- ENTRY (208, "ETH", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (209, "Ntilde", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (210, "Ograve", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (211, "Oacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (212, "Ocircu", | V11 ),
- ENTRY (212, "Ocirc", | V20 | V27 | V32 | V40 ),
- ENTRY (213, "Otilde", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (214, "Odiaer", | V11 ),
- ENTRY (214, "Ouml", | V20 | V27 | V32 | V40 ),
- ENTRY (215, "MULT", | V11 ),
- ENTRY (215, "times", | V27 | V32 | V40 ),
- ENTRY (216, "Ostroke", | V11 ),
- ENTRY (216, "Oslash", | V20 | V27 | V32 | V40 ),
- ENTRY (217, "Ugrave", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (218, "Uacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (219, "Ucircu", | V11 ),
- ENTRY (219, "Ucirc", | V20 | V27 | V32 | V40 ),
- ENTRY (220, "Udiaer", | V11 ),
- ENTRY (220, "Uuml", | V20 | V27 | V32 | V40 ),
- ENTRY (221, "Yacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (222, "THORN", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (223, "ssharp", | V11 ),
- ENTRY (223, "szlig", | V20 | V27 | V32 | V40 ),
- ENTRY (224, "agrave", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (225, "aacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (226, "acircu", | V11 ),
- ENTRY (226, "acirc", | V20 | V27 | V32 | V40 ),
- ENTRY (227, "atilde", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (228, "adiaer", | V11 ),
- ENTRY (228, "auml", | V20 | V27 | V32 | V40 ),
- ENTRY (229, "aring", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (230, "ae", | V11 ),
- ENTRY (230, "aelig", | V20 | V27 | V32 | V40 ),
- ENTRY (231, "ccedil", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (232, "egrave", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (233, "eacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (234, "ecircu", | V11 ),
- ENTRY (234, "ecirc", | V20 | V27 | V32 | V40 ),
- ENTRY (235, "ediaer", | V11 ),
- ENTRY (235, "euml", | V20 | V27 | V32 | V40 ),
- ENTRY (236, "igrave", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (237, "iacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (238, "icircu", | V11 ),
- ENTRY (238, "icirc", | V20 | V27 | V32 | V40 ),
- ENTRY (239, "idiaer", | V11 ),
- ENTRY (239, "iuml", | V20 | V27 | V32 | V40 ),
- ENTRY (240, "eth", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (241, "ntilde", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (242, "ograve", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (243, "oacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (244, "ocircu", | V11 ),
- ENTRY (244, "ocirc", | V20 | V27 | V32 | V40 ),
- ENTRY (245, "otilde", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (246, "odiaer", | V11 ),
- ENTRY (246, "ouml", | V20 | V27 | V32 | V40 ),
- ENTRY (247, "DIVIS", | V11 ),
- ENTRY (247, "divide", | V27 | V32 | V40 ),
- ENTRY (248, "ostroke", | V11 ),
- ENTRY (248, "oslash", | V20 | V27 | V32 | V40 ),
- ENTRY (249, "ugrave", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (250, "uacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (251, "ucircu", | V11 ),
- ENTRY (251, "ucirc", | V20 | V27 | V32 | V40 ),
- ENTRY (252, "udiaer", | V11 ),
- ENTRY (252, "uuml", | V20 | V27 | V32 | V40 ),
- ENTRY (253, "yacute", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (254, "thorn", | V11 | V20 | V27 | V32 | V40 ),
- ENTRY (255, "ydiaer", | V11 ),
- ENTRY (255, "yuml", | V20 | V27 | V32 | V40 ),
- ENTRY (338, "OElig", | V40 ),
- ENTRY (339, "oelig", | V40 ),
- ENTRY (352, "Scaron", | V40 ),
- ENTRY (353, "scaron", | V40 ),
- ENTRY (376, "Yuml", | V40 ),
- ENTRY (402, "fnof", | V40 ),
- ENTRY (710, "circ", | V40 ),
- ENTRY (732, "tilde", | V40 ),
- ENTRY (913, "Alpha", | V40 ),
- ENTRY (914, "Beta", | V40 ),
- ENTRY (915, "Gamma", | V40 ),
- ENTRY (916, "Delta", | V40 ),
- ENTRY (917, "Epsilon", | V40 ),
- ENTRY (918, "Zeta", | V40 ),
- ENTRY (919, "Eta", | V40 ),
- ENTRY (920, "Theta", | V40 ),
- ENTRY (921, "Iota", | V40 ),
- ENTRY (922, "Kappa", | V40 ),
- ENTRY (923, "Lambda", | V40 ),
- ENTRY (924, "Mu", | V40 ),
- ENTRY (925, "Nu", | V40 ),
- ENTRY (926, "Xi", | V40 ),
- ENTRY (927, "Omicron", | V40 ),
- ENTRY (928, "Pi", | V40 ),
- ENTRY (929, "Rho", | V40 ),
- ENTRY (931, "Sigma", | V40 ),
- ENTRY (932, "Tau", | V40 ),
- ENTRY (933, "Upsilon", | V40 ),
- ENTRY (934, "Phi", | V40 ),
- ENTRY (935, "Chi", | V40 ),
- ENTRY (936, "Psi", | V40 ),
- ENTRY (937, "Omega", | V40 ),
- ENTRY (945, "alpha", | V40 ),
- ENTRY (946, "beta", | V40 ),
- ENTRY (947, "gamma", | V40 ),
- ENTRY (948, "delta", | V40 ),
- ENTRY (949, "epsilon", | V40 ),
- ENTRY (950, "zeta", | V40 ),
- ENTRY (951, "eta", | V40 ),
- ENTRY (952, "theta", | V40 ),
- ENTRY (953, "iota", | V40 ),
- ENTRY (954, "kappa", | V40 ),
- ENTRY (955, "lambda", | V40 ),
- ENTRY (956, "mu", | V40 ),
- ENTRY (957, "nu", | V40 ),
- ENTRY (958, "xi", | V40 ),
- ENTRY (959, "omicron", | V40 ),
- ENTRY (960, "pi", | V40 ),
- ENTRY (961, "rho", | V40 ),
- ENTRY (962, "sigmaf", | V40 ),
- ENTRY (963, "sigma", | V40 ),
- ENTRY (964, "tau", | V40 ),
- ENTRY (965, "upsilon", | V40 ),
- ENTRY (966, "phi", | V40 ),
- ENTRY (967, "chi", | V40 ),
- ENTRY (968, "psi", | V40 ),
- ENTRY (969, "omega", | V40 ),
- ENTRY (977, "thetasym", | V40 ),
- ENTRY (978, "upsih", | V40 ),
- ENTRY (982, "piv", | V40 ),
- ENTRY (8194, "ensp", | V40 ),
- ENTRY (8195, "emsp", | V40 ),
- ENTRY (8201, "thinsp", | V40 ),
- ENTRY (8204, "zwnj", | V27 | V40 ),
- ENTRY (8205, "zwj", | V27 | V40 ),
- ENTRY (8206, "lrm", | V27 | V40 ),
- ENTRY (8207, "rlm", | V27 | V40 ),
- ENTRY (8211, "ndash", | V40 ),
- ENTRY (8212, "mdash", | V40 ),
- ENTRY (8216, "lsquo", | V40 ),
- ENTRY (8217, "rsquo", | V40 ),
- ENTRY (8218, "sbquo", | V40 ),
- ENTRY (8220, "ldquo", | V40 ),
- ENTRY (8221, "rdquo", | V40 ),
- ENTRY (8222, "bdquo", | V40 ),
- ENTRY (8224, "dagger", | V40 ),
- ENTRY (8225, "Dagger", | V40 ),
- ENTRY (8226, "bull", | V40 ),
- ENTRY (8230, "hellip", | V40 ),
- ENTRY (8240, "permil", | V40 ),
- ENTRY (8242, "prime", | V40 ),
- ENTRY (8243, "Prime", | V40 ),
- ENTRY (8249, "lsaquo", | V40 ),
- ENTRY (8250, "rsaquo", | V40 ),
- ENTRY (8254, "oline", | V40 ),
- ENTRY (8260, "frasl", | V40 ),
- ENTRY (8364, "euro", | V40 ),
- ENTRY (8465, "image", | V40 ),
- ENTRY (8472, "weierp", | V40 ),
- ENTRY (8476, "real", | V40 ),
- ENTRY (8482, "trade", | V40 ),
- ENTRY (8501, "alefsym", | V40 ),
- ENTRY (8592, "larr", | V40 ),
- ENTRY (8593, "uarr", | V40 ),
- ENTRY (8594, "rarr", | V40 ),
- ENTRY (8595, "darr", | V40 ),
- ENTRY (8596, "harr", | V40 ),
- ENTRY (8629, "crarr", | V40 ),
- ENTRY (8656, "lArr", | V40 ),
- ENTRY (8657, "uArr", | V40 ),
- ENTRY (8658, "rArr", | V40 ),
- ENTRY (8659, "dArr", | V40 ),
- ENTRY (8660, "hArr", | V40 ),
- ENTRY (8704, "forall", | V40 ),
- ENTRY (8706, "part", | V40 ),
- ENTRY (8707, "exist", | V40 ),
- ENTRY (8709, "empty", | V40 ),
- ENTRY (8711, "nabla", | V40 ),
- ENTRY (8712, "isin", | V40 ),
- ENTRY (8713, "notin", | V40 ),
- ENTRY (8715, "ni", | V40 ),
- ENTRY (8719, "prod", | V40 ),
- ENTRY (8721, "sum", | V40 ),
- ENTRY (8722, "minus", | V40 ),
- ENTRY (8727, "lowast", | V40 ),
- ENTRY (8730, "radic", | V40 ),
- ENTRY (8733, "prop", | V40 ),
- ENTRY (8734, "infin", | V40 ),
- ENTRY (8736, "ang", | V40 ),
- ENTRY (8743, "and", | V40 ),
- ENTRY (8744, "or", | V40 ),
- ENTRY (8745, "cap", | V40 ),
- ENTRY (8746, "cup", | V40 ),
- ENTRY (8747, "int", | V40 ),
- ENTRY (8756, "there4", | V40 ),
- ENTRY (8764, "sim", | V40 ),
- ENTRY (8773, "cong", | V40 ),
- ENTRY (8776, "asymp", | V40 ),
- ENTRY (8800, "ne", | V40 ),
- ENTRY (8801, "equiv", | V40 ),
- ENTRY (8804, "le", | V40 ),
- ENTRY (8805, "ge", | V40 ),
- ENTRY (8834, "sub", | V40 ),
- ENTRY (8835, "sup", | V40 ),
- ENTRY (8836, "nsub", | V40 ),
- ENTRY (8838, "sube", | V40 ),
- ENTRY (8839, "supe", | V40 ),
- ENTRY (8853, "oplus", | V40 ),
- ENTRY (8855, "otimes", | V40 ),
- ENTRY (8869, "perp", | V40 ),
- ENTRY (8901, "sdot", | V40 ),
- ENTRY (8968, "lceil", | V40 ),
- ENTRY (8969, "rceil", | V40 ),
- ENTRY (8970, "lfloor", | V40 ),
- ENTRY (8971, "rfloor", | V40 ),
- ENTRY (9001, "lang", | V40 ),
- ENTRY (9002, "rang", | V40 ),
- ENTRY (9674, "loz", | V40 ),
- ENTRY (9824, "spades", | V40 ),
- ENTRY (9827, "clubs", | V40 ),
- ENTRY (9829, "hearts", | V40 ),
- ENTRY (9830, "diams", | V40 ),
- ENTRY (0, NULL, )
- };
-
-static struct ucs2_to_string const other_translations [] =
- {
- ENTRY (34, "quot", ),
- ENTRY (38, "amp", ),
- ENTRY (60, "lt", ),
- ENTRY (62, "gt", ),
- ENTRY (0, NULL, )
+ ENTRY (33, "excl", 0 ),
+ ENTRY (34, "quot", 0 | V20 | V27 | V32 | V40),
+ ENTRY (35, "num", 0 ),
+ ENTRY (36, "dollar", 0 ),
+ ENTRY (37, "percnt", 0 ),
+ ENTRY (38, "amp", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (39, "apos", 0 ),
+ ENTRY (40, "lpar", 0 ),
+ ENTRY (41, "rpar", 0 ),
+ ENTRY (42, "ast", 0 ),
+ ENTRY (43, "plus", 0 ),
+ ENTRY (44, "comma", 0 ),
+ ENTRY (45, "horbar", 0 ),
+ ENTRY (46, "period", 0 ),
+ ENTRY (58, "colon", 0 ),
+ ENTRY (59, "semi", 0 ),
+ ENTRY (60, "lt", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (61, "equals", 0 ),
+ ENTRY (62, "gt", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (63, "quest", 0 ),
+ ENTRY (64, "commat", 0 ),
+ ENTRY (91, "lsqb", 0 ),
+ ENTRY (93, "rsqb", 0 ),
+ ENTRY (94, "uarr", 0 ),
+ ENTRY (95, "lowbar", 0 ),
+ ENTRY (96, "grave", 0 ),
+ ENTRY (123, "lcub", 0 ),
+ ENTRY (124, "verbar", 0 ),
+ ENTRY (125, "rcub", 0 ),
+ ENTRY (126, "tilde", 0 ),
+ ENTRY (160, "nbsp", 0 | V27 | V32 | V40),
+ ENTRY (161, "iexcl", 0 | V27 | V32 | V40),
+ ENTRY (162, "cent", 0 | V27 | V32 | V40),
+ ENTRY (163, "pound", 0 | V27 | V32 | V40),
+ ENTRY (164, "curren", 0 | V27 | V32 | V40),
+ ENTRY (165, "yen", 0 | V27 | V32 | V40),
+ ENTRY (166, "brkbar", 0 | V11 ),
+ ENTRY (166, "brvbar", 0 | V27 | V32 | V40),
+ ENTRY (167, "sect", 0 | V27 | V32 | V40),
+ ENTRY (168, "die", 0 | V11 ),
+ ENTRY (168, "uml", 0 | V27 | V32 | V40),
+ ENTRY (169, "copy", 0 | V27 | V32 | V40),
+ ENTRY (170, "ordf", 0 | V27 | V32 | V40),
+ ENTRY (171, "laquo", 0 | V27 | V32 | V40),
+ ENTRY (172, "not", 0 | V27 | V32 | V40),
+ ENTRY (173, "hyphen", 0 | V11 ),
+ ENTRY (173, "shy", 0 | V27 | V32 | V40),
+ ENTRY (174, "reg", 0 | V27 | V32 | V40),
+ ENTRY (175, "hibar", 0 | V11 ),
+ ENTRY (175, "macr", 0 | V27 | V32 | V40),
+ ENTRY (176, "deg", 0 | V27 | V32 | V40),
+ ENTRY (177, "plusmn", 0 | V27 | V32 | V40),
+ ENTRY (178, "sup2", 0 | V27 | V32 | V40),
+ ENTRY (179, "sup3", 0 | V27 | V32 | V40),
+ ENTRY (180, "acute", 0 | V27 | V32 | V40),
+ ENTRY (181, "micro", 0 | V27 | V32 | V40),
+ ENTRY (182, "para", 0 | V27 | V32 | V40),
+ ENTRY (183, "middot", 0 | V27 | V32 | V40),
+ ENTRY (184, "cedil", 0 | V27 | V32 | V40),
+ ENTRY (185, "sup1", 0 | V27 | V32 | V40),
+ ENTRY (186, "ordm", 0 | V27 | V32 | V40),
+ ENTRY (187, "raquo", 0 | V27 | V32 | V40),
+ ENTRY (188, "frac14", 0 | V27 | V32 | V40),
+ ENTRY (189, "half", 0 | V11 ),
+ ENTRY (189, "frac12", 0 | V27 | V32 | V40),
+ ENTRY (190, "frac34", 0 | V27 | V32 | V40),
+ ENTRY (191, "iquest", 0 | V27 | V32 | V40),
+ ENTRY (192, "Agrave", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (193, "Aacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (194, "Acircu", 0 | V11 ),
+ ENTRY (194, "Acirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (195, "Atilde", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (196, "Adiaer", 0 | V11 ),
+ ENTRY (196, "Auml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (197, "Aring", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (198, "AE", 0 | V11 ),
+ ENTRY (198, "AElig", 0 | V20 | V27 | V32 | V40),
+ ENTRY (199, "Ccedil", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (200, "Egrave", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (201, "Eacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (202, "Ecircu", 0 | V11 ),
+ ENTRY (202, "Ecirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (203, "Ediaer", 0 | V11 ),
+ ENTRY (203, "Euml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (204, "Igrave", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (205, "Iacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (206, "Icircu", 0 | V11 ),
+ ENTRY (206, "Icirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (207, "Idiaer", 0 | V11 ),
+ ENTRY (207, "Iuml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (208, "ETH", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (209, "Ntilde", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (210, "Ograve", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (211, "Oacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (212, "Ocircu", 0 | V11 ),
+ ENTRY (212, "Ocirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (213, "Otilde", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (214, "Odiaer", 0 | V11 ),
+ ENTRY (214, "Ouml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (215, "MULT", 0 | V11 ),
+ ENTRY (215, "times", 0 | V27 | V32 | V40),
+ ENTRY (216, "Ostroke", 0 | V11 ),
+ ENTRY (216, "Oslash", 0 | V20 | V27 | V32 | V40),
+ ENTRY (217, "Ugrave", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (218, "Uacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (219, "Ucircu", 0 | V11 ),
+ ENTRY (219, "Ucirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (220, "Udiaer", 0 | V11 ),
+ ENTRY (220, "Uuml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (221, "Yacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (222, "THORN", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (223, "ssharp", 0 | V11 ),
+ ENTRY (223, "szlig", 0 | V20 | V27 | V32 | V40),
+ ENTRY (224, "agrave", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (225, "aacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (226, "acircu", 0 | V11 ),
+ ENTRY (226, "acirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (227, "atilde", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (228, "adiaer", 0 | V11 ),
+ ENTRY (228, "auml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (229, "aring", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (230, "ae", 0 | V11 ),
+ ENTRY (230, "aelig", 0 | V20 | V27 | V32 | V40),
+ ENTRY (231, "ccedil", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (232, "egrave", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (233, "eacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (234, "ecircu", 0 | V11 ),
+ ENTRY (234, "ecirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (235, "ediaer", 0 | V11 ),
+ ENTRY (235, "euml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (236, "igrave", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (237, "iacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (238, "icircu", 0 | V11 ),
+ ENTRY (238, "icirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (239, "idiaer", 0 | V11 ),
+ ENTRY (239, "iuml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (240, "eth", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (241, "ntilde", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (242, "ograve", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (243, "oacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (244, "ocircu", 0 | V11 ),
+ ENTRY (244, "ocirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (245, "otilde", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (246, "odiaer", 0 | V11 ),
+ ENTRY (246, "ouml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (247, "DIVIS", 0 | V11 ),
+ ENTRY (247, "divide", 0 | V27 | V32 | V40),
+ ENTRY (248, "ostroke", 0 | V11 ),
+ ENTRY (248, "oslash", 0 | V20 | V27 | V32 | V40),
+ ENTRY (249, "ugrave", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (250, "uacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (251, "ucircu", 0 | V11 ),
+ ENTRY (251, "ucirc", 0 | V20 | V27 | V32 | V40),
+ ENTRY (252, "udiaer", 0 | V11 ),
+ ENTRY (252, "uuml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (253, "yacute", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (254, "thorn", 0 | V11 | V20 | V27 | V32 | V40),
+ ENTRY (255, "ydiaer", 0 | V11 ),
+ ENTRY (255, "yuml", 0 | V20 | V27 | V32 | V40),
+ ENTRY (338, "OElig", 0 | V40),
+ ENTRY (339, "oelig", 0 | V40),
+ ENTRY (352, "Scaron", 0 | V40),
+ ENTRY (353, "scaron", 0 | V40),
+ ENTRY (376, "Yuml", 0 | V40),
+ ENTRY (402, "fnof", 0 | V40),
+ ENTRY (710, "circ", 0 | V40),
+ ENTRY (732, "tilde", 0 | V40),
+ ENTRY (913, "Alpha", 0 | V40),
+ ENTRY (914, "Beta", 0 | V40),
+ ENTRY (915, "Gamma", 0 | V40),
+ ENTRY (916, "Delta", 0 | V40),
+ ENTRY (917, "Epsilon", 0 | V40),
+ ENTRY (918, "Zeta", 0 | V40),
+ ENTRY (919, "Eta", 0 | V40),
+ ENTRY (920, "Theta", 0 | V40),
+ ENTRY (921, "Iota", 0 | V40),
+ ENTRY (922, "Kappa", 0 | V40),
+ ENTRY (923, "Lambda", 0 | V40),
+ ENTRY (924, "Mu", 0 | V40),
+ ENTRY (925, "Nu", 0 | V40),
+ ENTRY (926, "Xi", 0 | V40),
+ ENTRY (927, "Omicron", 0 | V40),
+ ENTRY (928, "Pi", 0 | V40),
+ ENTRY (929, "Rho", 0 | V40),
+ ENTRY (931, "Sigma", 0 | V40),
+ ENTRY (932, "Tau", 0 | V40),
+ ENTRY (933, "Upsilon", 0 | V40),
+ ENTRY (934, "Phi", 0 | V40),
+ ENTRY (935, "Chi", 0 | V40),
+ ENTRY (936, "Psi", 0 | V40),
+ ENTRY (937, "Omega", 0 | V40),
+ ENTRY (945, "alpha", 0 | V40),
+ ENTRY (946, "beta", 0 | V40),
+ ENTRY (947, "gamma", 0 | V40),
+ ENTRY (948, "delta", 0 | V40),
+ ENTRY (949, "epsilon", 0 | V40),
+ ENTRY (950, "zeta", 0 | V40),
+ ENTRY (951, "eta", 0 | V40),
+ ENTRY (952, "theta", 0 | V40),
+ ENTRY (953, "iota", 0 | V40),
+ ENTRY (954, "kappa", 0 | V40),
+ ENTRY (955, "lambda", 0 | V40),
+ ENTRY (956, "mu", 0 | V40),
+ ENTRY (957, "nu", 0 | V40),
+ ENTRY (958, "xi", 0 | V40),
+ ENTRY (959, "omicron", 0 | V40),
+ ENTRY (960, "pi", 0 | V40),
+ ENTRY (961, "rho", 0 | V40),
+ ENTRY (962, "sigmaf", 0 | V40),
+ ENTRY (963, "sigma", 0 | V40),
+ ENTRY (964, "tau", 0 | V40),
+ ENTRY (965, "upsilon", 0 | V40),
+ ENTRY (966, "phi", 0 | V40),
+ ENTRY (967, "chi", 0 | V40),
+ ENTRY (968, "psi", 0 | V40),
+ ENTRY (969, "omega", 0 | V40),
+ ENTRY (977, "thetasym", 0 | V40),
+ ENTRY (978, "upsih", 0 | V40),
+ ENTRY (982, "piv", 0 | V40),
+ ENTRY (8194, "ensp", 0 | V40),
+ ENTRY (8195, "emsp", 0 | V40),
+ ENTRY (8201, "thinsp", 0 | V40),
+ ENTRY (8204, "zwnj", 0 | V27 | V40),
+ ENTRY (8205, "zwj", 0 | V27 | V40),
+ ENTRY (8206, "lrm", 0 | V27 | V40),
+ ENTRY (8207, "rlm", 0 | V27 | V40),
+ ENTRY (8211, "ndash", 0 | V40),
+ ENTRY (8212, "mdash", 0 | V40),
+ ENTRY (8216, "lsquo", 0 | V40),
+ ENTRY (8217, "rsquo", 0 | V40),
+ ENTRY (8218, "sbquo", 0 | V40),
+ ENTRY (8220, "ldquo", 0 | V40),
+ ENTRY (8221, "rdquo", 0 | V40),
+ ENTRY (8222, "bdquo", 0 | V40),
+ ENTRY (8224, "dagger", 0 | V40),
+ ENTRY (8225, "Dagger", 0 | V40),
+ ENTRY (8226, "bull", 0 | V40),
+ ENTRY (8230, "hellip", 0 | V40),
+ ENTRY (8240, "permil", 0 | V40),
+ ENTRY (8242, "prime", 0 | V40),
+ ENTRY (8243, "Prime", 0 | V40),
+ ENTRY (8249, "lsaquo", 0 | V40),
+ ENTRY (8250, "rsaquo", 0 | V40),
+ ENTRY (8254, "oline", 0 | V40),
+ ENTRY (8260, "frasl", 0 | V40),
+ ENTRY (8364, "euro", 0 | V40),
+ ENTRY (8465, "image", 0 | V40),
+ ENTRY (8472, "weierp", 0 | V40),
+ ENTRY (8476, "real", 0 | V40),
+ ENTRY (8482, "trade", 0 | V40),
+ ENTRY (8501, "alefsym", 0 | V40),
+ ENTRY (8592, "larr", 0 | V40),
+ ENTRY (8593, "uarr", 0 | V40),
+ ENTRY (8594, "rarr", 0 | V40),
+ ENTRY (8595, "darr", 0 | V40),
+ ENTRY (8596, "harr", 0 | V40),
+ ENTRY (8629, "crarr", 0 | V40),
+ ENTRY (8656, "lArr", 0 | V40),
+ ENTRY (8657, "uArr", 0 | V40),
+ ENTRY (8658, "rArr", 0 | V40),
+ ENTRY (8659, "dArr", 0 | V40),
+ ENTRY (8660, "hArr", 0 | V40),
+ ENTRY (8704, "forall", 0 | V40),
+ ENTRY (8706, "part", 0 | V40),
+ ENTRY (8707, "exist", 0 | V40),
+ ENTRY (8709, "empty", 0 | V40),
+ ENTRY (8711, "nabla", 0 | V40),
+ ENTRY (8712, "isin", 0 | V40),
+ ENTRY (8713, "notin", 0 | V40),
+ ENTRY (8715, "ni", 0 | V40),
+ ENTRY (8719, "prod", 0 | V40),
+ ENTRY (8721, "sum", 0 | V40),
+ ENTRY (8722, "minus", 0 | V40),
+ ENTRY (8727, "lowast", 0 | V40),
+ ENTRY (8730, "radic", 0 | V40),
+ ENTRY (8733, "prop", 0 | V40),
+ ENTRY (8734, "infin", 0 | V40),
+ ENTRY (8736, "ang", 0 | V40),
+ ENTRY (8743, "and", 0 | V40),
+ ENTRY (8744, "or", 0 | V40),
+ ENTRY (8745, "cap", 0 | V40),
+ ENTRY (8746, "cup", 0 | V40),
+ ENTRY (8747, "int", 0 | V40),
+ ENTRY (8756, "there4", 0 | V40),
+ ENTRY (8764, "sim", 0 | V40),
+ ENTRY (8773, "cong", 0 | V40),
+ ENTRY (8776, "asymp", 0 | V40),
+ ENTRY (8800, "ne", 0 | V40),
+ ENTRY (8801, "equiv", 0 | V40),
+ ENTRY (8804, "le", 0 | V40),
+ ENTRY (8805, "ge", 0 | V40),
+ ENTRY (8834, "sub", 0 | V40),
+ ENTRY (8835, "sup", 0 | V40),
+ ENTRY (8836, "nsub", 0 | V40),
+ ENTRY (8838, "sube", 0 | V40),
+ ENTRY (8839, "supe", 0 | V40),
+ ENTRY (8853, "oplus", 0 | V40),
+ ENTRY (8855, "otimes", 0 | V40),
+ ENTRY (8869, "perp", 0 | V40),
+ ENTRY (8901, "sdot", 0 | V40),
+ ENTRY (8968, "lceil", 0 | V40),
+ ENTRY (8969, "rceil", 0 | V40),
+ ENTRY (8970, "lfloor", 0 | V40),
+ ENTRY (8971, "rfloor", 0 | V40),
+ ENTRY (9001, "lang", 0 | V40),
+ ENTRY (9002, "rang", 0 | V40),
+ ENTRY (9674, "loz", 0 | V40),
+ ENTRY (9824, "spades", 0 | V40),
+ ENTRY (9827, "clubs", 0 | V40),
+ ENTRY (9829, "hearts", 0 | V40),
+ ENTRY (9830, "diams", 0 | V40),
+ ENTRY (0, NULL, 0 )
};
#undef ENTRY
if (!table)
return false;
- for (cursor = main_translations; cursor->code; cursor++)
- if (cursor->code > 128 && cursor->flags & mask)
- if (!hash_insert (table, cursor))
- return false;
- if (!request->diacritics_only)
- for (cursor = other_translations; cursor->code; cursor++)
+ for (cursor = translations; cursor->code; cursor++)
+ if (cursor->flags & mask
+ && (!request->diacritics_only || cursor->code > 128))
if (!hash_insert (table, cursor))
return false;
return true;
}
-/*-----------------.
-| Initialisation. |
-`-----------------*/
-
static bool
init_ucs2_html_v11 (RECODE_STEP step,
RECODE_CONST_REQUEST request,
init_ucs2_html (step, request, before_options, after_options, V40);
}
+/*-----------------.
+| Transformation. |
+`-----------------*/
+
static bool
transform_ucs2_html (RECODE_CONST_STEP step, RECODE_TASK task)
{
}
put_byte (';', task);
}
- else if ((value < 32 || value >= 127) && value != '\n')
+ else if (value < 32 && value != '\n' && value != '\t' || value >= 127)
{
unsigned divider = 10000;
if (!table)
return false;
- for (cursor = main_translations; cursor->code; cursor++)
- if (cursor->flags & mask)
- if (!hash_insert (table, cursor))
- return false;
- if (!request->diacritics_only)
- for (cursor = other_translations; cursor->code; cursor++)
+ for (cursor = translations; cursor->code; cursor++)
+ if (cursor->flags & mask
+ && (!request->diacritics_only || cursor->code > 128))
if (!hash_insert (table, cursor))
return false;
int input_char;
input_char = get_byte (task);
+ if (input_char != EOF)
+ put_ucs2 (BYTE_ORDER_MARK, task); /* FIXME: experimental */
+
while (input_char != EOF)
if (input_char == '&')
while (valid)
{
- if (input_char >= '0' && input_char < '9')
+ if (input_char >= '0' && input_char <= '9')
value = 16 * value + input_char - '0';
- else if (input_char >= 'A' && input_char < 'Z')
+ else if (input_char >= 'A' && input_char <= 'F')
value = 16 * value + input_char - 'A' + 10;
- else if (input_char >= 'a' && input_char < 'z')
+ else if (input_char >= 'a' && input_char <= 'f')
value = 16 * value + input_char - 'a' + 10;
else
break;
if (value >= 65535)
valid = false;
- else if (cursor == buffer + ENTITY_BUFFER_LENGTH - 1)
+ else if (cursor == buffer + ENTITY_BUFFER_LENGTH - 2)
valid = false;
else
{
if (valid)
if (request->diacritics_only)
- echo = true;
+ {
+ echo = true;
+ *cursor = '\0';
+ }
else
{
put_ucs2 (value, task);
/* Scan &#[0-9]+; notation. */
+ *cursor++ = '#';
+
while (valid)
{
- if (input_char >= '0' && input_char < '9')
+ if (input_char >= '0' && input_char <= '9')
value = 10 * value + input_char - '0';
else
break;
if (value >= 65535)
valid = false;
- else if (cursor == buffer + ENTITY_BUFFER_LENGTH - 1)
+ else if (cursor == buffer + ENTITY_BUFFER_LENGTH - 2)
valid = false;
else
{
if (valid)
if (request->diacritics_only)
- echo = true;
+ {
+ echo = true;
+ *cursor = '\0';
+ }
else
{
put_ucs2 (value, task);
&& ((input_char >= 'A' && input_char <= 'Z')
|| (input_char >= 'a' && input_char <= 'z')
|| (input_char >= '0' && input_char <= '9')))
- if (cursor == buffer + ENTITY_BUFFER_LENGTH - 1)
+ if (cursor == buffer + ENTITY_BUFFER_LENGTH - 2)
valid = false;
else
{
if (!module_utf7 (outer)) return false;
if (!module_utf8 (outer)) return false;
if (!module_varia (outer)) return false;
+ if (!module_viet (outer)) return false;
if (!module_flat (outer)) return false;
if (!module_html (outer)) return false;
if (!module_latin1_latex (outer)) return false;
if (file = fopen (input_name, "r+"), file == NULL)
error (EXIT_FAILURE, errno, "fopen (%s)", input_name);
- /* Save the input file time stamp. */
-
- if (!touch_option)
- fstat (fileno (file), &file_stat);
+ /* Save the input file attrobites. */
+ fstat (fileno (file), &file_stat);
fclose (file);
{
/* Choose an output file in the same directory. */
+ /* FIXME: Scott Schwartz <schwartz@bio.cse.psu.edu> 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);
if (unlink (input_name) < 0)
error (EXIT_FAILURE, errno, "unlink (%s)", input_name);
+
+ /* Preserve the file permissions. */
+
+ 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)",
success = false;
if (verbose_flag)
{
- fprintf (stderr, _(" failed: %s in %s..%s\n"),
+ fprintf (stderr, _(" failed: %s in step `%s..%s'\n"),
task_perror (task),
task->error_at_step->before->name,
task->error_at_step->after->name);
fflush (stderr);
}
else if (!quiet_flag)
- error (0, 0, _("%s failed: %s in %s..%s"), input_name,
- task_perror (task),
+ error (0, 0, _("%s failed: %s in step `%s..%s'"),
+ input_name, task_perror (task),
task->error_at_step->before->name,
task->error_at_step->after->name);
{
success = false;
if (!quiet_flag)
- error (0, 0, _("%s in %s..%s"),
+ error (0, 0, _("%s in step `%s..%s'"),
task_perror (task),
task->error_at_step->before->name,
task->error_at_step->after->name);
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.84 95/04/20 12:46:03 vern Exp $
+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
*/
#define FLEX_SCANNER
{ \
/* Undo effects of setting up yytext. */ \
*yy_cp = yy_hold_char; \
+ YY_RESTORE_YY_MORE_OFFSET \
yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
} \
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *str ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
#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 *yytext;
#define INITIAL 0
-/* This file is generated automatically by mergelex.awk. */
+/* This file is generated automatically by `mergelex.py'. */
#include "common.h"
static RECODE_CONST_REQUEST request;
static RECODE_TASK task;
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
#endif
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+#endif
+
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput YY_PROTO(( void ));
/* Undo the effects of YY_DO_BEFORE_ACTION. */
*yy_cp = yy_hold_char;
+ YY_RESTORE_YY_MORE_OFFSET
if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
{
{ /* 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 singled characater, the EOB, so
+ /* We matched a single character, the EOB, so
* treat this as a final EOF.
*/
return EOB_ACT_END_OF_FILE;
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
- yy_n_chars = 0;
+ yy_current_buffer->yy_n_chars = yy_n_chars = 0;
else
{
/* Read in more data. */
YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
yy_n_chars, num_to_read );
+
+ yy_current_buffer->yy_n_chars = yy_n_chars;
}
if ( yy_n_chars == 0 )
yy_cp += (int) (dest - source);
yy_bp += (int) (dest - source);
- yy_n_chars = yy_current_buffer->yy_buf_size;
+ yy_current_buffer->yy_n_chars =
+ yy_n_chars = yy_current_buffer->yy_buf_size;
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
YY_FATAL_ERROR( "flex scanner push-back overflow" );
else
{ /* need more input */
- yytext_ptr = yy_c_buf_p;
+ 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. */
+ yyrestart( yyin );
+
+ /* fall through */
+
case EOB_ACT_END_OF_FILE:
{
if ( yywrap() )
- {
- yy_c_buf_p =
- yytext_ptr + YY_MORE_ADJ;
return EOF;
- }
if ( ! yy_did_buffer_switch_on_eof )
YY_NEW_FILE;
}
case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+ yy_c_buf_p = yytext_ptr + offset;
break;
-
- case EOB_ACT_LAST_MATCH:
-#ifdef __cplusplus
- YY_FATAL_ERROR(
- "unexpected last match in yyinput()" );
-#else
- YY_FATAL_ERROR(
- "unexpected last match in input()" );
-#endif
}
}
}
#endif
{
+ if ( ! b )
+ return;
+
b->yy_n_chars = 0;
/* We always need two end-of-buffer characters. The first causes
#ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_string( yyconst char *str )
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
#else
-YY_BUFFER_STATE yy_scan_string( str )
-yyconst char *str;
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
#endif
{
int len;
- for ( len = 0; str[len]; ++len )
+ for ( len = 0; yy_str[len]; ++len )
;
- return yy_scan_bytes( str, len );
+ return yy_scan_bytes( yy_str, len );
}
#endif
{ \
/* Undo effects of setting up yytext. */ \
yytext[yyleng] = yy_hold_char; \
- yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
+ yy_c_buf_p = yytext + n; \
yy_hold_char = *yy_c_buf_p; \
*yy_c_buf_p = '\0'; \
yyleng = n; \
}
#endif
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+ {
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+ }
+#endif
+
#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( yy_size_t size )
yy_size_t size;
#endif
{
- return (void *) realloc( ptr, 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 );
}
#ifdef YY_USE_PROTOS
}
#endif
+/* Conversion of files between different charsets and surfaces.
+ Copyright © 1990, 93, 94, 97, 98, 99 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
+
+ The `recode' Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License
+ as published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The `recode' Library is distributed in the hope that 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_CONST_STEP step, RECODE_TASK task_argument)
+++ /dev/null
-# Conversion of files between different charsets and surfaces.
-# Copyright © 1990, 1993, 1994, 1995, 1997, 1999 Free Software Foundation, Inc.
-# François Pinard <pinard@iro.umontreal.ca>, 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 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 awk script merges several lex sources intended for `recode'.
-# It requires Flex 2.5 or later.
-
-# At beginning, one temporary file is initialized for each section.
-
-BEGIN {
- SECTION1 = "merged1.tmp"
- SECTION2 = "merged2.tmp"
- SECTION3 = "merged3.tmp"
-
- print "/* This file is generated automatically by mergelex.awk. */"
-
- print "" >SECTION1
- print "%option noyywrap" >SECTION1
- print "%{" >SECTION1
- print "#include \"common.h\"" >SECTION1
- print "static RECODE_CONST_REQUEST request;" >SECTION1
- print "static RECODE_TASK task;" >SECTION1
- print "%}" >SECTION1
-
- print "%%" >SECTION2
- print "<<EOF>> { return 1; }" >SECTION2
-
- print "%%" >SECTION3
-}
-
-# A `/* Step name: NAME. */' line indicates the start of a new file.
-# Generate an interface routine. The step name is saved for broketed
-# prefixes in rules.
-
-$1 == "/*" && $2 == "Step" && $3 == "name:" && $5 == "*/" {
- section = 1
- step_name = $4
- sub ("\.$", "", step_name)
- print "" >SECTION3
- print "static bool" >SECTION3
- print "transform_" step_name \
- " (RECODE_CONST_STEP step," \
- " RECODE_TASK task_argument)" >SECTION3
- print "{" >SECTION3
- print " task = task_argument;" >SECTION3
- print " request = task->request;" >SECTION3
- print " yy_init = 1;" >SECTION3
- print " yyin = task->input.file;" >SECTION3
- print " yyout = task->output.file;" >SECTION3
- print " BEGIN " step_name ";" >SECTION3
- print " return yylex ();" >SECTION3
- print "}" >SECTION3
- next
-}
-
-# Remove block C comments in section 1, except the very first. It is
-# assumed that, when a /* comment starts in column 1, there is no code
-# following the closing */ on its line. Also, remove all white lines.
-
-/^\/\*/ && section == 1 {
- while (!match ($0, /\*\//)) {
- if (!comment_done) {
- print
- }
- getline
- }
- if (!comment_done) {
- print
- }
- comment_done = 1
- next
-}
-
-/^[ ]*$/ && section == 1 {
- next
-}
-
-# A %% in column 1 signals the beginning of lex rules.
-
-/^%%/ && section == 1 {
- print "%x " step_name >SECTION1
- section = 2
- print "" >SECTION2
- print "<" step_name ">{" >SECTION2
- next
-}
-
-# A %{ comment in column 1 signals the start of a C code section ended
-# by a %} line.
-
-/^%\{/ {
- c_code = 1
- print "" >SECTION1
- print >SECTION1
- next
-}
-
-/^%\}/ {
- print >SECTION1
- print "" >SECTION1
- c_code = 0
- next
-}
-
-c_code {
- print >SECTION1
- next
-}
-
-# Section 1 declarations are studied and copied, once each.
-# Conflicting declaractions are reported at beginning of output.
-
-/^[^ ]/ && section == 1 {
- if ($1 in rules) {
- if ($0 != rules[$1]) {
- print "** Conflicting definition: " $0
- }
- }
- else {
- rules[$1] = $0
- print >SECTION1
- }
- next
-}
-
-# In section 2, a %% in column 1 starts section 3, which contains pure
-# C code, which is copied verbatim.
-
-/^%%/ && section == 2 {
- print "}" >SECTION2
- section = 3
- next
-}
-
-section == 2 {
- print >SECTION2
- next
-}
-
-section == 3 {
- print >SECTION3
- next
-}
-
-# At end, all three temporary files are reread and output, followed by
-# the generated interfaces: one routine for each step name.
-
-END {
- if (section == 2)
- print "}" >SECTION2
-
- close (SECTION1)
- close (SECTION2)
- close (SECTION3)
-
- while (getline <SECTION1)
- print
- close (SECTION1)
-
- while (getline <SECTION2)
- print
- close (SECTION2)
-
- while (getline <SECTION3)
- print
- close (SECTION3)
-}
--- /dev/null
+# Conversion of files between different charsets and surfaces.
+# Copyright © 1990, 1993, 1994, 1995, 1997, 1999 Free Software Foundation, Inc.
+# François Pinard <pinard@iro.umontreal.ca>, 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 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 Python script merges several Flex sources intended for `recode'.
+# It requires Flex 2.5 or later.
+
+import re, string, sys
+
+# Initial comments.
+section0 = ["/* This file is generated automatically by `mergelex.py'. */\n"]
+# Flex and C declarations.
+section1 = ["\n"
+ "%option noyywrap\n"
+ "%{\n"
+ '#include "common.h"\n'
+ "static RECODE_CONST_REQUEST request;\n"
+ "static RECODE_TASK task;\n"
+ "%}\n"]
+# Flex rules.
+section2 = ["%%\n"
+ "<<EOF>> { return 1; }\n"]
+# Rest of C code.
+section3 = ["%%\n"]
+
+comment_done = 0
+within_C_code = 0
+definitions = {}
+section = 3
+
+while 1:
+ line = sys.stdin.readline()
+ if not line:
+ break
+
+ # A `/* Step name: NAME. */' line indicates the start of a new file.
+ # Generate an interface routine. The step name is saved for broketed
+ # prefixes in rules.
+
+ match = re.match(r'/\* Step name: (.*)\. \*/', line)
+ if match:
+ section = 1
+ step_name = match.group(1)
+ section3.append(
+ '\n'
+ 'static bool\n'
+ 'transform_%s'
+ ' (RECODE_CONST_STEP step, RECODE_TASK task_argument)\n'
+ '{\n'
+ ' task = task_argument;\n'
+ ' request = task->request;\n'
+ ' yy_init = 1;\n'
+ ' yyin = task->input.file;\n'
+ ' yyout = task->output.file;\n'
+ ' BEGIN %s;\n'
+ ' return yylex ();\n'
+ '}\n'
+ % (step_name, step_name))
+ continue
+
+ # In section 1, any %% in column 1 signals the beginning of lex rules.
+ # Remove all white lines.
+
+ if section == 1:
+ if re.match('^[ \t]*$', line):
+ continue
+ if line[:2] == '%%':
+ section1.append('%%x %s\n' % step_name)
+ section = 2
+ section2.append('\n'
+ '<%s>{\n'
+ % step_name)
+ continue
+
+ # A %{ comment in column 1 signals the start of a C code section ended
+ # by a %} line.
+
+ if line[:2] == '%{':
+ within_C_code = 1
+ section1.append('\n')
+ section1.append(line)
+ continue
+ if line[:2] == '%}':
+ section1.append(line)
+ section1.append('\n')
+ within_C_code = 0
+ continue
+ if within_C_code:
+ section1.append(line)
+ continue
+
+ # Section 1 declarations are studied and copied, once each.
+ # Conflicting declaractions are reported at beginning of output.
+
+ if section == 1 and line[0] not in (' ', '\t', '\n'):
+ key, rest = string.split(line, None, 1)
+ if definitions.has_key(key):
+ if definitions[key] != line:
+ sys.stderr.write("** Conflicting definition: %s" % line)
+ else:
+ definitions[key] = line
+ section1.append(line)
+ continue
+
+ # In section 2, a %% in column 1 starts section 3.
+
+ if section == 2:
+ if line[:2] == '%%':
+ section2.append('}\n')
+ section = 3
+ else:
+ section2.append(line)
+ continue
+
+ # Section 3 contains C code, all copied verbatim.
+
+ if section == 3:
+ section3.append(line)
+ continue
+
+# At end, output all temporary buffers. This produces the generated
+# interfaces: one routine for each step name.
+
+if section == 2:
+ section2.append('}\n')
+
+sys.stdout.writelines(section0)
+sys.stdout.writelines(section1)
+sys.stdout.writelines(section2)
+sys.stdout.writelines(section3)
#endif
-/*----------------------------------------------------------------------------.
-| Associate an explode format DATA structure with charset NAME_COMBINED. If |
-| NAME_EXPLODED is not NULL, it should be the name of a 8-bit based charset. |
-| A NULL value for NAME_EXPLODED implies UCS-2. |
-`----------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------.
+| Associate an explode format DATA structure with charset NAME_COMBINED, an |
+| 8-bit charset. A NULL value for NAME_EXPLODED implies UCS-2. Otherwise, |
+| NAME_EXPLODED should be the name of a 8-bit based charset. |
+`--------------------------------------------------------------------------*/
bool
declare_explode_data (RECODE_OUTER outer, const unsigned short *data,
bool
recode_delete_outer (RECODE_OUTER outer)
{
+ /* FIXME: Pawel Krawczyk reports that calling new_outer ... delete_outer
+ 20000 times in a program has the effect of consuming all virtual memory.
+ So there might be memory leaks should to track down and resolve. */
while (outer->number_of_charsets > 0)
{
RECODE_CHARSET charset = outer->charset_list;
/* Characters from 33 to 60 inclusive and from 62 to 126 inclusive do not
need be quoted. */
-static const char safe_char_usual[128] =
+static const char safe_char_usual[1 << 7] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0- 15 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 16- 31 */
};
/* In a Bitnet environment, also quote: ! " # $ @ [ \ ] ^ ` { | } ~ */
-static const char safe_char_bitnet[128] =
+static const char safe_char_bitnet[1 << 7] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0- 15 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 16- 31 */
transform_data_quoted_printable (RECODE_CONST_STEP step,
RECODE_TASK task)
{
- const char *safe_char;
- unsigned available;
- int character;
+ const char *safe_char = bitnet_flag ? safe_char_bitnet : safe_char_usual;
+ unsigned available = MIME_LINE_LENGTH;
+ int character = get_byte (task);
int next_character;
- safe_char = bitnet_flag ? safe_char_bitnet : safe_char_usual;
+ /* Proper maximum filling of quoted-printable lines, avoiding a line buffer
+ nor much look-ahead, is a bit trickier than I initially expected. */
- /* Proper maximum filling of quoted-printable lines is a bit trickier than
- I initially expected, avoiding a line buffer nor much look-ahead. */
-
- available = MIME_LINE_LENGTH;
- character = get_byte (task);
while (character != EOF)
- if (character < 128 && safe_char[character])
+ if (!(character & (1 << 7)) && safe_char[character])
/* Case of a safe character. */
}
static bool
-transform_quoted_printable_byte (RECODE_CONST_STEP step,
+transform_quoted_printable_data (RECODE_CONST_STEP step,
RECODE_TASK task)
{
- const char *safe_char;
- bool status;
- unsigned counter;
- int character;
- unsigned last_length;
- enum {SPACE_TYPE, SAFE_TYPE, QUOTED_TYPE} last_type;
+ const char *safe_char = bitnet_flag ? safe_char_bitnet : safe_char_usual;
+ unsigned counter = 0;
+ int character = get_byte (task);
+ char buffer[MIME_LINE_LENGTH + 1];
+ char *cursor;
unsigned value;
- /* FIXME: reversibility validation is not really implemented. To be
- completed at some later time. */
-
- safe_char = bitnet_flag ? safe_char_bitnet : safe_char_usual;
-
- status = true;
- counter = 0;
- character = get_byte (task);
- last_length = MIME_LINE_LENGTH;
- last_type = SAFE_TYPE;
while (character != EOF)
- {
- switch (character)
- {
- case '\n':
-
- /* Process hard line break. */
-
- last_length = counter;
- counter = 0;
- if (last_type == SPACE_TYPE)
- status = false;
- put_byte ('\n', task);
- character = get_byte (task);
- last_type = SAFE_TYPE;
- break;
-
- case ' ':
- case '\t':
-
- /* Process white space. */
-
- counter++;
-#if 0
- if (available == 0)
- status = false;
-#endif
- put_byte (character, task);
+ switch (character)
+ {
+ case '\n':
+ /* Process hard line break. */
+
+ if (counter > MIME_LINE_LENGTH)
+ RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+ counter = 0;
+ put_byte ('\n', task);
+ character = get_byte (task);
+ break;
+
+ case ' ':
+ case '\t':
+ /* Process white space. */
+
+ cursor = buffer;
+ while (character == ' ' || character == '\t')
+ {
+ if (cursor == buffer + MIME_LINE_LENGTH)
+ {
+ RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+ for (cursor = buffer;
+ cursor < buffer + MIME_LINE_LENGTH;
+ cursor++)
+ put_byte (*cursor, task);
+ }
+ counter++;
+ *cursor++ = character;
character = get_byte (task);
- last_type = SPACE_TYPE;
+ }
+ if (character == '\n' || character == EOF)
+ {
+ RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+ counter = 0;
break;
+ }
+ *cursor = '\0';
+ for (cursor = buffer; *cursor; cursor++)
+ put_byte (*cursor, task);
+ break;
+
+ case '=':
+ counter++;
+ character = get_byte (task);
+ if (character == ' ' || character == '\t' || character == '\n')
+ {
+ /* Process soft line break. */
+
+ if (character == ' ' || character == '\t')
+ {
+ RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+ while (character == ' ' || character == '\t')
+ {
+ counter++;
+ character = get_byte (task);
+ }
+ }
+ if (character != '\n')
+ {
+ RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+ break;
+ }
+ if (counter > MIME_LINE_LENGTH)
+ RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
+ counter = 0;
+ character = get_byte (task);
+ break;
+ }
- case '=':
- character = get_byte (task);
- if (character == ' ' || character == '\t' || character == '\n')
- {
- /* Process soft line break. */
-
- while (character == ' ' || character == '\t')
- character = get_byte (task);
- if (character != '\n')
- {
- status = false;
- break;
- }
- counter = 0;
- character = get_byte (task);
- break;
- }
-
- /* Process quoted value. */
-
- if (character >= '0' && character <= '9')
- value = (character - '0') << 4;
- else if (character >= 'a' && character <= 'f')
- value = (character - 'a' + 10) << 4;
- else if (character >= 'A' && character <= 'F')
- value = (character - 'A' + 10) << 4;
- else
- {
- counter++;
- status = false;
- break;
- }
- character = get_byte (task);
- if (character >= '0' && character <= '9')
- value |= character - '0';
- else if (character >= 'a' && character <= 'f')
- value |= character - 'a' + 10;
- else if (character >= 'A' && character <= 'F')
- value |= character - 'A' + 10;
- else
- {
- counter += 2;
- status = false;
- break;
- }
- counter += 3;
- put_byte (value, task);
- character = get_byte (task);
- last_type = QUOTED_TYPE;
- break;
+ /* Process quoted value. */
- default:
-
- /* Process safe character. */
+ counter++;
+ if (character >= '0' && character <= '9')
+ value = (character - '0') << 4;
+ else if (character >= 'a' && character <= 'f')
+ value = (character - 'a' + 10) << 4;
+ else if (character >= 'A' && character <= 'F')
+ value = (character - 'A' + 10) << 4;
+ else
+ {
+ RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+ break;
+ }
+ character = get_byte (task);
+ counter++;
+ if (character >= '0' && character <= '9')
+ value |= character - '0';
+ else if (character >= 'a' && character <= 'f')
+ value |= character - 'a' + 10;
+ else if (character >= 'A' && character <= 'F')
+ value |= character - 'A' + 10;
+ else
+ {
+ RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+ break;
+ }
+ if (!(value & (1 << 7)) && safe_char[value])
+ RETURN_IF_NOGO (RECODE_NOT_CANONICAL, step, task);
- counter++;
- put_byte (character, task);
- character = get_byte (task);
- last_type = SAFE_TYPE;
- }
+ put_byte (value, task);
+ character = get_byte (task);
+ break;
- /* Truncate longer lines, ensuring it is white space. */
+ default:
+ /* Process safe character. */
- if (counter >= MIME_LINE_LENGTH)
- while (character != '\n' && character != EOF)
- {
- if (character != ' ' && character != '\t')
- status = false;
- character = get_byte (task);
- }
- }
+ counter++;
+ if (character & (1 << 7) || !safe_char[character])
+ RETURN_IF_NOGO (RECODE_INVALID_INPUT, step, task);
+ put_byte (character, task);
+ character = get_byte (task);
+ }
if (counter != 0)
/* Last line is not terminated. */
NULL, transform_data_quoted_printable)
&& declare_single (outer, "Quoted-Printable", "data",
outer->quality_variable_to_variable,
- NULL, transform_quoted_printable_byte)
+ NULL, transform_quoted_printable_data)
&& declare_alias (outer, "quote-printable", "Quoted-Printable")
&& declare_alias (outer, "QP", "Quoted-Printable");
}
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.010.
-.TH RECODE 1 "May 1999" "Free recode 3.4r" "FSF"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.019.
+.TH RECODE "1" "December 1999" "Free recode 3.5a" FSF
.SH NAME
-recode \- manual page for recode 3.4r
+recode \- manual page for recode 3.5a
.SH SYNOPSIS
-.B recode
-[\fIOPTION\fR]... [ [\fICHARSET\fR]\fI | REQUEST \fR[\fIFILE\fR]... ]
+.B lt-recode
+[\fIOPTION\fR]... [ [\fICHARSET\fR] \fI| REQUEST \fR[\fIFILE\fR]... ]
.SH DESCRIPTION
Free `recode' converts files between various character sets and surfaces.
.PP
\fB\-x\fR, \fB\-\-ignore\fR=\fICHARSET\fR
ignore CHARSET while choosing a recoding path
.PP
-Option -l with no FORMAT nor CHARSET list available charsets and surfaces.
+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 `Latin-1'.
+Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `ISO-8859-1'.
LN is some language, it may be `c', `perl' or `po'; `c' is the default.
.PP
REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...
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 -i and -p are given, presume -p if no FILE, else -i.
+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 <pinard@iro.umontreal.ca>.
.SH "REPORTING BUGS"
Report bugs to <recode-bugs@iro.umontreal.ca>.
+.SH COPYRIGHT
+Copyright \(co 1990, 92, 93, 94, 96, 97, 99 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
.B info recode
.PP
should give you access to the complete manual.
-.SH COPYRIGHT
-Copyright \(co 1990, 92, 93, 94, 96, 97, 99 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 AUTHOR
-Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.
#else
recode_error (outer, format, va_alist)
RECODE_OUTER outer;
- char *format;
+ const char *format;
va_dcl
#endif
{
#else
recode_perror (outer, format, va_alist)
RECODE_OUTER outer;
- char *format;
+ const char *format;
va_dcl
#endif
{
\f
/* Function prototypes. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/*--------------------------------.
| Recode library at OUTER level. |
`--------------------------------*/
bool recode_perform_task PARAMS ((RECODE_TASK));
/* FILE *recode_filter_open PARAMS ((RECODE_TASK, FILE *)); */
/* bool recode_filter_close PARAMS ((RECODE_TASK)); */
+
+#ifdef __cplusplus
+}
+#endif
const char *string; /* corresponding string */
};
\f
+/* Per module declarations. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* recode.c. */
#define ALLOC_SIZE(Variable, Size, Type) \
RECODE_CONST_OPTION_LIST,
RECODE_CONST_OPTION_LIST));
bool transform_ucs2_to_byte PARAMS ((RECODE_CONST_STEP, RECODE_TASK));
-\f
+
/* charname.c and fr-charname.c. */
const char *ucs2_to_charname PARAMS ((int));
bool get_ucs4 PARAMS ((unsigned *, RECODE_CONST_STEP, RECODE_TASK));
bool put_ucs2 PARAMS ((unsigned, RECODE_TASK));
bool put_ucs4 PARAMS ((unsigned, RECODE_TASK));
+
+#ifdef __cplusplus
+}
+#endif
\f
/* Global macros specifically for `recode'. */
-/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.pl'. */
+/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.py'. */
/* Conversion of files between different charsets and surfaces.
Copyright © 1999 Free Software Foundation, Inc.
-/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.pl'. */
+/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.py'. */
/* Conversion of files between different charsets and surfaces.
Copyright © 1999 Free Software Foundation, Inc.
-/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.pl'. */
+/* DO NOT MODIFY THIS FILE! It was generated by `recode/doc/tables.py'. */
/* Conversion of files between different charsets and surfaces.
Copyright © 1999 Free Software Foundation, Inc.
--- /dev/null
+/* Vietnamese charset processing.
+ Copyright © 1999 Progiciels Bourbeau-Pinard inc.
+ François Pinard <pinard@iro.umontreal.ca>, 1999. */
+
+#include "common.h"
+
+static const recode_ucs2 tcvn_pool[256] =
+ {
+ /* 0 */ 0x0000, 0x00DA, 0x1EE4, 0x0003, 0x1EEA, 0x1EEC, 0x1EEE, 0x0007,
+ /* 8 */ 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
+ /* 16 */ 0x0010, 0x1EE8, 0x1EF0, 0x1EF2, 0x1EF6, 0x1EF8, 0x00DD, 0x1EF4,
+ /* 24 */ 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F,
+ /* 32 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
+ /* 40 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
+ /* 48 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+ /* 56 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
+ /* 64 */ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ /* 72 */ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
+ /* 80 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ /* 88 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
+ /* 96 */ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ /* 104 */ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
+ /* 112 */ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ /* 120 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
+ /* 128 */ 0x00C0, 0x1EA2, 0x00C3, 0x00C1, 0x1EA0, 0x1EB6, 0x1EAC, 0x00C8,
+ /* 136 */ 0x1EBA, 0x1EBC, 0x00C9, 0x1EB8, 0x1EC6, 0x00CC, 0x1EC8, 0x0128,
+ /* 144 */ 0x00CD, 0x1ECA, 0x00D2, 0x1ECE, 0x00D5, 0x00D3, 0x1ECC, 0x1ED8,
+ /* 152 */ 0x1EDC, 0x1EDE, 0x1EE0, 0x1EDA, 0x1EE2, 0x00D9, 0x1EE6, 0x0168,
+ /* 160 */ 0xFFFF, 0x0102, 0x00C2, 0x00CA, 0x00D4, 0x01A0, 0x01AF, 0x0110,
+ /* 168 */ 0x0103, 0x00E2, 0x00EA, 0x00F4, 0x01A1, 0x01B0, 0x0111, 0x1EB0,
+ /* 176 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00E0, 0x1EA3, 0x00E3,
+ /* 184 */ 0x00E1, 0x1EA1, 0x1EB2, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EAF, 0x1EB4,
+ /* 192 */ 0x1EAE, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EA4, 0x1EC0, 0x1EB7, 0x1EA7,
+ /* 200 */ 0x1EA9, 0x1EAB, 0x1EA5, 0x1EAD, 0x00E8, 0x1EC2, 0x1EBB, 0x1EBD,
+ /* 208 */ 0x00E9, 0x1EB9, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EBF, 0x1EC7, 0x00EC,
+ /* 216 */ 0x1EC9, 0x1EC4, 0x1EBE, 0x1ED2, 0x0129, 0x00ED, 0x1ECB, 0x00F2,
+ /* 224 */ 0x1ED4, 0x1ECF, 0x00F5, 0x00F3, 0x1ECD, 0x1ED3, 0x1ED5, 0x1ED7,
+ /* 232 */ 0x1ED1, 0x1ED9, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EDB, 0x1EE3, 0x00F9,
+ /* 240 */ 0x1ED6, 0x1EE7, 0x0169, 0x00FA, 0x1EE5, 0x1EEB, 0x1EED, 0x1EEF,
+ /* 248 */ 0x1EE9, 0x1EF1, 0x1EF3, 0x1EF7, 0x1EF9, 0x00FD, 0x1EF5, 0x1ED0,
+ };
+
+static struct strip_data tcvn_strip_data =
+ {
+ tcvn_pool,
+ {
+ 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88,
+ 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184,
+ 192, 200, 208, 216, 224, 232, 240, 248
+ }
+ };
+
+static const recode_ucs2 viscii_pool[256] =
+ {
+ /* 0 */ 0x0000, 0x0001, 0x1EB2, 0x0003, 0x0004, 0x1EB4, 0x1EAA, 0x0007,
+ /* 8 */ 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
+ /* 16 */ 0x0010, 0x0011, 0x0012, 0x0013, 0x1EF6, 0x0015, 0x0016, 0x0017,
+ /* 24 */ 0x0018, 0x1EF8, 0x001A, 0x001B, 0x001C, 0x001D, 0x1EF4, 0x001F,
+ /* 32 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
+ /* 40 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
+ /* 48 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+ /* 56 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
+ /* 64 */ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ /* 72 */ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
+ /* 80 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ /* 88 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
+ /* 96 */ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ /* 104 */ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
+ /* 112 */ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ /* 120 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
+ /* 128 */ 0x1EA0, 0x1EAE, 0x1EB0, 0x1EB6, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAC,
+ /* 136 */ 0x1EBC, 0x1EB8, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1ED0,
+ /* 144 */ 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EE2, 0x1EDA, 0x1EDC, 0x1EDE,
+ /* 152 */ 0x1ECA, 0x1ECE, 0x1ECC, 0x1EC8, 0x1EE6, 0x0168, 0x1EE4, 0x1EF2,
+ /* 160 */ 0x00D5, 0x1EAF, 0x1EB1, 0x1EB7, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAD,
+ /* 168 */ 0x1EBD, 0x1EB9, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1ED1,
+ /* 176 */ 0x1ED3, 0x1ED5, 0x1ED7, 0x1EE0, 0x01A0, 0x1ED9, 0x1EDD, 0x1EDF,
+ /* 184 */ 0x1ECB, 0x1EF0, 0x1EE8, 0x1EEA, 0x1EEC, 0x01A1, 0x1EDB, 0x01AF,
+ /* 192 */ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x1EA2, 0x0102, 0x1EB3, 0x1EB5,
+ /* 200 */ 0x00C8, 0x00C9, 0x00CA, 0x1EBA, 0x00CC, 0x00CD, 0x0128, 0x1EF3,
+ /* 208 */ 0x0110, 0x1EE9, 0x00D2, 0x00D3, 0x00D4, 0x1EA1, 0x1EF7, 0x1EEB,
+ /* 216 */ 0x1EED, 0x00D9, 0x00DA, 0x1EF9, 0x1EF5, 0x00DD, 0x1EE1, 0x01B0,
+ /* 224 */ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x1EA3, 0x0103, 0x1EEF, 0x1EAB,
+ /* 232 */ 0x00E8, 0x00E9, 0x00EA, 0x1EBB, 0x00EC, 0x00ED, 0x0129, 0x1EC9,
+ /* 240 */ 0x0111, 0x1EF1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x1ECF, 0x1ECD,
+ /* 248 */ 0x1EE5, 0x00F9, 0x00FA, 0x0169, 0x1EE7, 0x00FD, 0x1EE3, 0x1EEE,
+ };
+
+static struct strip_data viscii_strip_data =
+ {
+ viscii_pool,
+ {
+ 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88,
+ 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184,
+ 192, 200, 208, 216, 224, 232, 240, 248
+ }
+ };
+
+static const recode_ucs2 vps_pool[256] =
+ {
+ /* 0 */ 0x0000, 0x0001, 0x1EA0, 0x1EAC, 0x1EB6, 0x1EB8, 0x1EC6, 0x0007,
+ /* 8 */ 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
+ /* 16 */ 0x1ECA, 0x1ECC, 0x1ED8, 0x1EE2, 0x1EE4, 0x1EF0, 0x0016, 0x0017,
+ /* 24 */ 0x0018, 0x1EF4, 0x001A, 0x001B, 0x1EAA, 0x1EEE, 0x001E, 0x001F,
+ /* 32 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
+ /* 40 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
+ /* 48 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+ /* 56 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
+ /* 64 */ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+ /* 72 */ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
+ /* 80 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+ /* 88 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
+ /* 96 */ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+ /* 104 */ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
+ /* 112 */ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+ /* 120 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
+ /* 128 */ 0x00C0, 0x1EA2, 0x00C3, 0x1EA4, 0x1EA6, 0x1EA8, 0x1ECD, 0x1ED7,
+ /* 136 */ 0x0102, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC7, 0x1EAE, 0x1EB0, 0x1EB2,
+ /* 144 */ 0x1EBE, 0xFFFF, 0xFFFF, 0x1EC0, 0x1EC2, 0x1EC4, 0x1ED0, 0x1ED2,
+ /* 152 */ 0x1ED4, 0xFFFF, 0x00FD, 0x1EF7, 0x1EF5, 0x1EDA, 0x1EDC, 0x1EDE,
+ /* 160 */ 0xFFFF, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EE0, 0x1EDB,
+ /* 168 */ 0x00D9, 0x1EDD, 0x1EDF, 0x1EE1, 0x0168, 0x1EE8, 0x1EE3, 0x1EEA,
+ /* 176 */ 0x1ED5, 0x1EEC, 0x1EF2, 0x1EF8, 0x00CD, 0x00CC, 0x1ED9, 0x1EC8,
+ /* 184 */ 0x0128, 0x00D3, 0x1EED, 0x1EEF, 0x00D2, 0x1ECE, 0x00D5, 0x1EF1,
+ /* 192 */ 0x1EA7, 0x00C1, 0x00C2, 0x1EA5, 0x1EA9, 0x1EAB, 0x1EAD, 0x0111,
+ /* 200 */ 0x1EBB, 0x00C9, 0x00CA, 0x1EB9, 0x1EC9, 0x1EC5, 0x1ECB, 0x1EF9,
+ /* 208 */ 0x01AF, 0x1EE6, 0x1ED3, 0x1ED1, 0x00D4, 0x1ECF, 0x01A1, 0x00C8,
+ /* 216 */ 0x1EEB, 0x1EE9, 0x00DA, 0x0169, 0x01B0, 0x00DD, 0x1EBA, 0xFFFF,
+ /* 224 */ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x1EA3, 0x1EA1, 0x0103, 0xFFFF,
+ /* 232 */ 0x00E8, 0x00E9, 0x00EA, 0x1EBD, 0x00EC, 0x00ED, 0xFFFF, 0x0129,
+ /* 240 */ 0x1EB4, 0x0110, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0xFFFF, 0x01A0,
+ /* 248 */ 0x1EE5, 0x00F9, 0x00FA, 0x1EE7, 0xFFFF, 0x1EF6, 0x1EBC, 0x1EF3,
+ };
+
+static struct strip_data vps_strip_data =
+ {
+ vps_pool,
+ {
+ 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88,
+ 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184,
+ 192, 200, 208, 216, 224, 232, 240, 248
+ }
+ };
+
+static const unsigned short viscii_viqr_data[] =
+ {
+ 2, 'A', '(', '?', DONE,
+ 5, 'A', '(', '~', DONE,
+ 6, 'A', '^', '~', DONE,
+ 20, 'Y', '?', DONE,
+ 25, 'Y', '~', DONE,
+ 30, 'Y', '.', DONE,
+ 128, 'A', '.', DONE,
+ 129, 'A', '(', '\'', DONE,
+ 130, 'A', '(', '`', DONE,
+ 131, 'A', '(', '.', DONE,
+ 132, 'A', '^', '\'', DONE,
+ 133, 'A', '^', '`', DONE,
+ 134, 'A', '^', '?', DONE,
+ 135, 'A', '^', '.', DONE,
+ 136, 'E', '~', DONE,
+ 137, 'E', '.', DONE,
+ 138, 'E', '^', '\'', DONE,
+ 139, 'E', '^', '`', DONE,
+ 140, 'E', '^', '?', DONE,
+ 141, 'E', '^', '~', DONE,
+ 142, 'E', '^', '.', DONE,
+ 143, 'O', '^', '\'', DONE,
+ 144, 'O', '^', '`', DONE,
+ 145, 'O', '^', '?', DONE,
+ 146, 'O', '^', '~', DONE,
+ 147, 'O', '^', '.', DONE,
+ 148, 'O', '+', '.', DONE,
+ 149, 'O', '+', '\'', DONE,
+ 150, 'O', '+', '`', DONE,
+ 151, 'O', '+', '?', DONE,
+ 152, 'I', '.', DONE,
+ 153, 'O', '?', DONE,
+ 154, 'O', '.', DONE,
+ 155, 'I', '?', DONE,
+ 156, 'U', '?', DONE,
+ 157, 'U', '~', DONE,
+ 158, 'U', '.', DONE,
+ 159, 'Y', '`', DONE,
+ 160, 'O', '~', DONE,
+ 161, 'a', '(', '\'', DONE,
+ 162, 'a', '(', '`', DONE,
+ 163, 'a', '(', '.', DONE,
+ 164, 'a', '^', '\'', DONE,
+ 165, 'a', '^', '`', DONE,
+ 166, 'a', '^', '?', DONE,
+ 167, 'a', '^', '.', DONE,
+ 168, 'e', '~', DONE,
+ 169, 'e', '.', DONE,
+ 170, 'e', '^', '\'', DONE,
+ 171, 'e', '^', '`', DONE,
+ 172, 'e', '^', '?', DONE,
+ 173, 'e', '^', '~', DONE,
+ 174, 'e', '^', '.', DONE,
+ 175, 'o', '^', '\'', DONE,
+ 176, 'o', '^', '`', DONE,
+ 177, 'o', '^', '?', DONE,
+ 178, 'o', '^', '~', DONE,
+ 179, 'O', '+', '~', DONE,
+ 180, 'O', '+', DONE,
+ 181, 'o', '^', '.', DONE,
+ 182, 'o', '+', '`', DONE,
+ 183, 'o', '+', '?', DONE,
+ 184, 'i', '.', DONE,
+ 185, 'U', '+', '.', DONE,
+ 186, 'U', '+', '\'', DONE,
+ 187, 'U', '+', '`', DONE,
+ 188, 'U', '+', '?', DONE,
+ 189, 'o', '+', DONE,
+ 190, 'o', '+', '\'', DONE,
+ 191, 'U', '+', DONE,
+ 192, 'A', '`', DONE,
+ 193, 'A', '\'', DONE,
+ 194, 'A', '^', DONE,
+ 195, 'A', '~', DONE,
+ 196, 'A', '?', DONE,
+ 197, 'A', '(', DONE,
+ 198, 'a', '(', '?', DONE,
+ 199, 'a', '(', '~', DONE,
+ 200, 'E', '`', DONE,
+ 201, 'E', '\'', DONE,
+ 202, 'E', '^', DONE,
+ 203, 'E', '?', DONE,
+ 204, 'I', '`', DONE,
+ 205, 'I', '\'', DONE,
+ 206, 'I', '~', DONE,
+ 207, 'y', '`', DONE,
+ 208, 'D', 'D', ELSE, 'D', 'd', ELSE, 'd', 'D', DONE,
+ 209, 'u', '+', '\'', DONE,
+ 210, 'O', '`', DONE,
+ 211, 'O', '\'', DONE,
+ 212, 'O', '^', DONE,
+ 213, 'a', '.', DONE,
+ 214, 'y', '?', DONE,
+ 215, 'u', '+', '`', DONE,
+ 216, 'u', '+', '?', DONE,
+ 217, 'U', '`', DONE,
+ 218, 'U', '\'', DONE,
+ 219, 'y', '~', DONE,
+ 220, 'y', '.', DONE,
+ 221, 'Y', '\'', DONE,
+ 222, 'o', '+', '~', DONE,
+ 223, 'u', '+', DONE,
+ 224, 'a', '`', DONE,
+ 225, 'a', '\'', DONE,
+ 226, 'a', '^', DONE,
+ 227, 'a', '~', DONE,
+ 228, 'a', '?', DONE,
+ 229, 'a', '(', DONE,
+ 230, 'u', '+', '~', DONE,
+ 231, 'a', '^', '~', DONE,
+ 232, 'e', '`', DONE,
+ 233, 'e', '\'', DONE,
+ 234, 'e', '^', DONE,
+ 235, 'e', '?', DONE,
+ 236, 'i', '`', DONE,
+ 237, 'i', '\'', DONE,
+ 238, 'i', '~', DONE,
+ 239, 'i', '?', DONE,
+ 240, 'd', 'd', DONE,
+ 241, 'u', '+', '.', DONE,
+ 242, 'o', '`', DONE,
+ 243, 'o', '\'', DONE,
+ 244, 'o', '^', DONE,
+ 245, 'o', '~', DONE,
+ 246, 'o', '?', DONE,
+ 247, 'o', '.', DONE,
+ 248, 'u', '.', DONE,
+ 249, 'u', '`', DONE,
+ 250, 'u', '\'', DONE,
+ 251, 'u', '~', DONE,
+ 252, 'u', '?', DONE,
+ 253, 'y', '\'', DONE,
+ 254, 'o', '+', '.', DONE,
+ 255, 'U', '+', '~', DONE,
+ };
+
+static const unsigned short viscii_vni_data[] =
+ {
+ 2, 'A', 'Ú', DONE,
+ 5, 'A', 'Ü', DONE,
+ 6, 'A', 'Ã', DONE,
+ 20, 'Y', 'Û', DONE,
+ 25, 'Y', 'Õ', DONE,
+ 30, 'Î', DONE,
+ 128, 'A', 'Ï', DONE,
+ 129, 'A', 'É', DONE,
+ 130, 'A', 'É', DONE,
+ 131, 'A', 'Ë', DONE,
+ 132, 'A', 'Á', DONE,
+ 133, 'A', 'À', DONE,
+ 134, 'A', 'Å', DONE,
+ 135, 'A', 'Ä', DONE,
+ 136, 'E', 'Õ', DONE,
+ 137, 'E', 'Ï', DONE,
+ 138, 'E', 'Á', DONE,
+ 139, 'E', 'À', DONE,
+ 140, 'E', 'Å', DONE,
+ 141, 'E', 'Ã', DONE,
+ 142, 'E', 'Ä', DONE,
+ 143, 'O', 'Á', DONE,
+ 144, 'O', 'À', DONE,
+ 145, 'O', 'Å', DONE,
+ 146, 'O', 'Ã', DONE,
+ 147, 'O', 'Ä', DONE,
+ 148, 'Ô', 'Ï', DONE,
+ 149, 'Ô', 'Ù', DONE,
+ 150, 'Ô', 'Ø', DONE,
+ 151, 'Ô', 'Û', DONE,
+ 152, 'Ò', DONE,
+ 153, 'O', 'Û', DONE,
+ 154, 'O', 'Ï', DONE,
+ 155, 'Æ', DONE,
+ 156, 'U', 'Û', DONE,
+ 157, 'U', 'Õ', DONE,
+ 158, 'U', 'Ï', DONE,
+ 159, 'Y', 'Ø', DONE,
+ 160, 'O', 'Õ', DONE,
+ 161, 'a', 'é', DONE,
+ 162, 'a', 'è', DONE,
+ 163, 'a', 'ë', DONE,
+ 164, 'a', 'á', DONE,
+ 165, 'a', 'à', DONE,
+ 166, 'a', 'å', DONE,
+ 167, 'a', 'ä', DONE,
+ 168, 'e', 'õ', DONE,
+ 169, 'e', 'ï', DONE,
+ 170, 'e', 'á', DONE,
+ 171, 'e', 'à', DONE,
+ 172, 'e', 'å', DONE,
+ 173, 'e', 'ã', DONE,
+ 174, 'e', 'ä', DONE,
+ 175, 'o', 'á', DONE,
+ 176, 'o', 'à', DONE,
+ 177, 'o', 'å', DONE,
+ 178, 'o', 'ã', DONE,
+ 179, 'Ô', 'Õ', DONE,
+ 180, 'Ô', DONE,
+ 181, 'o', 'ä', DONE,
+ 182, 'ô', 'ø', DONE,
+ 183, 'ô', 'û', DONE,
+ 184, 'ò', DONE,
+ 185, 'Ö', 'Ï', DONE,
+ 186, 'Ö', 'Ù', DONE,
+ 187, 'Ö', 'Ø', DONE,
+ 188, 'Ö', 'Û', DONE,
+ 189, 'ô', DONE,
+ 190, 'ô', 'ù', DONE,
+ 191, 'Ö', DONE,
+ 192, 'A', 'Ø', DONE,
+ 193, 'A', 'Ù', DONE,
+ 194, 'A', 'Â', DONE,
+ 195, 'A', 'Õ', DONE,
+ 196, 'A', 'Û', DONE,
+ 197, 'A', 'Ê', DONE,
+ 198, 'a', 'ú', DONE,
+ 199, 'a', 'ü', DONE,
+ 200, 'E', 'Ø', DONE,
+ 201, 'E', 'Ù', DONE,
+ 202, 'E', 'Â', DONE,
+ 203, 'E', 'Û', DONE,
+ 204, 'Ì', DONE,
+ 205, 'Í', DONE,
+ 206, 'Ó', DONE,
+ 207, 'y', 'ø', DONE,
+ 208, 'Ñ', DONE,
+ 209, 'ö', 'ù', DONE,
+ 210, 'O', 'Ø', DONE,
+ 211, 'O', 'Ù', DONE,
+ 212, 'O', 'Â', DONE,
+ 213, 'a', 'ï', DONE,
+ 214, 'y', 'û', DONE,
+ 215, 'ö', 'ø', DONE,
+ 216, 'ö', 'û', DONE,
+ 217, 'U', 'Ø', DONE,
+ 218, 'U', 'Ù', DONE,
+ 219, 'y', 'õ', DONE,
+ 220, 'î', DONE,
+ 221, 'Y', 'Ù', DONE,
+ 222, 'ô', 'õ', DONE,
+ 223, 'ö', DONE,
+ 224, 'a', 'ø', DONE,
+ 225, 'a', 'ù', DONE,
+ 226, 'a', 'â', DONE,
+ 227, 'a', 'õ', DONE,
+ 228, 'a', 'û', DONE,
+ 229, 'a', 'ê', DONE,
+ 230, 'ö', 'õ', DONE,
+ 231, 'a', 'ã', DONE,
+ 232, 'e', 'ø', DONE,
+ 233, 'e', 'ù', DONE,
+ 234, 'e', 'â', DONE,
+ 235, 'e', 'û', DONE,
+ 236, 'ì', DONE,
+ 237, 'í', DONE,
+ 238, 'ó', DONE,
+ 239, 'æ', DONE,
+ 240, 'ñ', DONE,
+ 241, 'ö', 'ï', DONE,
+ 242, 'o', 'ø', DONE,
+ 243, 'o', 'ù', DONE,
+ 244, 'o', 'â', DONE,
+ 245, 'o', 'õ', DONE,
+ 246, 'o', 'û', DONE,
+ 247, 'o', 'ï', DONE,
+ 248, 'u', 'ï', DONE,
+ 249, 'u', 'ø', DONE,
+ 250, 'u', 'ù', DONE,
+ 251, 'u', 'õ', DONE,
+ 252, 'u', 'û', DONE,
+ 253, 'y', 'ù', DONE,
+ 254, 'ô', 'ï', DONE,
+ 255, 'Ö', 'Õ', DONE,
+ };
+
+bool
+module_viet (RECODE_OUTER outer)
+{
+ if (!declare_strip_data (outer, &tcvn_strip_data, "TCVN"))
+ return false;
+ if (!declare_strip_data (outer, &viscii_strip_data, "VISCII"))
+ return false;
+ if (!declare_strip_data (outer, &vps_strip_data, "VPS"))
+ return false;
+ if (!declare_explode_data (outer, viscii_viqr_data, "VISCII", "VIQR"))
+ return false;
+ if (!declare_explode_data (outer, viscii_vni_data, "VISCII", "VNI"))
+ return false;
+}
-1999-05-31 François Pinard <pinard@iro.umontreal.ca>
+1999-12-19 François Pinard <pinard@iro.umontreal.ca>
- * Makefile.am:
+ * names.m4: Adjusted for vietnamese charsets.
+
+1999-12-15 François Pinard <pinard@iro.umontreal.ca>
+
+ * Makefile.am (clean-local): Get rid of at-check-line, stderr,
+ stdout, input and output.
+
+1999-12-13 François Pinard <pinard@iro.umontreal.ca>
+
+ * bigauto.sh: Protect against locale.
+
+1999-12-11 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
+
+ * atgeneral.m4 (at_usage): Typo.
+\f
+1999-06-01 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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 <pinard@iro.umontreal.ca>
$(PERL) $(srcdir)/bigauto.pl big-s-on.res
clean-local:
- rm -f debug-*.sh big-s-off.res big-s-on.res
+ rm -f at-check-line debug-*.sh stderr stdout
+ rm -f input output big-s-off.res big-s-on.res
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_MOFILES = @ALL_MOFILES@
+ALL_POFILES = @ALL_POFILES@
AS = @AS@
AT_TESTPATH = @AT_TESTPATH@
-AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
INTLDEPS = @INTLDEPS@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
-LD = @LD@
LEX = @LEX@
+LIBOBJS = @LIBOBJS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
+MOFILES = @MOFILES@
MSGFMT = @MSGFMT@
-NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
POFILES = @POFILES@
$(PERL) $(srcdir)/bigauto.pl big-s-on.res
clean-local:
- rm -f debug-*.sh big-s-off.res big-s-on.res
+ rm -f at-check-line debug-*.sh stderr stdout
+ rm -f input output big-s-off.res big-s-on.res
# 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.
AT_CHECK(
[cp transcript expout
-recode bambara/qp..t-bambara/64 < example
+recode ../,bambara/qp..t-bambara/64 < example
], 0, expout)
AT_CHECK(
[cp example expout
-recode t-bambara/64..bambara/qp < transcript
+recode ../,t-bambara/64..bambara/qp < transcript
], 0, expout)
AT_CLEANUP(expout example transcript)
AT_CHECK(
[cp transcript expout
-recode fulfulde/qp..t-fulfulde/64 < example
+recode ../,fulfulde/qp..t-fulfulde/64 < example
], 0, expout)
AT_CHECK(
[cp example expout
-recode t-fulfulde/64..fulfulde/qp < transcript
+recode ../,t-fulfulde/64..fulfulde/qp < transcript
], 0, expout)
AT_CLEANUP(expout example transcript)
AT_CHECK(
[cp transcript expout
-recode lingala/qp..t-lingala/64 < example
+recode ../,lingala/qp..t-lingala/64 < example
], 0, expout)
AT_CHECK(
[cp example expout
-recode t-lingala/64..lingala/qp < transcript
+recode ../,t-lingala/64..lingala/qp < transcript
], 0, expout)
AT_CLEANUP(expout example transcript)
AT_CHECK(
[cp transcript expout
-recode sango/qp..t-sango/64 < example
+recode ../,sango/qp..t-sango/64 < example
], 0, expout)
AT_CHECK(
[cp example expout
-recode t-sango/64..sango/qp < transcript
+recode ../,t-sango/64..sango/qp < transcript
], 0, expout)
AT_CLEANUP(expout example transcript)
AT_CHECK(
[cp transcript expout
-recode wolof/qp..t-wolof/64 < example
+recode ../,wolof/qp..t-wolof/64 < example
], 0, expout)
AT_CHECK(
[cp example expout
-recode t-wolof/64..wolof/qp < transcript
+recode ../,t-wolof/64..wolof/qp < transcript
], 0, expout)
AT_CLEANUP(expout example transcript)
# @configure_input@ -*- shell-script -*-
# Configurable variable values for building test suites.
-# Copyright © 1998 Progiciels Bourbeau-Pinard inc.
+# Copyright © 1998, 1999 Progiciels Bourbeau-Pinard inc.
# François Pinard <pinard@iro.umontreal.ca>, 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 script is part of Autotest. I, François Pinard, the author of
+# Autotest, give unlimited permission to copy, distribute and modify
+# the testing scripts that are the output of that Autotest script.
+# You need not follow the terms of the GNU General Public License when
+# using or distributing such scripts, even though portions of the text
+# of Autotest appear in them. The GNU General Public License (GPL) does
+# govern all other use of the material that constitutes the Autotest.
+#
+# Certain portions of the Autotest source text are designed to be copied
+# (in certain cases, depending on the input) into the output of
+# Autotest. We call these the "data" portions. The rest of the Autotest
+# source text consists of comments plus executable code that decides which
+# of the data portions to output in any given case. We call these
+# comments and executable code the "non-data" portions. Autotest never
+# copies any of the non-data portions into its output.
+#
+# This special exception to the GPL applies to versions of Autotest
+# released by the Free Software Foundation. When you make and
+# distribute a modified version of Autotest, you may extend this special
+# exception to the GPL to apply to your modified version as well, *unless*
+# your modified version has the potential to copy into its output some
+# of the text that was the non-data portion of the version that you started
+# with. (In other words, unless your change moves or copies text from
+# the non-data portions to the data portions.) If your modification has
+# such potential, you must delete any notice of this special exception
+# to the GPL from your modified version.
+
# Snippet (1
# This debugging script has been automatically generated from `make check'.
+# Call it with `--help' to get a quick usage summary.
at_package=@PACKAGE@
at_version=@VERSION@
# Use absolute file notations, as the test might change directories.
at_srcdir=`cd @srcdir@ && pwd`
at_top_srcdir=`cd @top_srcdir@ && pwd`
-export PATH; PATH=`pwd`:`cd @AT_TESTPATH@ && pwd`:$PATH
+if test -n "@AT_TESTPATH@"; then
+ export PATH; PATH=`pwd`:`cd @AT_TESTPATH@ && pwd`:$PATH
+else
+ export PATH; PATH=`pwd`:$PATH
+fi
# Snippet )2
-divert(-1) -*- shell-script -*-
+divert(-1) -*- Autoconf -*-
# `m4' macros used in building test suites.
# Copyright © 1998, 1999 Progiciels Bourbeau-Pinard inc.
# François Pinard <pinard@iro.umontreal.ca>, 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 script is part of Autotest. I, François Pinard, the author of
+# Autotest, give unlimited permission to copy, distribute and modify
+# the testing scripts that are the output of that Autotest script.
+# You need not follow the terms of the GNU General Public License when
+# using or distributing such scripts, even though portions of the text
+# of Autotest appear in them. The GNU General Public License (GPL) does
+# govern all other use of the material that constitutes the Autotest.
+#
+# Certain portions of the Autotest source text are designed to be copied
+# (in certain cases, depending on the input) into the output of
+# Autotest. We call these the "data" portions. The rest of the Autotest
+# source text consists of comments plus executable code that decides which
+# of the data portions to output in any given case. We call these
+# comments and executable code the "non-data" portions. Autotest never
+# copies any of the non-data portions into its output.
+#
+# This special exception to the GPL applies to versions of Autotest
+# released by the Free Software Foundation. When you make and
+# distribute a modified version of Autotest, you may extend this special
+# exception to the GPL to apply to your modified version as well, *unless*
+# your modified version has the potential to copy into its output some
+# of the text that was the non-data portion of the version that you started
+# with. (In other words, unless your change moves or copies text from
+# the non-data portions to the data portions.) If your modification has
+# such potential, you must delete any notice of this special exception
+# to the GPL from your modified version.
+
changequote([, ])
define(AT_DEFINE, defn([define]))
undefine([shift])
undefine([undefine])
+# AT_CASE(SWITCH, VAL1, IF-VAL1, VAL2, IF-VAL2, ..., DEFAULT)
+
+# m4 equivalent of
+# switch (SWITCH)
+# {
+# case VAL1:
+# IF-VAL1;
+# break;
+# case VAL2:
+# IF-VAL2;
+# break;
+# ...
+# default:
+# DEFAULT;
+# break;
+# }.
+# All the values are optional, and the macro is robust to active
+# symbols properly quoted.
+AT_DEFINE(AT_CASE,
+[ifelse([$#], 0, [],
+ [$#], 1, [],
+ [$#], 2, [$2],
+ [$1], [$2], [$3],
+ [AT_CASE([$1], AT_SHIFT(AT_SHIFT(AT_SHIFT($@))))])])
+
+
+# Use of diversions:
+# 0 - overall initialization; for each test group: skipping and cleanups;
+# 1 - for each test group: proper code, to reinsert between cleanups;
+# 2 - overall wrap up: generation of debugging scripts and statistics.
+
+
# AT_LINE
# Return the current file sans directory, a colon, and the current line.
AT_DEFINE(AT_LINE,
[patsubst(__file__, ^.*/\(.*\), \1):__line__])
-# AT_INIT(PROGRAM, RELPATH)
+# AT_INIT(PROGRAM)
-# Begin testing suite, using PROGRAM to check version, and RELPATH as a
-# relative path (usually `../src') to find executable binaries to test.
-# RELPATH may be omitted; `.' is always added in front of the search path.
+# Begin testing suite, using PROGRAM to check version. The search path
+# should be already preset so the proper executable will be selected.
AT_DEFINE(AT_INIT,
[AT_DEFINE(AT_ordinal, 0)
at_usage="Usage: [$]0 [OPTION]...
- -e Stop and inhibit normal clean up if a test of the full test suite fails
+ -e Abort the full suite and inhibit normal clean up if a test fails
-n Do not redirect stdout and stderr and do not test their contents
- -s Inhibit verbosity in debugging scripts, at generation or at execution
+ -s Inhibit verbosity while generating or executing debugging scripts
-v Force more detailed output, default for debugging scripts unless -s
- -x Have the shell to trace command execution; implies options -a"
+ -x Have the shell to trace command execution; also implies option -n"
while test [$][#] -gt 0; do
case "[$]1" in
+ --help) echo "$at_usage"; exit 0 ;;
+ --version) echo "[$]0 ($at_package) $at_version"; exit 0 ;;
-e) at_stop_on_error=1; shift ;;
-n) at_no_redirs=1; shift ;;
-s) at_verbose=; at_silent=1; shift ;;
-v) at_verbose=1; at_silent=; shift ;;
- -x) at_tracex=1; at_no_redirs=1; shift ;;
- *) echo 1>&2 "$at_usage"; exit 1 ;;
+ -x) at_traceon='set -vx'; at_traceoff='set +vx'; at_no_redirs=1; shift ;;
+ *) echo 1>&2 "Try \`[$]0 --help' for more information."; exit 1 ;;
esac
done
# In the testing suite, we only want to know if the test succeeded or failed.
# But in debugging scripts, we want more information, so we prefer `diff -u'
-# to silent `cmp', even if it may happen that we compare binary files.
+# to the silent `cmp', even if it may happen that we compare binary files.
# Option `-u' might be less portable, so either change it or use GNU `diff'.
if test -n "$at_verbose"; then
at_diff='diff -u'
else
- at_diff='cmp -s'
+ if test -n "$COMSPEC$ComSpec"; then
+ at_diff='diff -u'
+ else
+ at_diff='cmp -s'
+ fi
fi
# Each generated debugging script, containing a single test group, cleans
for at_group in $at_failed_list; do
echo $at_n " $at_group$at_c"
( echo '#!/bin/sh'
- sed -n "/^[#] Snippet (1/,/^[#] Snippet )1/p" atconfig
+ sed -n '/^[#] Snippet (1/,/^[#] Snippet )1/p' atconfig
test -z "$at_silent" && echo 'at_verbose=1'
- sed -n "/^[#] Snippet (2/,/^[#] Snippet )2/p" atconfig
+ sed -n '/^[#] Snippet (2/,/^[#] Snippet )2/p' atconfig
sed -n "/^[#] Snippet (3/,/^[#] Snippet )3/p" [$]0
sed -n "/^[#] Snippet (c$at_group(/,/^[#] Snippet )c$at_group)/p" [$]0
- echo 'test -n "$at_verbose" \
- && echo "[$]0:1: =================================================="'
+ at_desc="`sed -n \
+ '/^[#] Snippet (d'$at_group'(/,/^[#] Snippet )d'$at_group')/p' [$]0 \
+ | sed -n '2s/^[#] //p'`"
+ echo 'if test -n "$at_verbose"; then'
+ echo ' at_banner="[$]0: '$at_desc'"'
+ echo ' at_dashes=`echo $at_banner | sed s/./=/g`'
+ echo ' echo'
+ echo ' echo "$at_dashes"'
+ echo ' echo "$at_banner"'
+ echo ' echo "$at_dashes"'
+ echo 'fi'
+ echo
+ sed -n "/^[#] Snippet (d$at_group(/,/^[#] Snippet )d$at_group)/p" [$]0
sed -n "/^[#] Snippet (s$at_group(/,/^[#] Snippet )s$at_group)/p" [$]0
echo 'exit 0'
) | grep -v '^[#] Snippet' > debug-$at_group.sh
done
echo ', done'
if test -n "$at_stop_on_error"; then
- at_banner="ERROR: One of the tests failed, inhibiting subsequent tests"
+ at_banner='ERROR: One of the tests failed, inhibiting subsequent tests'
else
at_banner="ERROR: Suite unsuccessful, $at_fail_count of $at_test_count tests failed"
fi
if test -n "$at_failed_list"; then
if test -z "$at_silent"; then
echo
- echo "Now, failed tests will be executed again, with more details..."
- echo
+ echo 'When reporting failed tests to maintainers, do not merely list test'
+ echo 'numbers, as the numbering changes between releases and pretests.'
+ echo 'Be careful to give at least all the information you got about them.'
+ echo 'You may investigate any problem if you feel able to do so, in which'
+ echo 'case the generated debugging scripts provide good starting points.'
+ echo "Go on and modify them at will. \`./debug-NN --help' gives usage"
+ echo 'information. Now, failed tests will be executed again, verbosely.'
for at_group in $at_failed_list; do
./debug-$at_group.sh
done
echo $at_n " $at_c"
fi
echo $at_n "substr(AT_ordinal. $srcdir/AT_LINE , 0, 30)[]$at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+[#] Snippet (d[]AT_ordinal[](
+[#] Testing AT_group_description
+[#] Snippet )d[]AT_ordinal[])
[#] Snippet (s[]AT_ordinal[](
-
-[#] The test group starts at `AT_LINE'. An error occurred while
-[#] testing AT_group_description.
+[#] starting from `AT_LINE'.
+$at_traceon
])
+
# AT_CLEANUP(FILES)
# Complete a group of related tests, recursively remove those FILES
# nor files created with AT_DATA.
AT_DEFINE(AT_CLEANUP,
+$at_traceoff
[[#] Snippet )s[]AT_ordinal[])
- )
- case [$]? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list AT_ordinal"
- ;;
- esac
+ )
+ case [$]? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list AT_ordinal"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=AT_ordinal
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
divert(0)[]dnl
popdef([AT_data_files])
popdef([AT_group_description])])
+
# AT_DATA(FILE, CONTENTS)
# Initialize an input data FILE with given CONTENTS, which should end with
# an end of line.
+# This macro is not robust to active symbols in CONTENTS *on purpose*.
+# If you don't want CONTENT to be evaluated, quote it twice.
AT_DEFINE(AT_DATA,
[AT_DEFINE([AT_data_files], AT_data_files[ ]$1)
$2[]EOF
])
-# AT_CHECK(COMMANDS, STATUS, STDOUT, STDERR)
+
+# AT_CHECK(COMMANDS, [STATUS], STDOUT, STDERR)
# Execute a test by performing given shell COMMANDS. These commands
# should normally exit with STATUS, while producing expected STDOUT and
# STDERR contents. The special word `expout' for STDOUT means that file
# `expout' contents has been set to the expected stdout. The special word
# `experr' for STDERR means that file `experr' contents has been set to
-# the expected stderr. STATUS is not checked if it is empty.
+# the expected stderr.
+# STATUS is not checked if it is empty.
+# STDOUT and STDERR can be the special value `ignore', in which case
+# their content is not checked.
AT_DEFINE(AT_CHECK,
-[test -n "$at_verbose" \
- && echo $srcdir'/AT_LINE: Testing AT_group_description'
+[$at_traceoff
+test -n "$at_verbose" \
+ && echo "$srcdir/AT_LINE: testing..."
echo AT_LINE > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
$1
-ifelse([$2], , , [test $? = $2 || exit 1])
-test -n "$at_tracex" && set +x
+ifelse([$2],,,
+[at_status=$?
+if test $at_status != $2; then
+dnl Maybe there was an important message to read before it died.
+ test -n "$at_verbose" && cat stderr >&6
+dnl Exit with the same code, at least to preserve 77.
+ exit $at_status
+fi
+])dnl
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- ifelse([$3], , [test ! -s stdout || exit 1
-], [$3], expout, [AT_DEFINE([AT_data_expout], [ expout])dnl
-$at_diff expout stdout || exit 1
-], [changequote({{, }})dnl
-echo $at_n "patsubst({{$3}}, \([\"`$]\), \\\1)$at_c" | $at_diff - stdout || exit 1
-changequote([, ])])dnl
- ifelse([$4], , [test ! -s stderr || exit 1
-], [$4], experr, [AT_DEFINE([AT_data_experr], [ experr])dnl
-$at_diff experr stderr || exit 1
-], [changequote({{, }})dnl
-echo $at_n "patsubst({{$4}}, \([\"`$]\), \\\1)$at_c" | $at_diff - stderr || exit 1
-changequote([, ])])dnl
+ AT_CASE([$3],
+ ignore, [test -n "$at_verbose" && cat stdout;:],
+ expout, [AT_DEFINE([AT_data_expout], [ expout])dnl
+$at_diff expout stdout || exit 1],
+ [], [$at_diff /dev/null stdout || exit 1],
+ [echo $at_n "patsubst([$3], [\([\"`$]\)], \\\1)$at_c" | $at_diff - stdout || exit 1])
+ AT_CASE([$4],
+ ignore, [test -n "$at_verbose" && cat stderr;:],
+ experr, [AT_DEFINE([AT_data_experr], [ experr])dnl
+$at_diff experr stderr || exit 1],
+ [], [$at_diff /dev/null stderr || exit 1],
+ [echo $at_n "patsubst([$4], [\([\"`$]\)], \\\1)$at_c" | $at_diff - stderr || exit 1])
fi
+$at_traceon
])
-divert[]dnl
+divert(0)dnl
dnl ------------------------
AT_CHECK(
-[recode ../64 < $at_srcdir/dumps-data
+[recode /../64 < $at_srcdir/dumps-data
], 0,
[CmEKYWIKYWJjCmFiY2QKYWJjZGVmZ2hpCmFiY2RlZmdoaWprbG1ub3BxcnMKYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd6eXpBQkMKYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd6eXpBQkNERUZHSElKS0xN
while read line; do
echo $line > input
echo $line > output
- recode ../64 output
- recode /64 output
+ recode /../64 output
+ recode /64../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../64 output
-recode /64 output
+recode /../64 output
+recode /64../ output
diff $at_srcdir/dumps-data output
set +e
])
# Let recode do its huge autoconsistency check.
echo 1>&2 '==============================================='
-echo 1>&2 'The "bigauto" test may take hours. Be patient.'
+echo 1>&2 "The \`bigauto' test may take hours. Be patient."
echo 1>&2 '==============================================='
+export LANGUAGE; LANGUAGE=C
+export LANG; LANG=C
+export LC_ALL; LC_ALL=C
+
recode -l | sed 's/ .*//' | egrep -v '^(/|flat)' > namelist
while read before; do
dnl ---------------------------
AT_CHECK(
-[recode ../d1 < $at_srcdir/dumps-data
+[recode /../d1 < $at_srcdir/dumps-data
], 0,
[ 10, 97, 10, 97, 98, 10, 97, 98, 99, 10, 97, 98, 99, 100, 10,
97, 98, 99, 100, 101, 102, 103, 104, 105, 10, 97, 98, 99, 100, 101,
while read line; do
echo $line > input
echo $line > output
- recode ../d1 output
- recode /d1 output
+ recode /../d1 output
+ recode /d1../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../d1 output
-recode /d1 output
+recode /../d1 output
+recode /d1../ output
diff $at_srcdir/dumps-data output
set +e
])
dnl ---------------------------
AT_CHECK(
-[recode ../d2 < $at_srcdir/dumps-data
+[recode /../d2 < $at_srcdir/dumps-data
], 0,
[ 2657, 2657, 25098, 24930, 25354, 24930, 25444, 2657, 25187, 25701,
26215, 26729, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271,
while read line; do
echo $line > input
echo $line > output
- recode ../d2 output
- recode /d2 output
+ recode /../d2 output
+ recode /d2../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../d2 output
-recode /d2 output
+recode /../d2 output
+recode /d2../ output
diff $at_srcdir/dumps-data output
set +e
])
dnl ---------------------------
AT_CHECK(
-[recode ../d4 < $at_srcdir/dumps-data
+[recode /../d4 < $at_srcdir/dumps-data
], 0,
[ 174131809, 1644847458, 1661624674, 1667500641, 1650680933,
1718052969, 174154339, 1684366951, 1751738987, 1819111023,
while read line; do
echo $line > input
echo $line > output
- recode ../d4 output
- recode /d4 output
+ recode /../d4 output
+ recode /d4../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../d4 output
-recode /d4 output
+recode /../d4 output
+recode /d4../ output
diff $at_srcdir/dumps-data output
set +e
])
dnl -------------------------------
AT_CHECK(
-[recode ../x1 < $at_srcdir/dumps-data
+[recode /../x1 < $at_srcdir/dumps-data
], 0,
[0x0A, 0x61, 0x0A, 0x61, 0x62, 0x0A, 0x61, 0x62, 0x63, 0x0A, 0x61, 0x62,
0x63, 0x64, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
while read line; do
echo $line > input
echo $line > output
- recode ../x1 output
- recode /x1 output
+ recode /../x1 output
+ recode /x1../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../x1 output
-recode /x1 output
+recode /../x1 output
+recode /x1../ output
diff $at_srcdir/dumps-data output
set +e
])
dnl -------------------------------
AT_CHECK(
-[recode ../x2 < $at_srcdir/dumps-data
+[recode /../x2 < $at_srcdir/dumps-data
], 0,
[0x0A61, 0x0A61, 0x620A, 0x6162, 0x630A, 0x6162, 0x6364, 0x0A61,
0x6263, 0x6465, 0x6667, 0x6869, 0x0A61, 0x6263, 0x6465, 0x6667,
while read line; do
echo $line > input
echo $line > output
- recode ../x2 output
- recode /x2 output
+ recode /../x2 output
+ recode /x2../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../x2 output
-recode /x2 output
+recode /../x2 output
+recode /x2../ output
diff $at_srcdir/dumps-data output
set +e
])
dnl -------------------------------
AT_CHECK(
-[recode ../x4 < $at_srcdir/dumps-data
+[recode /../x4 < $at_srcdir/dumps-data
], 0,
[0x0A610A61, 0x620A6162, 0x630A6162, 0x63640A61, 0x62636465, 0x66676869,
0x0A616263, 0x64656667, 0x68696A6B, 0x6C6D6E6F, 0x70717273, 0x0A616263,
while read line; do
echo $line > input
echo $line > output
- recode ../x4 output
- recode /x4 output
+ recode /../x4 output
+ recode /x4../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../x4 output
-recode /x4 output
+recode /../x4 output
+recode /x4../ output
diff $at_srcdir/dumps-data output
set +e
])
dnl -------------------------
AT_CHECK(
-[recode ../o1 < $at_srcdir/dumps-data
+[recode /../o1 < $at_srcdir/dumps-data
], 0,
[0012, 0141, 0012, 0141, 0142, 0012, 0141, 0142, 0143, 0012, 0141, 0142,
0143, 0144, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151,
while read line; do
echo $line > input
echo $line > output
- recode ../o1 output
- recode /o1 output
+ recode /../o1 output
+ recode /o1../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../o1 output
-recode /o1 output
+recode /../o1 output
+recode /o1../ output
diff $at_srcdir/dumps-data output
set +e
])
dnl -------------------------
AT_CHECK(
-[recode ../o2 < $at_srcdir/dumps-data
+[recode /../o2 < $at_srcdir/dumps-data
], 0,
[0005141, 0005141, 0061012, 0060542, 0061412, 0060542, 0061544, 0005141,
0061143, 0062145, 0063147, 0064151, 0005141, 0061143, 0062145, 0063147,
while read line; do
echo $line > input
echo $line > output
- recode ../o2 output
- recode /o2 output
+ recode /../o2 output
+ recode /o2../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../o2 output
-recode /o2 output
+recode /../o2 output
+recode /o2../ output
diff $at_srcdir/dumps-data output
set +e
])
dnl -------------------------
AT_CHECK(
-[recode ../o4 < $at_srcdir/dumps-data
+[recode /../o4 < $at_srcdir/dumps-data
], 0,
[001230205141, 014202460542, 014302460542, 014331005141,
014230662145, 014631664151, 001230261143, 014431263147,
while read line; do
echo $line > input
echo $line > output
- recode ../o4 output
- recode /o4 output
+ recode /../o4 output
+ recode /o4../ output
diff input output
done < $at_srcdir/dumps-data
set +e
[set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../o4 output
-recode /o4 output
+recode /../o4 output
+recode /o4../ output
diff $at_srcdir/dumps-data output
set +e
])
SEN_850200_B FI ISO646-FI ISO646-SE iso-ir-10 se SS636127
SEN_850200_C ISO646-SE2 iso-ir-11 se2
T.61-7bit iso-ir-102
+TCVN
Texinfo texi ti
Texte txte
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
+VIQR
+VISCII
+VNI
+VPS
EOF
AT_CHECK(recode -l, 0, expout)
[158] ISO_646.basic < DEC-MCS
[164] ISO_646.basic < IBM1004
[164] ISO_646.basic < IBM869
+[164] ISO_646.basic < VPS
[166] ISO_646.basic < CP1254
[166] ISO_646.basic < ISO-8859-3
[166] ISO_646.basic < NeXTSTEP
[167] ISO_646.basic < ISO-8859-7
[167] ISO_646.basic < ISO_8859-supp
+[167] ISO_646.basic < TCVN
[168] ISO_646.basic < CP1250
[168] ISO_646.basic < CP1252
[168] ISO_646.basic < IBM864
[173] ISO_646.basic < ISO-8859-9
[173] ISO_646.basic < KOI8-R
[173] ISO_646.basic < KOI8-RU
+[173] ISO_646.basic < VISCII
[173] ISO_646.basic < baltic
[173] ISO_646.basic < macintosh_ce
EOF
#!/bin/sh
+# -*- coding: latin-1 -*-
# Validation suite for the Free `recode' program and library.
# Copyright © 1998, 1999 Progiciels Bourbeau-Pinard inc.
# François Pinard <pinard@iro.umontreal.ca>, 1998.
echo 'Individual charsets.'
echo
-# FIXME: tests for atarist, next, ebcdic, tables, applemac, ibmpc iconqnx,
+# FIXME: tests for atarist, next, ebcdic, tables, applemac, ibmpc, iconqnx,
# cdcnos, bangbang, ascii, flat, html, latex, texinfo, texte and utf16.
AT_INCLUDE(african.m4)
#!/bin/sh
+# -*- coding: latin-1 -*-
# Validation suite for the Free `recode' program and library.
# Copyright © 1998, 1999 Progiciels Bourbeau-Pinard inc.
# François Pinard <pinard@iro.umontreal.ca>, 1998.
at_usage="Usage: $0 OPTION...
- -e Stop and inhibit normal clean up if a test of the full test suite fails
+ -e Abort the full suite and inhibit normal clean up if a test fails
-n Do not redirect stdout and stderr and do not test their contents
- -s Inhibit verbosity in debugging scripts, at generation or at execution
+ -s Inhibit verbosity while generating or executing debugging scripts
-v Force more detailed output, default for debugging scripts unless -s
- -x Have the shell to trace command execution; implies options -a"
+ -x Have the shell to trace command execution; also implies option -n"
while test $# -gt 0; do
case "$1" in
+ --help) echo "$at_usage"; exit 0 ;;
+ --version) echo "$0 ($at_package) $at_version"; exit 0 ;;
-e) at_stop_on_error=1; shift ;;
-n) at_no_redirs=1; shift ;;
-s) at_verbose=; at_silent=1; shift ;;
-v) at_verbose=1; at_silent=; shift ;;
- -x) at_tracex=1; at_no_redirs=1; shift ;;
- *) echo 1>&2 "$at_usage"; exit 1 ;;
+ -x) at_traceon='set -vx'; at_traceoff='set +vx'; at_no_redirs=1; shift ;;
+ *) echo 1>&2 "Try \`$0 --help' for more information."; exit 1 ;;
esac
done
# In the testing suite, we only want to know if the test succeeded or failed.
# But in debugging scripts, we want more information, so we prefer `diff -u'
-# to silent `cmp', even if it may happen that we compare binary files.
+# to the silent `cmp', even if it may happen that we compare binary files.
# Option `-u' might be less portable, so either change it or use GNU `diff'.
if test -n "$at_verbose"; then
at_diff='diff -u'
else
- at_diff='cmp -s'
+ if test -n "$COMSPEC$ComSpec"; then
+ at_diff='diff -u'
+ else
+ at_diff='cmp -s'
+ fi
fi
# Each generated debugging script, containing a single test group, cleans
echo $at_n " $at_c"
fi
echo $at_n "1. $srcdir/names.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d1(
+# Testing list of charsets and surfaces
+# Snippet )d1)
# Snippet (s1(
-
-# The test group starts at `names.m4:3'. An error occurred while
-# testing list of charsets and surfaces.
+# starting from `names.m4:3'.
+$at_traceon
cat >expout <<'EOF'
/21-Permutation swabytes
SEN_850200_B FI ISO646-FI ISO646-SE iso-ir-10 se SS636127
SEN_850200_C ISO646-SE2 iso-ir-11 se2
T.61-7bit iso-ir-102
+TCVN
Texinfo texi ti
Texte txte
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
+VIQR
+VISCII
+VNI
+VPS
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/names.m4:224: Testing list of charsets and surfaces'
-echo names.m4:224 > at-check-line
+ && echo "$srcdir/names.m4:229: testing..."
+echo names.m4:229 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode -l
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s1)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 1"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 1"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=1
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr expout
rm -rf stdout stderr expout
# Snippet )c2)
- echo names.m4:228 > at-check-line
+ echo names.m4:233 > at-check-line
if test -n "$at_verbose"; then
echo 'testing the --find-subsets option'
echo $at_n " $at_c"
fi
- echo $at_n "2. $srcdir/names.m4:228 $at_c"
- (
+ echo $at_n "2. $srcdir/names.m4:233 $at_c"
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d2(
+# Testing the --find-subsets option
+# Snippet )d2)
# Snippet (s2(
-
-# The test group starts at `names.m4:228'. An error occurred while
-# testing the --find-subsets option.
+# starting from `names.m4:233'.
+$at_traceon
cat >expout <<'EOF'
[ 0] ANSI_X3.4-1968 == IBM891
[158] ISO_646.basic < DEC-MCS
[164] ISO_646.basic < IBM1004
[164] ISO_646.basic < IBM869
+[164] ISO_646.basic < VPS
[166] ISO_646.basic < CP1254
[166] ISO_646.basic < ISO-8859-3
[166] ISO_646.basic < NeXTSTEP
[167] ISO_646.basic < ISO-8859-7
[167] ISO_646.basic < ISO_8859-supp
+[167] ISO_646.basic < TCVN
[168] ISO_646.basic < CP1250
[168] ISO_646.basic < CP1252
[168] ISO_646.basic < IBM864
[173] ISO_646.basic < ISO-8859-9
[173] ISO_646.basic < KOI8-R
[173] ISO_646.basic < KOI8-RU
+[173] ISO_646.basic < VISCII
[173] ISO_646.basic < baltic
[173] ISO_646.basic < macintosh_ce
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/names.m4:676: Testing the --find-subsets option'
-echo names.m4:676 > at-check-line
+ && echo "$srcdir/names.m4:684: testing..."
+echo names.m4:684 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode -T | sort
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s2)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 2"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 2"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=2
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr expout
echo $at_n " $at_c"
fi
echo $at_n "3. $srcdir/lists.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d3(
+# Testing decimal listing of a charset
+# Snippet )d3)
# Snippet (s3(
-
-# The test group starts at `lists.m4:3'. An error occurred while
-# testing decimal listing of a charset.
+# starting from `lists.m4:3'.
+$at_traceon
cat > expect <<'EOF'
ISO-8859-1
143 S3 159 AC 175 'm 191 ?I 207 I: 223 ss 239 i: 255 y:
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/lists.m4:44: Testing decimal listing of a charset'
+ && echo "$srcdir/lists.m4:44: testing..."
echo lists.m4:44 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode -ld latin-1 | cmp -s - expect
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s3)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 3"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 3"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=3
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expect stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "4. $srcdir/lists.m4:48 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d4(
+# Testing hexadecimal listing of a charset
+# Snippet )d4)
# Snippet (s4(
-
-# The test group starts at `lists.m4:48'. An error occurred while
-# testing hexadecimal listing of a charset.
+# starting from `lists.m4:48'.
+$at_traceon
cat > expect <<'EOF'
ISO-8859-1
8f S3 9f AC af 'm bf ?I cf I: df ss ef i: ff y:
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/lists.m4:89: Testing hexadecimal listing of a charset'
+ && echo "$srcdir/lists.m4:89: testing..."
echo lists.m4:89 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode -lh latin-1 | cmp -s - expect
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s4)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 4"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 4"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=4
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expect stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "5. $srcdir/lists.m4:93 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d5(
+# Testing octal listing of a charset
+# Snippet )d5)
# Snippet (s5(
-
-# The test group starts at `lists.m4:93'. An error occurred while
-# testing octal listing of a charset.
+# starting from `lists.m4:93'.
+$at_traceon
cat > expect <<'EOF'
ISO-8859-1
217 S3 237 AC 257 'm 277 ?I 317 I: 337 ss 357 i: 377 y:
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/lists.m4:134: Testing octal listing of a charset'
+ && echo "$srcdir/lists.m4:134: testing..."
echo lists.m4:134 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode -lo latin-1 | cmp -s - expect
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s5)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 5"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 5"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=5
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expect stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "6. $srcdir/lists.m4:138 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d6(
+# Testing full listing of a charset
+# Snippet )d6)
# Snippet (s6(
-
-# The test group starts at `lists.m4:138'. An error occurred while
-# testing full listing of a charset.
+# starting from `lists.m4:138'.
+$at_traceon
cat > expect <<'EOF'
Dec Oct Hex UCS2 Mne ISO-8859-1
255 377 ff 00FF y: latin small letter y with diaeresis
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/lists.m4:402: Testing full listing of a charset'
+ && echo "$srcdir/lists.m4:402: testing..."
echo lists.m4:402 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode -lf latin-1 | cmp -s - expect
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s6)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 6"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 6"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=6
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expect stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "7. $srcdir/dumps.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d7(
+# Testing single lines to Decimal-1
+# Snippet )d7)
# Snippet (s7(
+# starting from `dumps.m4:3'.
+$at_traceon
-# The test group starts at `dumps.m4:3'. An error occurred while
-# testing single lines to Decimal-1.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:31: Testing single lines to Decimal-1'
+ && echo "$srcdir/dumps.m4:31: testing..."
echo dumps.m4:31 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../d1 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 10
69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 48, 49, 50, 51, 52, 53, 54, 10
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s7)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 7"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 7"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=7
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "8. $srcdir/dumps.m4:35 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d8(
+# Testing block of lines to Decimal-1
+# Snippet )d8)
# Snippet (s8(
+# starting from `dumps.m4:35'.
+$at_traceon
-# The test group starts at `dumps.m4:35'. An error occurred while
-# testing block of lines to Decimal-1.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:56: Testing block of lines to Decimal-1'
+ && echo "$srcdir/dumps.m4:56: testing..."
echo dumps.m4:56 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../d1 < $at_srcdir/dumps-data
+$at_traceon
+recode /../d1 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 10, 97, 10, 97, 98, 10, 97, 98, 99, 10, 97, 98, 99, 100, 10,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 48, 49, 50, 51, 52, 53, 54, 10
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s8)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 8"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 8"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=8
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "9. $srcdir/dumps.m4:60 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d9(
+# Testing single lines to Decimal-1 and back
+# Snippet )d9)
# Snippet (s9(
+# starting from `dumps.m4:60'.
+$at_traceon
-# The test group starts at `dumps.m4:60'. An error occurred while
-# testing single lines to Decimal-1 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:73: Testing single lines to Decimal-1 and back'
+ && echo "$srcdir/dumps.m4:73: testing..."
echo dumps.m4:73 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../d1 output
- recode /d1 output
+ recode /../d1 output
+ recode /d1../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s9)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 9"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 9"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=9
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "10. $srcdir/dumps.m4:77 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d10(
+# Testing block of lines to Decimal-1 and back
+# Snippet )d10)
# Snippet (s10(
+# starting from `dumps.m4:77'.
+$at_traceon
-# The test group starts at `dumps.m4:77'. An error occurred while
-# testing block of lines to Decimal-1 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:88: Testing block of lines to Decimal-1 and back'
+ && echo "$srcdir/dumps.m4:88: testing..."
echo dumps.m4:88 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../d1 output
-recode /d1 output
+recode /../d1 output
+recode /d1../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s10)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 10"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 10"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=10
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "11. $srcdir/dumps.m4:92 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d11(
+# Testing single lines to Decimal-2
+# Snippet )d11)
# Snippet (s11(
+# starting from `dumps.m4:92'.
+$at_traceon
-# The test group starts at `dumps.m4:92'. An error occurred while
-# testing single lines to Decimal-2.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:116: Testing single lines to Decimal-2'
+ && echo "$srcdir/dumps.m4:116: testing..."
echo dumps.m4:116 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../d2 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 10
30070, 30586, 31098, 16706, 17220, 17734, 18248, 18762, 19276, 19790,
20304, 20818, 21332, 21846, 22360, 22874, 12337, 12851, 13365, 13834
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s11)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 11"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 11"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=11
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "12. $srcdir/dumps.m4:120 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d12(
+# Testing block of lines to Decimal-2
+# Snippet )d12)
# Snippet (s12(
+# starting from `dumps.m4:120'.
+$at_traceon
-# The test group starts at `dumps.m4:120'. An error occurred while
-# testing block of lines to Decimal-2.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:138: Testing block of lines to Decimal-2'
+ && echo "$srcdir/dumps.m4:138: testing..."
echo dumps.m4:138 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../d2 < $at_srcdir/dumps-data
+$at_traceon
+recode /../d2 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 2657, 2657, 25098, 24930, 25354, 24930, 25444, 2657, 25187, 25701,
19019, 19533, 20047, 20561, 21075, 21589, 22103, 22617, 23088, 12594,
13108, 13622, 10
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s12)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 12"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 12"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=12
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "13. $srcdir/dumps.m4:142 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d13(
+# Testing single lines to Decimal-2 and back
+# Snippet )d13)
# Snippet (s13(
+# starting from `dumps.m4:142'.
+$at_traceon
-# The test group starts at `dumps.m4:142'. An error occurred while
-# testing single lines to Decimal-2 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:155: Testing single lines to Decimal-2 and back'
+ && echo "$srcdir/dumps.m4:155: testing..."
echo dumps.m4:155 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../d2 output
- recode /d2 output
+ recode /../d2 output
+ recode /d2../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s13)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 13"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 13"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=13
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "14. $srcdir/dumps.m4:159 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d14(
+# Testing block of lines to Decimal-2 and back
+# Snippet )d14)
# Snippet (s14(
+# starting from `dumps.m4:159'.
+$at_traceon
-# The test group starts at `dumps.m4:159'. An error occurred while
-# testing block of lines to Decimal-2 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:170: Testing block of lines to Decimal-2 and back'
+ && echo "$srcdir/dumps.m4:170: testing..."
echo dumps.m4:170 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../d2 output
-recode /d2 output
+recode /../d2 output
+recode /d2../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s14)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 14"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 14"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=14
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "15. $srcdir/dumps.m4:174 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d15(
+# Testing single lines to Decimal-4
+# Snippet )d15)
# Snippet (s15(
+# starting from `dumps.m4:174'.
+$at_traceon
-# The test group starts at `dumps.m4:174'. An error occurred while
-# testing single lines to Decimal-4.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:198: Testing single lines to Decimal-4'
+ && echo "$srcdir/dumps.m4:198: testing..."
echo dumps.m4:198 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../d4 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 10
1970698106, 2038055234, 1128547654, 1195919690, 1263291726,
1330663762, 1398035798, 1465407834, 808530483, 875902474
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s15)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 15"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 15"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=15
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "16. $srcdir/dumps.m4:202 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d16(
+# Testing block of lines to Decimal-4
+# Snippet )d16)
# Snippet (s16(
+# starting from `dumps.m4:202'.
+$at_traceon
-# The test group starts at `dumps.m4:202'. An error occurred while
-# testing block of lines to Decimal-4.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:220: Testing block of lines to Decimal-4'
+ && echo "$srcdir/dumps.m4:220: testing..."
echo dumps.m4:220 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../d4 < $at_srcdir/dumps-data
+$at_traceon
+recode /../d4 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 174131809, 1644847458, 1661624674, 1667500641, 1650680933,
1246448717, 1313820753, 1381192789, 1448564825, 1513107762,
859059510, 10
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s16)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 16"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 16"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=16
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "17. $srcdir/dumps.m4:224 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d17(
+# Testing single lines to Decimal-4 and back
+# Snippet )d17)
# Snippet (s17(
+# starting from `dumps.m4:224'.
+$at_traceon
-# The test group starts at `dumps.m4:224'. An error occurred while
-# testing single lines to Decimal-4 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:237: Testing single lines to Decimal-4 and back'
+ && echo "$srcdir/dumps.m4:237: testing..."
echo dumps.m4:237 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../d4 output
- recode /d4 output
+ recode /../d4 output
+ recode /d4../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s17)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 17"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 17"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=17
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "18. $srcdir/dumps.m4:241 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d18(
+# Testing block of lines to Decimal-4 and back
+# Snippet )d18)
# Snippet (s18(
+# starting from `dumps.m4:241'.
+$at_traceon
-# The test group starts at `dumps.m4:241'. An error occurred while
-# testing block of lines to Decimal-4 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:252: Testing block of lines to Decimal-4 and back'
+ && echo "$srcdir/dumps.m4:252: testing..."
echo dumps.m4:252 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../d4 output
-recode /d4 output
+recode /../d4 output
+recode /d4../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s18)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 18"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 18"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=18
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "19. $srcdir/dumps.m4:256 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d19(
+# Testing single lines to Hexadecimal-1
+# Snippet )d19)
# Snippet (s19(
+# starting from `dumps.m4:256'.
+$at_traceon
-# The test group starts at `dumps.m4:256'. An error occurred while
-# testing single lines to Hexadecimal-1.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:288: Testing single lines to Hexadecimal-1'
+ && echo "$srcdir/dumps.m4:288: testing..."
echo dumps.m4:288 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../x1 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0x0A
0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
0x57, 0x58, 0x59, 0x5A, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s19)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 19"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 19"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=19
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "20. $srcdir/dumps.m4:292 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d20(
+# Testing block of lines to Hexadecimal-1
+# Snippet )d20)
# Snippet (s20(
+# starting from `dumps.m4:292'.
+$at_traceon
-# The test group starts at `dumps.m4:292'. An error occurred while
-# testing block of lines to Hexadecimal-1.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:317: Testing block of lines to Hexadecimal-1'
+ && echo "$srcdir/dumps.m4:317: testing..."
echo dumps.m4:317 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../x1 < $at_srcdir/dumps-data
+$at_traceon
+recode /../x1 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0x0A, 0x61, 0x0A, 0x61, 0x62, 0x0A, 0x61, 0x62, 0x63, 0x0A, 0x61, 0x62,
0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
0x5A, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s20)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 20"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 20"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=20
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "21. $srcdir/dumps.m4:321 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d21(
+# Testing single lines to Hexadecimal-1 and back
+# Snippet )d21)
# Snippet (s21(
+# starting from `dumps.m4:321'.
+$at_traceon
-# The test group starts at `dumps.m4:321'. An error occurred while
-# testing single lines to Hexadecimal-1 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:334: Testing single lines to Hexadecimal-1 and back'
+ && echo "$srcdir/dumps.m4:334: testing..."
echo dumps.m4:334 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../x1 output
- recode /x1 output
+ recode /../x1 output
+ recode /x1../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s21)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 21"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 21"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=21
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "22. $srcdir/dumps.m4:338 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d22(
+# Testing block of lines to Hexadecimal-1 and back
+# Snippet )d22)
# Snippet (s22(
+# starting from `dumps.m4:338'.
+$at_traceon
-# The test group starts at `dumps.m4:338'. An error occurred while
-# testing block of lines to Hexadecimal-1 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:349: Testing block of lines to Hexadecimal-1 and back'
+ && echo "$srcdir/dumps.m4:349: testing..."
echo dumps.m4:349 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../x1 output
-recode /x1 output
+recode /../x1 output
+recode /x1../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s22)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 22"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 22"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=22
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "23. $srcdir/dumps.m4:353 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d23(
+# Testing single lines to Hexadecimal-2
+# Snippet )d23)
# Snippet (s23(
+# starting from `dumps.m4:353'.
+$at_traceon
-# The test group starts at `dumps.m4:353'. An error occurred while
-# testing single lines to Hexadecimal-2.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:381: Testing single lines to Hexadecimal-2'
+ && echo "$srcdir/dumps.m4:381: testing..."
echo dumps.m4:381 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../x2 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0x0A
0x4748, 0x494A, 0x4B4C, 0x4D4E, 0x4F50, 0x5152, 0x5354, 0x5556,
0x5758, 0x595A, 0x3031, 0x3233, 0x3435, 0x360A
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s23)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 23"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 23"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=23
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "24. $srcdir/dumps.m4:385 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d24(
+# Testing block of lines to Hexadecimal-2
+# Snippet )d24)
# Snippet (s24(
+# starting from `dumps.m4:385'.
+$at_traceon
-# The test group starts at `dumps.m4:385'. An error occurred while
-# testing block of lines to Hexadecimal-2.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:406: Testing block of lines to Hexadecimal-2'
+ && echo "$srcdir/dumps.m4:406: testing..."
echo dumps.m4:406 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../x2 < $at_srcdir/dumps-data
+$at_traceon
+recode /../x2 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0x0A61, 0x0A61, 0x620A, 0x6162, 0x630A, 0x6162, 0x6364, 0x0A61,
0x5253, 0x5455, 0x5657, 0x5859, 0x5A30, 0x3132, 0x3334, 0x3536,
0x0A
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s24)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 24"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 24"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=24
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "25. $srcdir/dumps.m4:410 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d25(
+# Testing single lines to Hexadecimal-2 and back
+# Snippet )d25)
# Snippet (s25(
+# starting from `dumps.m4:410'.
+$at_traceon
-# The test group starts at `dumps.m4:410'. An error occurred while
-# testing single lines to Hexadecimal-2 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:423: Testing single lines to Hexadecimal-2 and back'
+ && echo "$srcdir/dumps.m4:423: testing..."
echo dumps.m4:423 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../x2 output
- recode /x2 output
+ recode /../x2 output
+ recode /x2../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s25)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 25"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 25"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=25
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "26. $srcdir/dumps.m4:427 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d26(
+# Testing block of lines to Hexadecimal-2 and back
+# Snippet )d26)
# Snippet (s26(
+# starting from `dumps.m4:427'.
+$at_traceon
-# The test group starts at `dumps.m4:427'. An error occurred while
-# testing block of lines to Hexadecimal-2 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:438: Testing block of lines to Hexadecimal-2 and back'
+ && echo "$srcdir/dumps.m4:438: testing..."
echo dumps.m4:438 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../x2 output
-recode /x2 output
+recode /../x2 output
+recode /x2../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s26)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 26"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 26"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=26
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "27. $srcdir/dumps.m4:442 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d27(
+# Testing single lines to Hexadecimal-4
+# Snippet )d27)
# Snippet (s27(
+# starting from `dumps.m4:442'.
+$at_traceon
-# The test group starts at `dumps.m4:442'. An error occurred while
-# testing single lines to Hexadecimal-4.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:466: Testing single lines to Hexadecimal-4'
+ && echo "$srcdir/dumps.m4:466: testing..."
echo dumps.m4:466 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../x4 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0x0A
0x797A4142, 0x43444546, 0x4748494A, 0x4B4C4D4E, 0x4F505152, 0x53545556,
0x5758595A, 0x30313233, 0x3435360A
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s27)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 27"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 27"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=27
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "28. $srcdir/dumps.m4:470 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d28(
+# Testing block of lines to Hexadecimal-4
+# Snippet )d28)
# Snippet (s28(
+# starting from `dumps.m4:470'.
+$at_traceon
-# The test group starts at `dumps.m4:470'. An error occurred while
-# testing block of lines to Hexadecimal-4.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:486: Testing block of lines to Hexadecimal-4'
+ && echo "$srcdir/dumps.m4:486: testing..."
echo dumps.m4:486 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../x4 < $at_srcdir/dumps-data
+$at_traceon
+recode /../x4 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0x0A610A61, 0x620A6162, 0x630A6162, 0x63640A61, 0x62636465, 0x66676869,
0x42434445, 0x46474849, 0x4A4B4C4D, 0x4E4F5051, 0x52535455, 0x56575859,
0x5A303132, 0x33343536, 0x0A
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s28)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 28"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 28"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=28
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "29. $srcdir/dumps.m4:490 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d29(
+# Testing single lines to Hexadecimal-4 and back
+# Snippet )d29)
# Snippet (s29(
+# starting from `dumps.m4:490'.
+$at_traceon
-# The test group starts at `dumps.m4:490'. An error occurred while
-# testing single lines to Hexadecimal-4 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:503: Testing single lines to Hexadecimal-4 and back'
+ && echo "$srcdir/dumps.m4:503: testing..."
echo dumps.m4:503 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../x4 output
- recode /x4 output
+ recode /../x4 output
+ recode /x4../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s29)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 29"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 29"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=29
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "30. $srcdir/dumps.m4:507 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d30(
+# Testing block of lines to Hexadecimal-4 and back
+# Snippet )d30)
# Snippet (s30(
+# starting from `dumps.m4:507'.
+$at_traceon
-# The test group starts at `dumps.m4:507'. An error occurred while
-# testing block of lines to Hexadecimal-4 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:518: Testing block of lines to Hexadecimal-4 and back'
+ && echo "$srcdir/dumps.m4:518: testing..."
echo dumps.m4:518 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../x4 output
-recode /x4 output
+recode /../x4 output
+recode /x4../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s30)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 30"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 30"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=30
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "31. $srcdir/dumps.m4:522 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d31(
+# Testing single lines to Octal-1
+# Snippet )d31)
# Snippet (s31(
+# starting from `dumps.m4:522'.
+$at_traceon
-# The test group starts at `dumps.m4:522'. An error occurred while
-# testing single lines to Octal-1.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:554: Testing single lines to Octal-1'
+ && echo "$srcdir/dumps.m4:554: testing..."
echo dumps.m4:554 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../o1 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0012
0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126,
0127, 0130, 0131, 0132, 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0012
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s31)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 31"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 31"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=31
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "32. $srcdir/dumps.m4:558 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d32(
+# Testing block of lines to Octal-1
+# Snippet )d32)
# Snippet (s32(
+# starting from `dumps.m4:558'.
+$at_traceon
-# The test group starts at `dumps.m4:558'. An error occurred while
-# testing block of lines to Octal-1.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:583: Testing block of lines to Octal-1'
+ && echo "$srcdir/dumps.m4:583: testing..."
echo dumps.m4:583 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../o1 < $at_srcdir/dumps-data
+$at_traceon
+recode /../o1 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0012, 0141, 0012, 0141, 0142, 0012, 0141, 0142, 0143, 0012, 0141, 0142,
0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0130, 0131,
0132, 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0012
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s32)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 32"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 32"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=32
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "33. $srcdir/dumps.m4:587 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d33(
+# Testing single lines to Octal-1 and back
+# Snippet )d33)
# Snippet (s33(
+# starting from `dumps.m4:587'.
+$at_traceon
-# The test group starts at `dumps.m4:587'. An error occurred while
-# testing single lines to Octal-1 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:600: Testing single lines to Octal-1 and back'
+ && echo "$srcdir/dumps.m4:600: testing..."
echo dumps.m4:600 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../o1 output
- recode /o1 output
+ recode /../o1 output
+ recode /o1../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s33)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 33"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 33"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=33
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "34. $srcdir/dumps.m4:604 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d34(
+# Testing block of lines to Octal-1 and back
+# Snippet )d34)
# Snippet (s34(
+# starting from `dumps.m4:604'.
+$at_traceon
-# The test group starts at `dumps.m4:604'. An error occurred while
-# testing block of lines to Octal-1 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:615: Testing block of lines to Octal-1 and back'
+ && echo "$srcdir/dumps.m4:615: testing..."
echo dumps.m4:615 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../o1 output
-recode /o1 output
+recode /../o1 output
+recode /o1../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s34)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 34"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 34"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=34
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "35. $srcdir/dumps.m4:619 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d35(
+# Testing single lines to Octal-2
+# Snippet )d35)
# Snippet (s35(
+# starting from `dumps.m4:619'.
+$at_traceon
-# The test group starts at `dumps.m4:619'. An error occurred while
-# testing single lines to Octal-2.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:647: Testing single lines to Octal-2'
+ && echo "$srcdir/dumps.m4:647: testing..."
echo dumps.m4:647 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../o2 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0012
0043510, 0044512, 0045514, 0046516, 0047520, 0050522, 0051524, 0052526,
0053530, 0054532, 0030061, 0031063, 0032065, 0033012
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s35)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 35"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 35"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=35
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "36. $srcdir/dumps.m4:651 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d36(
+# Testing block of lines to Octal-2
+# Snippet )d36)
# Snippet (s36(
+# starting from `dumps.m4:651'.
+$at_traceon
-# The test group starts at `dumps.m4:651'. An error occurred while
-# testing block of lines to Octal-2.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:672: Testing block of lines to Octal-2'
+ && echo "$srcdir/dumps.m4:672: testing..."
echo dumps.m4:672 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../o2 < $at_srcdir/dumps-data
+$at_traceon
+recode /../o2 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0005141, 0005141, 0061012, 0060542, 0061412, 0060542, 0061544, 0005141,
0051123, 0052125, 0053127, 0054131, 0055060, 0030462, 0031464, 0032466,
0012
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s36)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 36"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 36"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=36
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "37. $srcdir/dumps.m4:676 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d37(
+# Testing single lines to Octal-2 and back
+# Snippet )d37)
# Snippet (s37(
+# starting from `dumps.m4:676'.
+$at_traceon
-# The test group starts at `dumps.m4:676'. An error occurred while
-# testing single lines to Octal-2 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:689: Testing single lines to Octal-2 and back'
+ && echo "$srcdir/dumps.m4:689: testing..."
echo dumps.m4:689 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../o2 output
- recode /o2 output
+ recode /../o2 output
+ recode /o2../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s37)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 37"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 37"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=37
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "38. $srcdir/dumps.m4:693 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d38(
+# Testing block of lines to Octal-2 and back
+# Snippet )d38)
# Snippet (s38(
+# starting from `dumps.m4:693'.
+$at_traceon
-# The test group starts at `dumps.m4:693'. An error occurred while
-# testing block of lines to Octal-2 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:704: Testing block of lines to Octal-2 and back'
+ && echo "$srcdir/dumps.m4:704: testing..."
echo dumps.m4:704 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../o2 output
-recode /o2 output
+recode /../o2 output
+recode /o2../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s38)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 38"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 38"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=38
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "39. $srcdir/dumps.m4:708 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d39(
+# Testing single lines to Octal-4
+# Snippet )d39)
# Snippet (s39(
+# starting from `dumps.m4:708'.
+$at_traceon
-# The test group starts at `dumps.m4:708'. An error occurred while
-# testing single lines to Octal-4.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:736: Testing single lines to Octal-4'
+ && echo "$srcdir/dumps.m4:736: testing..."
echo dumps.m4:736 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../o4 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0012
010722044512, 011323046516, 011724050522, 012325052526,
012726054532, 006014231063, 006415233012
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s39)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 39"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 39"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=39
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "40. $srcdir/dumps.m4:740 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d40(
+# Testing block of lines to Octal-4
+# Snippet )d40)
# Snippet (s40(
+# starting from `dumps.m4:740'.
+$at_traceon
-# The test group starts at `dumps.m4:740'. An error occurred while
-# testing block of lines to Octal-4.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:761: Testing block of lines to Octal-4'
+ && echo "$srcdir/dumps.m4:761: testing..."
echo dumps.m4:761 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../o4 < $at_srcdir/dumps-data
+$at_traceon
+recode /../o4 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "001230205141, 014202460542, 014302460542, 014331005141,
012224652125, 012625654131, 013214030462, 006315032466,
0012
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s40)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 40"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 40"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=40
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "41. $srcdir/dumps.m4:765 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d41(
+# Testing single lines to Octal-4 and back
+# Snippet )d41)
# Snippet (s41(
+# starting from `dumps.m4:765'.
+$at_traceon
-# The test group starts at `dumps.m4:765'. An error occurred while
-# testing single lines to Octal-4 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:778: Testing single lines to Octal-4 and back'
+ && echo "$srcdir/dumps.m4:778: testing..."
echo dumps.m4:778 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../o4 output
- recode /o4 output
+ recode /../o4 output
+ recode /o4../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s41)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 41"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 41"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=41
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "42. $srcdir/dumps.m4:782 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d42(
+# Testing block of lines to Octal-4 and back
+# Snippet )d42)
# Snippet (s42(
+# starting from `dumps.m4:782'.
+$at_traceon
-# The test group starts at `dumps.m4:782'. An error occurred while
-# testing block of lines to Octal-4 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/dumps.m4:793: Testing block of lines to Octal-4 and back'
+ && echo "$srcdir/dumps.m4:793: testing..."
echo dumps.m4:793 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../o4 output
-recode /o4 output
+recode /../o4 output
+recode /o4../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s42)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 42"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 42"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=42
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "43. $srcdir/base64.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d43(
+# Testing single lines to Base64
+# Snippet )d43)
# Snippet (s43(
+# starting from `base64.m4:3'.
+$at_traceon
-# The test group starts at `base64.m4:3'. An error occurred while
-# testing single lines to Base64.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/base64.m4:22: Testing single lines to Base64'
+ && echo "$srcdir/base64.m4:22: testing..."
echo base64.m4:22 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
( while read line; do echo $line | recode ../64 || exit 1; done
) < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "Cg==
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd6eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTYK
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s43)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 43"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 43"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=43
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "44. $srcdir/base64.m4:26 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d44(
+# Testing block of lines to Base64
+# Snippet )d44)
# Snippet (s44(
+# starting from `base64.m4:26'.
+$at_traceon
-# The test group starts at `base64.m4:26'. An error occurred while
-# testing block of lines to Base64.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/base64.m4:36: Testing block of lines to Base64'
+ && echo "$srcdir/base64.m4:36: testing..."
echo base64.m4:36 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
-recode ../64 < $at_srcdir/dumps-data
+$at_traceon
+recode /../64 < $at_srcdir/dumps-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "CmEKYWIKYWJjCmFiY2QKYWJjZGVmZ2hpCmFiY2RlZmdoaWprbG1ub3BxcnMKYWJjZGVmZ2hpamts
CmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3enl6QUJDREVGR0hJSktMTU5PUFFSU1RVVlcKYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd6eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTYK
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s44)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 44"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 44"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=44
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "45. $srcdir/base64.m4:40 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d45(
+# Testing single lines to Base64 and back
+# Snippet )d45)
# Snippet (s45(
+# starting from `base64.m4:40'.
+$at_traceon
-# The test group starts at `base64.m4:40'. An error occurred while
-# testing single lines to Base64 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/base64.m4:53: Testing single lines to Base64 and back'
+ && echo "$srcdir/base64.m4:53: testing..."
echo base64.m4:53 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo $line > input
echo $line > output
- recode ../64 output
- recode /64 output
+ recode /../64 output
+ recode /64../ output
diff input output
done < $at_srcdir/dumps-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s45)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 45"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 45"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=45
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "46. $srcdir/base64.m4:57 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d46(
+# Testing block of lines to Base64 and back
+# Snippet )d46)
# Snippet (s46(
+# starting from `base64.m4:57'.
+$at_traceon
-# The test group starts at `base64.m4:57'. An error occurred while
-# testing block of lines to Base64 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/base64.m4:68: Testing block of lines to Base64 and back'
+ && echo "$srcdir/base64.m4:68: testing..."
echo base64.m4:68 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/dumps-data output
chmod +w output
-recode ../64 output
-recode /64 output
+recode /../64 output
+recode /64../ output
diff $at_srcdir/dumps-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s46)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 46"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 46"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=46
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "47. $srcdir/quoted.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d47(
+# Testing block of lines from Quoted Printable
+# Snippet )d47)
# Snippet (s47(
+# starting from `quoted.m4:3'.
+$at_traceon
-# The test group starts at `quoted.m4:3'. An error occurred while
-# testing block of lines from Quoted Printable.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/quoted.m4:24: Testing block of lines from Quoted Printable'
+ && echo "$srcdir/quoted.m4:24: testing..."
echo quoted.m4:24 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode qp..x1 < $at_srcdir/quoted-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0x44, 0x65, 0x61, 0x72, 0x20, 0xDE, 0x6F, 0x72, 0x76, 0x61, 0x72, 0x64,
0x63, 0x6F, 0x6D, 0x70, 0x6C, 0x65, 0x74, 0x65, 0x20, 0x6C, 0x61, 0x73,
0x74, 0x20, 0x6C, 0x69, 0x6E, 0x65
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s47)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 47"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 47"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=47
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "48. $srcdir/quoted.m4:28 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d48(
+# Testing block of lines from Quoted Printable and back
+# Snippet )d48)
# Snippet (s48(
+# starting from `quoted.m4:28'.
+$at_traceon
-# The test group starts at `quoted.m4:28'. An error occurred while
-# testing block of lines from Quoted Printable and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/quoted.m4:39: Testing block of lines from Quoted Printable and back'
+ && echo "$srcdir/quoted.m4:39: testing..."
echo quoted.m4:39 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/quoted-data output
chmod +w output
diff $at_srcdir/quoted-data output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s48)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 48"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 48"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=48
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf output stdout stderr
echo 'Individual charsets.'
echo
-# FIXME: tests for atarist, next, ebcdic, tables, applemac, ibmpc iconqnx,
+# FIXME: tests for atarist, next, ebcdic, tables, applemac, ibmpc, iconqnx,
# cdcnos, bangbang, ascii, flat, html, latex, texinfo, texte and utf16.
# -*- shell-script -*-
echo $at_n " $at_c"
fi
echo $at_n "49. $srcdir/african.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d49(
+# Testing Bambara
+# Snippet )d49)
# Snippet (s49(
-
-# The test group starts at `african.m4:3'. An error occurred while
-# testing Bambara.
+# starting from `african.m4:3'.
+$at_traceon
cat <<'EOF' >example
N ye n ka nsiirin nin da Amadu Tara la. Jamanatigi d=F2 tun b=E8 yen muso
ZGVuIHllLgo=
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:31: Testing Bambara'
+ && echo "$srcdir/african.m4:31: testing..."
echo african.m4:31 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp transcript expout
-recode bambara/qp..t-bambara/64 < example
+recode ../,bambara/qp..t-bambara/64 < example
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:36: Testing Bambara'
+ && echo "$srcdir/african.m4:36: testing..."
echo african.m4:36 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp example expout
-recode t-bambara/64..bambara/qp < transcript
+recode ../,t-bambara/64..bambara/qp < transcript
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s49)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 49"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 49"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=49
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expout example transcript stdout stderr expout
echo $at_n " $at_c"
fi
echo $at_n "50. $srcdir/african.m4:40 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d50(
+# Testing Peul Fulfulde
+# Snippet )d50)
# Snippet (s50(
-
-# The test group starts at `african.m4:40'. An error occurred while
-# testing Peul Fulfulde.
+# starting from `african.m4:40'.
+$at_traceon
cat <<'EOF' >example
Woni =B2on haa =B1ooyi. Oya mar=B2o jiwo kaanaro on maayi. Suka no
LS0gWXVtbWEgbWFra28gbWFyYWEgYltpZFtkW28KZ28/Xm8gc2kgd29uYWEga2Fua28uCg==
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:62: Testing Peul Fulfulde'
+ && echo "$srcdir/african.m4:62: testing..."
echo african.m4:62 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp transcript expout
-recode fulfulde/qp..t-fulfulde/64 < example
+recode ../,fulfulde/qp..t-fulfulde/64 < example
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:67: Testing Peul Fulfulde'
+ && echo "$srcdir/african.m4:67: testing..."
echo african.m4:67 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp example expout
-recode t-fulfulde/64..fulfulde/qp < transcript
+recode ../,t-fulfulde/64..fulfulde/qp < transcript
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s50)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 50"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 50"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=50
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expout example transcript stdout stderr expout
echo $at_n " $at_c"
fi
echo $at_n "51. $srcdir/african.m4:71 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d51(
+# Testing Lingala
+# Snippet )d51)
# Snippet (s51(
-
-# The test group starts at `african.m4:71'. An error occurred while
-# testing Lingala.
+# starting from `african.m4:71'.
+$at_traceon
cat <<'EOF' >example
Mob=E1li m=B6k=B6, azal=E1k=ED s=E9 y=E9m=B6k=B6 n=E1 bil=B6k=F8 m=EDngi.
WycuCg==
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:101: Testing Lingala'
+ && echo "$srcdir/african.m4:101: testing..."
echo african.m4:101 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp transcript expout
-recode lingala/qp..t-lingala/64 < example
+recode ../,lingala/qp..t-lingala/64 < example
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:106: Testing Lingala'
+ && echo "$srcdir/african.m4:106: testing..."
echo african.m4:106 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp example expout
-recode t-lingala/64..lingala/qp < transcript
+recode ../,t-lingala/64..lingala/qp < transcript
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s51)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 51"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 51"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=51
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expout example transcript stdout stderr expout
echo $at_n " $at_c"
fi
echo $at_n "52. $srcdir/african.m4:110 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d52(
+# Testing Sango
+# Snippet )d52)
# Snippet (s52(
-
-# The test group starts at `african.m4:110'. An error occurred while
-# testing Sango.
+# starting from `african.m4:110'.
+$at_traceon
cat <<'EOF' >example
M=E2ley=F6mb=F6 ayeke mb=EAn=EE wakua t=EE let=E4a. Lo yeke zo s=F4 lo y=
IndhIiB0aV4gbG8uCg==
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:134: Testing Sango'
+ && echo "$srcdir/african.m4:134: testing..."
echo african.m4:134 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp transcript expout
-recode sango/qp..t-sango/64 < example
+recode ../,sango/qp..t-sango/64 < example
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:139: Testing Sango'
+ && echo "$srcdir/african.m4:139: testing..."
echo african.m4:139 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp example expout
-recode t-sango/64..sango/qp < transcript
+recode ../,t-sango/64..sango/qp < transcript
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s52)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 52"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 52"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=52
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expout example transcript stdout stderr expout
echo $at_n " $at_c"
fi
echo $at_n "53. $srcdir/african.m4:143 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d53(
+# Testing Wolof
+# Snippet )d53)
# Snippet (s53(
-
-# The test group starts at `african.m4:143'. An error occurred while
-# testing Wolof.
+# starting from `african.m4:143'.
+$at_traceon
cat <<'EOF' >example
Ca 1965 ba leegi, Suwaahili mooy l=E0kk r=E9=E9wum Tansani. L=E0kk woowu
eWkgbl51eSBiaW5kLgo=
EOF
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:162: Testing Wolof'
+ && echo "$srcdir/african.m4:162: testing..."
echo african.m4:162 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp transcript expout
-recode wolof/qp..t-wolof/64 < example
+recode ../,wolof/qp..t-wolof/64 < example
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/african.m4:167: Testing Wolof'
+ && echo "$srcdir/african.m4:167: testing..."
echo african.m4:167 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
cp example expout
-recode t-wolof/64..wolof/qp < transcript
+recode ../,t-wolof/64..wolof/qp < transcript
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
$at_diff expout stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s53)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 53"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 53"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=53
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf expout example transcript stdout stderr expout
echo $at_n " $at_c"
fi
echo $at_n "54. $srcdir/combine.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d54(
+# Testing that combine does not crash
+# Snippet )d54)
# Snippet (s54(
+# starting from `combine.m4:3'.
+$at_traceon
-# The test group starts at `combine.m4:3'. An error occurred while
-# testing that combine does not crash.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/combine.m4:6: Testing that combine does not crash'
+ && echo "$srcdir/combine.m4:6: testing..."
echo combine.m4:6 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode co..l1 < /dev/null
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s54)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 54"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 54"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=54
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "55. $srcdir/debug.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d55(
+# Testing testing and counting
+# Snippet )d55)
# Snippet (s55(
+# starting from `debug.m4:3'.
+$at_traceon
-# The test group starts at `debug.m4:3'. An error occurred while
-# testing testing and counting.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/debug.m4:11: Testing testing and counting'
+ && echo "$srcdir/debug.m4:11: testing..."
echo debug.m4:11 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode test7..x,us..count < /dev/null
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 11 000A LF 117 0020 SP 127 002C , 152 0030 0 24 0031 1
24 0037 7 8 0038 8 8 0039 9 8 0041 A 8 0042 B
8 0043 C 8 0044 D 8 0045 E 8 0046 F 128 0078 x
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/debug.m4:18: Testing testing and counting'
+ && echo "$srcdir/debug.m4:18: testing..."
echo debug.m4:18 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode test8..x,us..count < /dev/null
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 22 000A LF 234 0020 SP 255 002C , 288 0030 0 32 0031 1
32 0037 7 32 0038 8 32 0039 9 32 0041 A 32 0042 B
32 0043 C 32 0044 D 32 0045 E 32 0046 F 256 0078 x
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/debug.m4:26: Testing testing and counting'
+ && echo "$srcdir/debug.m4:26: testing..."
echo debug.m4:26 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode test15..x2,us..count < /dev/null
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 8064 000A LF 56445 0020 SP 64508 002C , 80765 0030 0
16256 0039 9 16256 0041 A 16256 0042 B 16000 0043 C
14975 0044 D 15999 0045 E 15990 0046 F 64509 0078 x
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/debug.m4:34: Testing testing and counting'
+ && echo "$srcdir/debug.m4:34: testing..."
echo debug.m4:34 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode test16..x2,us..count < /dev/null
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n " 8192 000A LF 57344 0020 SP 65535 002C , 81920 0030 0
16384 0039 9 16384 0041 A 16384 0042 B 16384 0043 C
16384 0044 D 16384 0045 E 16384 0046 F 65536 0078 x
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s55)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 55"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 55"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=55
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "56. $srcdir/utf7.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d56(
+# Testing single lines from UTF-7
+# Snippet )d56)
# Snippet (s56(
+# starting from `utf7.m4:3'.
+$at_traceon
-# The test group starts at `utf7.m4:3'. An error occurred while
-# testing single lines from UTF-7.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/utf7.m4:20: Testing single lines from UTF-7'
+ && echo "$srcdir/utf7.m4:20: testing..."
echo utf7.m4:20 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
- echo "$line" | recode u7..u6/x2
+ echo "$line" | recode ../,u7..u6/x2
done < $at_srcdir/utf7-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0xFEFF, 0x000A
0xFEFF, 0x0049, 0x0074, 0x0065, 0x006D, 0x0020, 0x0033, 0x0020,
0x0069, 0x0073, 0x0020, 0x00A3, 0x0031, 0x002E, 0x000A
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s56)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 56"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 56"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=56
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "57. $srcdir/utf7.m4:24 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d57(
+# Testing single lines from UTF-7 and back
+# Snippet )d57)
# Snippet (s57(
+# starting from `utf7.m4:24'.
+$at_traceon
-# The test group starts at `utf7.m4:24'. An error occurred while
-# testing single lines from UTF-7 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/utf7.m4:37: Testing single lines from UTF-7 and back'
+ && echo "$srcdir/utf7.m4:37: testing..."
echo utf7.m4:37 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
while read line; do
echo "$line" > input
done < $at_srcdir/utf7-data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s57)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 57"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 57"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=57
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "58. $srcdir/utf8.m4:3 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d58(
+# Testing block of lines to UTF-8
+# Snippet )d58)
# Snippet (s58(
+# starting from `utf8.m4:3'.
+$at_traceon
-# The test group starts at `utf8.m4:3'. An error occurred while
-# testing block of lines to UTF-8.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/utf8.m4:25: Testing block of lines to UTF-8'
+ && echo "$srcdir/utf8.m4:25: testing..."
echo utf8.m4:25 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
recode l1/qp..u8/x < $at_srcdir/quoted-data
-test $? = 0 || exit 1
-test -n "$at_tracex" && set +x
+at_status=$?
+if test $at_status != 0; then
+ test -n "$at_verbose" && cat stderr >&6
+ exit $at_status
+fi
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
echo $at_n "0x44, 0x65, 0x61, 0x72, 0x20, 0xC3, 0x9E, 0x6F, 0x72, 0x76, 0x61, 0x72,
0xC2, 0xBB, 0x0A, 0x49, 0x6E, 0x63, 0x6F, 0x6D, 0x70, 0x6C, 0x65, 0x74,
0x65, 0x20, 0x6C, 0x61, 0x73, 0x74, 0x20, 0x6C, 0x69, 0x6E, 0x65
$at_c" | $at_diff - stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s58)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 58"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 58"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=58
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "59. $srcdir/utf8.m4:29 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d59(
+# Testing block of lines to UTF-8 and back
+# Snippet )d59)
# Snippet (s59(
+# starting from `utf8.m4:29'.
+$at_traceon
-# The test group starts at `utf8.m4:29'. An error occurred while
-# testing block of lines to UTF-8 and back.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/utf8.m4:41: Testing block of lines to UTF-8 and back'
+ && echo "$srcdir/utf8.m4:41: testing..."
echo utf8.m4:41 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_srcdir/quoted-data input
cp $at_srcdir/quoted-data output
diff input output
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s59)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 59"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 59"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=59
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf input output stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "60. $srcdir/methods.m4:24 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d60(
+# Testing texte:texte through memory while filtering
+# Snippet )d60)
# Snippet (s60(
+# starting from `methods.m4:24'.
+$at_traceon
-# The test group starts at `methods.m4:24'. An error occurred while
-# testing texte:texte through memory while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:24: Testing texte:texte through memory while filtering'
+ && echo "$srcdir/methods.m4:24: testing..."
echo methods.m4:24 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=memory < $at_top_srcdir/COPYING texte..texte \
| recode --quiet --force --sequence=memory texte..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s60)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 60"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 60"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=60
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "61. $srcdir/methods.m4:27 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d61(
+# Testing texte:texte through memory while squashing
+# Snippet )d61)
# Snippet (s61(
+# starting from `methods.m4:27'.
+$at_traceon
-# The test group starts at `methods.m4:27'. An error occurred while
-# testing texte:texte through memory while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:27: Testing texte:texte through memory while squashing'
+ && echo "$srcdir/methods.m4:27: testing..."
echo methods.m4:27 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s61)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 61"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 61"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=61
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "62. $srcdir/methods.m4:30 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d62(
+# Testing texte:texte through files while filtering
+# Snippet )d62)
# Snippet (s62(
+# starting from `methods.m4:30'.
+$at_traceon
-# The test group starts at `methods.m4:30'. An error occurred while
-# testing texte:texte through files while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:30: Testing texte:texte through files while filtering'
+ && echo "$srcdir/methods.m4:30: testing..."
echo methods.m4:30 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=files < $at_top_srcdir/COPYING texte..texte \
| recode --quiet --force --sequence=files texte..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s62)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 62"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 62"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=62
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "63. $srcdir/methods.m4:33 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d63(
+# Testing texte:texte through files while squashing
+# Snippet )d63)
# Snippet (s63(
+# starting from `methods.m4:33'.
+$at_traceon
-# The test group starts at `methods.m4:33'. An error occurred while
-# testing texte:texte through files while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:33: Testing texte:texte through files while squashing'
+ && echo "$srcdir/methods.m4:33: testing..."
echo methods.m4:33 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s63)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 63"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 63"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=63
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "64. $srcdir/methods.m4:36 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d64(
+# Testing texte:texte through pipe while filtering
+# Snippet )d64)
# Snippet (s64(
+# starting from `methods.m4:36'.
+$at_traceon
-# The test group starts at `methods.m4:36'. An error occurred while
-# testing texte:texte through pipe while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:36: Testing texte:texte through pipe while filtering'
+ && echo "$srcdir/methods.m4:36: testing..."
echo methods.m4:36 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=pipe < $at_top_srcdir/COPYING texte..texte \
| recode --quiet --force --sequence=pipe texte..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s64)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 64"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 64"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=64
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "65. $srcdir/methods.m4:39 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d65(
+# Testing texte:texte through pipe while squashing
+# Snippet )d65)
# Snippet (s65(
+# starting from `methods.m4:39'.
+$at_traceon
-# The test group starts at `methods.m4:39'. An error occurred while
-# testing texte:texte through pipe while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:39: Testing texte:texte through pipe while squashing'
+ && echo "$srcdir/methods.m4:39: testing..."
echo methods.m4:39 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s65)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 65"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 65"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=65
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "66. $srcdir/methods.m4:42 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d66(
+# Testing texte:latin1 through memory while filtering
+# Snippet )d66)
# Snippet (s66(
+# starting from `methods.m4:42'.
+$at_traceon
-# The test group starts at `methods.m4:42'. An error occurred while
-# testing texte:latin1 through memory while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:42: Testing texte:latin1 through memory while filtering'
+ && echo "$srcdir/methods.m4:42: testing..."
echo methods.m4:42 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=memory < $at_top_srcdir/COPYING texte..latin1 \
| recode --quiet --force --sequence=memory latin1..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s66)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 66"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 66"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=66
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "67. $srcdir/methods.m4:45 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d67(
+# Testing texte:latin1 through memory while squashing
+# Snippet )d67)
# Snippet (s67(
+# starting from `methods.m4:45'.
+$at_traceon
-# The test group starts at `methods.m4:45'. An error occurred while
-# testing texte:latin1 through memory while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:45: Testing texte:latin1 through memory while squashing'
+ && echo "$srcdir/methods.m4:45: testing..."
echo methods.m4:45 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s67)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 67"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 67"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=67
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "68. $srcdir/methods.m4:48 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d68(
+# Testing texte:latin1 through files while filtering
+# Snippet )d68)
# Snippet (s68(
+# starting from `methods.m4:48'.
+$at_traceon
-# The test group starts at `methods.m4:48'. An error occurred while
-# testing texte:latin1 through files while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:48: Testing texte:latin1 through files while filtering'
+ && echo "$srcdir/methods.m4:48: testing..."
echo methods.m4:48 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=files < $at_top_srcdir/COPYING texte..latin1 \
| recode --quiet --force --sequence=files latin1..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s68)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 68"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 68"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=68
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "69. $srcdir/methods.m4:51 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d69(
+# Testing texte:latin1 through files while squashing
+# Snippet )d69)
# Snippet (s69(
+# starting from `methods.m4:51'.
+$at_traceon
-# The test group starts at `methods.m4:51'. An error occurred while
-# testing texte:latin1 through files while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:51: Testing texte:latin1 through files while squashing'
+ && echo "$srcdir/methods.m4:51: testing..."
echo methods.m4:51 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s69)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 69"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 69"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=69
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "70. $srcdir/methods.m4:54 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d70(
+# Testing texte:latin1 through pipe while filtering
+# Snippet )d70)
# Snippet (s70(
+# starting from `methods.m4:54'.
+$at_traceon
-# The test group starts at `methods.m4:54'. An error occurred while
-# testing texte:latin1 through pipe while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:54: Testing texte:latin1 through pipe while filtering'
+ && echo "$srcdir/methods.m4:54: testing..."
echo methods.m4:54 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=pipe < $at_top_srcdir/COPYING texte..latin1 \
| recode --quiet --force --sequence=pipe latin1..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s70)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 70"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 70"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=70
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "71. $srcdir/methods.m4:57 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d71(
+# Testing texte:latin1 through pipe while squashing
+# Snippet )d71)
# Snippet (s71(
+# starting from `methods.m4:57'.
+$at_traceon
-# The test group starts at `methods.m4:57'. An error occurred while
-# testing texte:latin1 through pipe while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:57: Testing texte:latin1 through pipe while squashing'
+ && echo "$srcdir/methods.m4:57: testing..."
echo methods.m4:57 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s71)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 71"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 71"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=71
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "72. $srcdir/methods.m4:60 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d72(
+# Testing texte:bangbang through memory while filtering
+# Snippet )d72)
# Snippet (s72(
+# starting from `methods.m4:60'.
+$at_traceon
-# The test group starts at `methods.m4:60'. An error occurred while
-# testing texte:bangbang through memory while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:60: Testing texte:bangbang through memory while filtering'
+ && echo "$srcdir/methods.m4:60: testing..."
echo methods.m4:60 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=memory < $at_top_srcdir/COPYING texte..bangbang \
| recode --quiet --force --sequence=memory bangbang..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s72)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 72"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 72"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=72
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "73. $srcdir/methods.m4:63 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d73(
+# Testing texte:bangbang through memory while squashing
+# Snippet )d73)
# Snippet (s73(
+# starting from `methods.m4:63'.
+$at_traceon
-# The test group starts at `methods.m4:63'. An error occurred while
-# testing texte:bangbang through memory while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:63: Testing texte:bangbang through memory while squashing'
+ && echo "$srcdir/methods.m4:63: testing..."
echo methods.m4:63 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s73)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 73"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 73"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=73
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "74. $srcdir/methods.m4:66 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d74(
+# Testing texte:bangbang through files while filtering
+# Snippet )d74)
# Snippet (s74(
+# starting from `methods.m4:66'.
+$at_traceon
-# The test group starts at `methods.m4:66'. An error occurred while
-# testing texte:bangbang through files while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:66: Testing texte:bangbang through files while filtering'
+ && echo "$srcdir/methods.m4:66: testing..."
echo methods.m4:66 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=files < $at_top_srcdir/COPYING texte..bangbang \
| recode --quiet --force --sequence=files bangbang..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s74)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 74"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 74"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=74
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "75. $srcdir/methods.m4:69 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d75(
+# Testing texte:bangbang through files while squashing
+# Snippet )d75)
# Snippet (s75(
+# starting from `methods.m4:69'.
+$at_traceon
-# The test group starts at `methods.m4:69'. An error occurred while
-# testing texte:bangbang through files while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:69: Testing texte:bangbang through files while squashing'
+ && echo "$srcdir/methods.m4:69: testing..."
echo methods.m4:69 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s75)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 75"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 75"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=75
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "76. $srcdir/methods.m4:72 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d76(
+# Testing texte:bangbang through pipe while filtering
+# Snippet )d76)
# Snippet (s76(
+# starting from `methods.m4:72'.
+$at_traceon
-# The test group starts at `methods.m4:72'. An error occurred while
-# testing texte:bangbang through pipe while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:72: Testing texte:bangbang through pipe while filtering'
+ && echo "$srcdir/methods.m4:72: testing..."
echo methods.m4:72 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=pipe < $at_top_srcdir/COPYING texte..bangbang \
| recode --quiet --force --sequence=pipe bangbang..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s76)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 76"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 76"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=76
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "77. $srcdir/methods.m4:75 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d77(
+# Testing texte:bangbang through pipe while squashing
+# Snippet )d77)
# Snippet (s77(
+# starting from `methods.m4:75'.
+$at_traceon
-# The test group starts at `methods.m4:75'. An error occurred while
-# testing texte:bangbang through pipe while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:75: Testing texte:bangbang through pipe while squashing'
+ && echo "$srcdir/methods.m4:75: testing..."
echo methods.m4:75 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s77)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 77"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 77"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=77
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "78. $srcdir/methods.m4:78 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d78(
+# Testing texte:ibmpc through memory while filtering
+# Snippet )d78)
# Snippet (s78(
+# starting from `methods.m4:78'.
+$at_traceon
-# The test group starts at `methods.m4:78'. An error occurred while
-# testing texte:ibmpc through memory while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:78: Testing texte:ibmpc through memory while filtering'
+ && echo "$srcdir/methods.m4:78: testing..."
echo methods.m4:78 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=memory < $at_top_srcdir/COPYING texte..ibmpc \
| recode --quiet --force --sequence=memory ibmpc..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s78)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 78"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 78"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=78
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "79. $srcdir/methods.m4:81 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d79(
+# Testing texte:ibmpc through memory while squashing
+# Snippet )d79)
# Snippet (s79(
+# starting from `methods.m4:81'.
+$at_traceon
-# The test group starts at `methods.m4:81'. An error occurred while
-# testing texte:ibmpc through memory while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:81: Testing texte:ibmpc through memory while squashing'
+ && echo "$srcdir/methods.m4:81: testing..."
echo methods.m4:81 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s79)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 79"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 79"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=79
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "80. $srcdir/methods.m4:84 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d80(
+# Testing texte:ibmpc through files while filtering
+# Snippet )d80)
# Snippet (s80(
+# starting from `methods.m4:84'.
+$at_traceon
-# The test group starts at `methods.m4:84'. An error occurred while
-# testing texte:ibmpc through files while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:84: Testing texte:ibmpc through files while filtering'
+ && echo "$srcdir/methods.m4:84: testing..."
echo methods.m4:84 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=files < $at_top_srcdir/COPYING texte..ibmpc \
| recode --quiet --force --sequence=files ibmpc..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s80)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 80"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 80"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=80
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "81. $srcdir/methods.m4:87 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d81(
+# Testing texte:ibmpc through files while squashing
+# Snippet )d81)
# Snippet (s81(
+# starting from `methods.m4:87'.
+$at_traceon
-# The test group starts at `methods.m4:87'. An error occurred while
-# testing texte:ibmpc through files while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:87: Testing texte:ibmpc through files while squashing'
+ && echo "$srcdir/methods.m4:87: testing..."
echo methods.m4:87 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s81)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 81"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 81"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=81
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "82. $srcdir/methods.m4:90 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d82(
+# Testing texte:ibmpc through pipe while filtering
+# Snippet )d82)
# Snippet (s82(
+# starting from `methods.m4:90'.
+$at_traceon
-# The test group starts at `methods.m4:90'. An error occurred while
-# testing texte:ibmpc through pipe while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:90: Testing texte:ibmpc through pipe while filtering'
+ && echo "$srcdir/methods.m4:90: testing..."
echo methods.m4:90 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=pipe < $at_top_srcdir/COPYING texte..ibmpc \
| recode --quiet --force --sequence=pipe ibmpc..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s82)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 82"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 82"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=82
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "83. $srcdir/methods.m4:93 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d83(
+# Testing texte:ibmpc through pipe while squashing
+# Snippet )d83)
# Snippet (s83(
+# starting from `methods.m4:93'.
+$at_traceon
-# The test group starts at `methods.m4:93'. An error occurred while
-# testing texte:ibmpc through pipe while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:93: Testing texte:ibmpc through pipe while squashing'
+ && echo "$srcdir/methods.m4:93: testing..."
echo methods.m4:93 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s83)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 83"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 83"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=83
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "84. $srcdir/methods.m4:96 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d84(
+# Testing texte:iconqnx through memory while filtering
+# Snippet )d84)
# Snippet (s84(
+# starting from `methods.m4:96'.
+$at_traceon
-# The test group starts at `methods.m4:96'. An error occurred while
-# testing texte:iconqnx through memory while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:96: Testing texte:iconqnx through memory while filtering'
+ && echo "$srcdir/methods.m4:96: testing..."
echo methods.m4:96 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=memory < $at_top_srcdir/COPYING texte..iconqnx \
| recode --quiet --force --sequence=memory iconqnx..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s84)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 84"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 84"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=84
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "85. $srcdir/methods.m4:99 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d85(
+# Testing texte:iconqnx through memory while squashing
+# Snippet )d85)
# Snippet (s85(
+# starting from `methods.m4:99'.
+$at_traceon
-# The test group starts at `methods.m4:99'. An error occurred while
-# testing texte:iconqnx through memory while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:99: Testing texte:iconqnx through memory while squashing'
+ && echo "$srcdir/methods.m4:99: testing..."
echo methods.m4:99 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s85)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 85"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 85"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=85
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "86. $srcdir/methods.m4:102 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d86(
+# Testing texte:iconqnx through files while filtering
+# Snippet )d86)
# Snippet (s86(
+# starting from `methods.m4:102'.
+$at_traceon
-# The test group starts at `methods.m4:102'. An error occurred while
-# testing texte:iconqnx through files while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:102: Testing texte:iconqnx through files while filtering'
+ && echo "$srcdir/methods.m4:102: testing..."
echo methods.m4:102 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=files < $at_top_srcdir/COPYING texte..iconqnx \
| recode --quiet --force --sequence=files iconqnx..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s86)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 86"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 86"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=86
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "87. $srcdir/methods.m4:105 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d87(
+# Testing texte:iconqnx through files while squashing
+# Snippet )d87)
# Snippet (s87(
+# starting from `methods.m4:105'.
+$at_traceon
-# The test group starts at `methods.m4:105'. An error occurred while
-# testing texte:iconqnx through files while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:105: Testing texte:iconqnx through files while squashing'
+ && echo "$srcdir/methods.m4:105: testing..."
echo methods.m4:105 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s87)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 87"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 87"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=87
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "88. $srcdir/methods.m4:108 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d88(
+# Testing texte:iconqnx through pipe while filtering
+# Snippet )d88)
# Snippet (s88(
+# starting from `methods.m4:108'.
+$at_traceon
-# The test group starts at `methods.m4:108'. An error occurred while
-# testing texte:iconqnx through pipe while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:108: Testing texte:iconqnx through pipe while filtering'
+ && echo "$srcdir/methods.m4:108: testing..."
echo methods.m4:108 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=pipe < $at_top_srcdir/COPYING texte..iconqnx \
| recode --quiet --force --sequence=pipe iconqnx..texte > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s88)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 88"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 88"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=88
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "89. $srcdir/methods.m4:111 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d89(
+# Testing texte:iconqnx through pipe while squashing
+# Snippet )d89)
# Snippet (s89(
+# starting from `methods.m4:111'.
+$at_traceon
-# The test group starts at `methods.m4:111'. An error occurred while
-# testing texte:iconqnx through pipe while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:111: Testing texte:iconqnx through pipe while squashing'
+ && echo "$srcdir/methods.m4:111: testing..."
echo methods.m4:111 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s89)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 89"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 89"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=89
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "90. $srcdir/methods.m4:114 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d90(
+# Testing ascii-bs:ebcdic through memory while filtering
+# Snippet )d90)
# Snippet (s90(
+# starting from `methods.m4:114'.
+$at_traceon
-# The test group starts at `methods.m4:114'. An error occurred while
-# testing ascii-bs:ebcdic through memory while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:114: Testing ascii-bs:ebcdic through memory while filtering'
+ && echo "$srcdir/methods.m4:114: testing..."
echo methods.m4:114 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=memory < $at_top_srcdir/COPYING ascii-bs..ebcdic \
| recode --quiet --force --sequence=memory ebcdic..ascii-bs > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s90)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 90"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 90"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=90
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "91. $srcdir/methods.m4:117 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d91(
+# Testing ascii-bs:ebcdic through memory while squashing
+# Snippet )d91)
# Snippet (s91(
+# starting from `methods.m4:117'.
+$at_traceon
-# The test group starts at `methods.m4:117'. An error occurred while
-# testing ascii-bs:ebcdic through memory while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:117: Testing ascii-bs:ebcdic through memory while squashing'
+ && echo "$srcdir/methods.m4:117: testing..."
echo methods.m4:117 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s91)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 91"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 91"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=91
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "92. $srcdir/methods.m4:120 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d92(
+# Testing ascii-bs:ebcdic through files while filtering
+# Snippet )d92)
# Snippet (s92(
+# starting from `methods.m4:120'.
+$at_traceon
-# The test group starts at `methods.m4:120'. An error occurred while
-# testing ascii-bs:ebcdic through files while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:120: Testing ascii-bs:ebcdic through files while filtering'
+ && echo "$srcdir/methods.m4:120: testing..."
echo methods.m4:120 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=files < $at_top_srcdir/COPYING ascii-bs..ebcdic \
| recode --quiet --force --sequence=files ebcdic..ascii-bs > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s92)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 92"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 92"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=92
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "93. $srcdir/methods.m4:123 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d93(
+# Testing ascii-bs:ebcdic through files while squashing
+# Snippet )d93)
# Snippet (s93(
+# starting from `methods.m4:123'.
+$at_traceon
-# The test group starts at `methods.m4:123'. An error occurred while
-# testing ascii-bs:ebcdic through files while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:123: Testing ascii-bs:ebcdic through files while squashing'
+ && echo "$srcdir/methods.m4:123: testing..."
echo methods.m4:123 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s93)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 93"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 93"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=93
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "94. $srcdir/methods.m4:126 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d94(
+# Testing ascii-bs:ebcdic through pipe while filtering
+# Snippet )d94)
# Snippet (s94(
+# starting from `methods.m4:126'.
+$at_traceon
-# The test group starts at `methods.m4:126'. An error occurred while
-# testing ascii-bs:ebcdic through pipe while filtering.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:126: Testing ascii-bs:ebcdic through pipe while filtering'
+ && echo "$srcdir/methods.m4:126: testing..."
echo methods.m4:126 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
recode --quiet --force --sequence=pipe < $at_top_srcdir/COPYING ascii-bs..ebcdic \
| recode --quiet --force --sequence=pipe ebcdic..ascii-bs > data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s94)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 94"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 94"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=94
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
echo $at_n " $at_c"
fi
echo $at_n "95. $srcdir/methods.m4:129 $at_c"
- (
+ if test -z "$at_skip_mode"; then
+ (
+# Snippet (d95(
+# Testing ascii-bs:ebcdic through pipe while squashing
+# Snippet )d95)
# Snippet (s95(
+# starting from `methods.m4:129'.
+$at_traceon
-# The test group starts at `methods.m4:129'. An error occurred while
-# testing ascii-bs:ebcdic through pipe while squashing.
-
+$at_traceoff
test -n "$at_verbose" \
- && echo $srcdir'/methods.m4:129: Testing ascii-bs:ebcdic through pipe while squashing'
+ && echo "$srcdir/methods.m4:129: testing..."
echo methods.m4:129 > at-check-line
test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
-test -n "$at_tracex" && set -x
+$at_traceon
set -e
cp $at_top_srcdir/COPYING data
chmod +w data
diff $at_top_srcdir/COPYING data
set +e
-test -n "$at_tracex" && set +x
+$at_traceoff
if test -z "$at_no_redirs"; then
exec 1>&5 2>&6
- test ! -s stdout || exit 1
- test ! -s stderr || exit 1
+ $at_diff /dev/null stdout || exit 1
+ $at_diff /dev/null stderr || exit 1
fi
+$at_traceon
+$at_traceoff
# Snippet )s95)
- )
- case $? in
- 0) echo ok
- ;;
- 77) echo "ignored near \``cat at-check-line`'"
- at_ignore_count=`expr $at_ignore_count + 1`
- ;;
- *) echo "FAILED near \``cat at-check-line`'"
- at_failed_list="$at_failed_list 95"
- ;;
- esac
+ )
+ case $? in
+ 0) echo ok
+ ;;
+ 77) echo "ignored near \``cat at-check-line`'"
+ at_ignore_count=`expr $at_ignore_count + 1`
+ ;;
+ *) echo "FAILED near \``cat at-check-line`'"
+ at_failed_list="$at_failed_list 95"
+ ;;
+ esac
+ else
+ echo 'ignored (skipped)'
+ at_ignore_count=`expr $at_ignore_count + 1`
+ fi
at_test_count=95
if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
rm -rf data stdout stderr
for at_group in $at_failed_list; do
echo $at_n " $at_group$at_c"
( echo '#!/bin/sh'
- sed -n "/^# Snippet (1/,/^# Snippet )1/p" atconfig
+ sed -n '/^# Snippet (1/,/^# Snippet )1/p' atconfig
test -z "$at_silent" && echo 'at_verbose=1'
- sed -n "/^# Snippet (2/,/^# Snippet )2/p" atconfig
+ sed -n '/^# Snippet (2/,/^# Snippet )2/p' atconfig
sed -n "/^# Snippet (3/,/^# Snippet )3/p" $0
sed -n "/^# Snippet (c$at_group(/,/^# Snippet )c$at_group)/p" $0
- echo 'test -n "$at_verbose" \
- && echo "$0:1: =================================================="'
+ at_desc="`sed -n \
+ '/^# Snippet (d'$at_group'(/,/^# Snippet )d'$at_group')/p' $0 \
+ | sed -n '2s/^# //p'`"
+ echo 'if test -n "$at_verbose"; then'
+ echo ' at_banner="$0: '$at_desc'"'
+ echo ' at_dashes=`echo $at_banner | sed s/./=/g`'
+ echo ' echo'
+ echo ' echo "$at_dashes"'
+ echo ' echo "$at_banner"'
+ echo ' echo "$at_dashes"'
+ echo 'fi'
+ echo
+ sed -n "/^# Snippet (d$at_group(/,/^# Snippet )d$at_group)/p" $0
sed -n "/^# Snippet (s$at_group(/,/^# Snippet )s$at_group)/p" $0
echo 'exit 0'
) | grep -v '^# Snippet' > debug-$at_group.sh
done
echo ', done'
if test -n "$at_stop_on_error"; then
- at_banner="ERROR: One of the tests failed, inhibiting subsequent tests"
+ at_banner='ERROR: One of the tests failed, inhibiting subsequent tests'
else
at_banner="ERROR: Suite unsuccessful, $at_fail_count of $at_test_count tests failed"
fi
if test -n "$at_failed_list"; then
if test -z "$at_silent"; then
echo
- echo "Now, failed tests will be executed again, with more details..."
- echo
+ echo 'When reporting failed tests to maintainers, do not merely list test'
+ echo 'numbers, as the numbering changes between releases and pretests.'
+ echo 'Be careful to give at least all the information you got about them.'
+ echo 'You may investigate any problem if you feel able to do so, in which'
+ echo 'case the generated debugging scripts provide good starting points.'
+ echo "Go on and modify them at will. \`./debug-NN --help' gives usage"
+ echo 'information. Now, failed tests will be executed again, verbosely.'
for at_group in $at_failed_list; do
./debug-$at_group.sh
done
AT_CHECK(
[set -e
while read line; do
- echo "$line" | recode u7..u6/x2
+ echo "$line" | recode ../,u7..u6/x2
done < $at_srcdir/utf7-data
set +e
], ,