
===========================================================================
trans Character Encoding Converter Generator Package     file: readme
===========================================================================

This package is Copyright (C) 1993-1997 by kostis@acm.org (Kosta Kostis)

You may use it free of charge but you may not sell this package.
Should you be interested in using any component of this package in a
commercial package you must contact me first to find terms.

Under MS-DOS one should convert all files from U*IX format to MS-DOS
format. This can be done by adding a CR (0x0D) before each LF (0x0A).

Currently there are 73 different Character Encoding Description Files
supplied with this package, not counting the 13 *.net files, which are
modified Character Encoding Description Files. All but 13 of the above
mentioned files describe 8-bit Character Encodings/Sets.

It covers ISO 646, many IBM Codepages for MS-DOS, Microsoft Windows
Codepages, ISO 8859-x, HP, Adobe, Apple Macintosh, Atari, NeXTSTEP
Character Encodings, a few EBCDIC Encodings, koi8-r and a few more...

Should your favourite Character Encoding be missing, please contribute!

===========================================================================
Where to get updates
===========================================================================

The latest version of this package should be available at:

ftp://ftp.informatik.uni-erlangen.de/pub/doc/ISO/charsets/transXXX.tar.gz

where XXX represents the current version number (113 for V1.13).

A "backup" copy should be available at

http://www.kostis.net/freeware/transXXX.tar.gz

===========================================================================
How to create a Character Encoding Converter
===========================================================================

To create translators, compile and link the file "transtab.c" in the
directory "./trans113/". Move the executable into a directory, that is
contained in your command search path.

Example:

	MS-DOS (Borland C++)

	    Make -f makefile.bcc
	    REM if you have \bin in your PATH
	    COPY transtab.exe \bin

	    Please note that there seems to be some trouble to compile
	    transiso.c and checkiso.c with Borland C++ 3.1

	MS-DOS (Microsoft C)

	    NMake -f makefile.msc
	    REM if you have \bin in your PATH
	    COPY *.exe \bin

	U*IX (e. g. Linux)

	    #
	    # if you use gcc
	    #
	    make

        The U*IX Makefile offers lots of option which you may want to use:

            make clean           # this deletes objects and executables
            make install         # this copies executables to /usr/local/bin

            make xclean          # delete xlt binary tables
            make bintab          # create xlt binary tables

            make date            # is for my personal use only ;)
            make pack            # is for my personal use only ;) 

	SunOS using gcc seems to require

	    make COPTS='-DFILENAME_MAX=200 -DNO_STRUPR -O6'

After that, please change your working directory to the "./trans113/bin"
directory. There you will find files called "*" for U*IX and "*.bat"
for MS-DOS. This package is now being maintained under Linux.

Please set an enviroment variable TRANS that points to the directory
where all the program sources reside including the trailing directory
separator character (e. g. TRANS="/home/src/trans113/").
It makes life much easier and you can create your programmes and
tables completely independend from the source tree. All Character
Encoding Description Files then have to reside in the cedf subdir.

To test the translator generator, type

        one

This should generate two translators between ISO 8859-1 and Network
IBM Codepage 850. Each translator consists of three files (e.g.):

        isox850.c                       the main program
        isox850.h                       the header file
        isox850.tab                     the translation table file

Each translator will #include the files

        trans.c                         the main invariant program
and     trans.h                         the main invariant header file

Please do not delete them and keep the files in the same directory!

You should be able to compile and link isox850.c and 850xiso.c easily.

Read transtab.man to learn more about the syntax for transtab.
Have a look at maketabs.bat or maketabs.sh respectively to get an
inspiration for program names. Please do not create program names longer
than eight characters to maintain "backward" compatibility to MS-DOS.

This package is written in ANSI-C using the two non-ANSI functions
strdup () and strupr (). Sources for these functions are supplied should
your compiler/library not contain the functions. Should you encounter any
problems while trying to compile this package, your compiler is very likely
not ANSI-C compliant. Should your compiler be ANSI-C compliant and still
report warnings and/or errors, please let me know. I'll need the following
data to help you:

	Version of this package (e. g. V1.13)
	Operating System and Version
	Compiler name and Version
	Compiler options used (if any)

===========================================================================
Directory tree for this package
===========================================================================

The directory tree for this utility should look like this:

./trans113/              contains the translation table generator source

           README               this file

           Makefile             sample makefile for U*IX using gcc
           makefile.bcc         makefile for Borland C++ (MS-DOS)
           makefile.msc         makefile for Microsoft C (MS-DOS)

           comptran.c           compute translation table and output
           comptran.h           header file for comptran.c
           datatype.h           handy data types
           head_c.h             generic translator main program
           head_h.h             generic translator header file
           head_tab.h           generic translator table file header
           loadtab.c            read xlt binary table
           loadtab.h            header file for loadtab.c
           os-stuff.h           OS/compiler dependent definitions
           readtab.c            read character encoding description file
           readtab.h            header file for readtab.c
           scanflag.c           parse program parameters and flags
           scanflag.h           header file for scanflag.c
           strdup.c             in case your compiler doesn't have it
           strdup.h             header file for strdup.c
           strupr.c             in case your compiler doesn't have it
           strupr.h             header file for strupr.c

           tab.h                table constants
           taberr.h             transtab error codes and messages

           checkiso.c           checks character encoding description names
           checkiso.h           header file for above program
           checkiso.man         man page for above program

           transiso.c           translator generator to ISO 10646 main program
           transiso.h           header file for above program
           transiso.man         man page for above program

           transtab.c           translator generator main program
           transtab.h           header file for above program
           transtab.man         man page for above program

           transce8.c           translator program (8-bit) main program
           transce8.h           header file for above program
           transce8.man         man page for above program

           transhtm.c           program that displays HTML tables
           transhtm.h           header file for above program
           transhtm.man         man page for above program

           checkall.bat         check all tables (MS-DOS)
           checkall             check all tables (U*IX)
           iso.bat              create one table to ISO 10646 (MS-DOS)
           iso                  create one table to ISO 10646 (U*IX)
           makelist             create list of all tables (U*IX)
           one.bat              create one table (MS-DOS)
           one                  create one table (U*IX)

           encoding.lis         list of Character Encoding Description Files
           error.log            output created by checkall

./trans113/bin/         contains the translator main program (independent
                        part) and a few scripts to create translators

               check.bat        compile two programs and test them (MS-DOS)
               check            compile two programs and test them (U*IX)
               compile.bat      compile one program (MS-DOS)
               compile          compile one program (U*IX)
               makeall.bat      compile all programs (MS-DOS)
               makeall          compile all programs (U*IX)
               maketabs.bat     create many translator sources (MS-DOS) 
               maketabs         create many translator sources (U*IX)
               one.bat          create one translator (MS-DOS)
               one              create one translator (U*IX)
               trans.c          invariant main translator program
               trans.h          invariant main translator header file

./trans113/doc/         contains information about the description files
                        (*.inf) and other more general information
              
               adobe.inf        Adobe Character Encoding Vector information
               apple.inf        Apple Macintosh information
               atari.inf        Atari ST/TT information
               cpdos.inf        MS-DOS/IBM Codepage information
               cpwin.inf        Microsoft Windows Codepage information
               dec.inf          DEC information
               ebcdic.inf       EBCDIC information
               hp.inf           HP (Hewlett-Packard) information
               iso10646.inf     ISO 10646 information
               iso646.inf       ISO 646.* information
               iso8859.inf      ISO 8859-x information
               nextstep.inf     NeXT information
               other.inf        other character encodings (non-"standard")
               winother.inf     Microsoft Windows (more Encodings)

               credits          credits to contributors
               format           Character Encoding Description File Format
               history          how things have developed
               network          read this for the use in Usenet-software
               sources          sources of information
               todo             things not yet done

               iso10646         ISO 10646 character table (sorted by names)

./trans113/cedf/        contains Character Encoding Description Files

                  adobeiso      Adobe ISOLatin1Encoding Encoding Vector
                  adobestd      Adobe StandardEncoding Encoding Vector
                  adobesym      Adobe Symbol Encoding Vector

                  applecro      Apple Macintosh Croatian
                  applegk2      Apple ][ Greek extended for Macintosh
                  applegrk      Apple Macintosh Greek
                  appleice      Apple Macintosh Icelandic
                  applerom      Apple Macintosh Roman
                  applerum      Apple Macintosh Romanian
                  appletur      Apple Macintosh Turkish

                  atarist       Atari ST/TT

                  cp1250        Microsoft Windows Codepage 1250 (EE)
                  cp1251        Microsoft Windows Codepage 1251 (Cyrl)
                  cp1252        Microsoft Windows Codepage 1252 (ANSI)
                  cp1253        Microsoft Windows Codepage 1253 (Greek)
                  cp1254        Microsoft Windows Codepage 1254 (Turk)
                  cp1255        Microsoft Windows Codepage 1255 (Hebr)
                  cp1256        Microsoft Windows Codepage 1256 (Arab)

                  mslinedr      Microsoft Windows MS LineDraw
                  symbol        Microsoft Windows Symbol Encoding Vector
                  wingding      Microsoft Windows Wingdings Encoding Vector

                  cp437         IBM Codepage 437 (US)
                  cp737         IBM Codepage 737 (Greek defacto Standard)
                  cp850         IBM Codepage 850 (Multilingual Latin 1)
                  cp851         IBM Codepage 851 (Greece) - obsolete
                  cp852         IBM Codepage 852 (Multilingual Latin 2)
                  cp853         IBM Codepage 853 (Multilingual Latin 3)
                  cp855         IBM Codepage 855 (Russia) - obsolete
                  cp857         IBM Codepage 857 (Multilingual Latin 5)
                  cp860         IBM Codepage 860 (Portugal)
                  cp861         IBM Codepage 861 (Iceland)
                  cp862         IBM Codepage 862 (Israel)
                  cp863         IBM Codepage 863 (Canada (French))
                  cp864         IBM Codepage 864 (Arabic)
                  cp865         IBM Codepage 865 (Norway)
                  cp866         IBM Codepage 866 (Russia)
                  cp869         IBM Codepage 869 (Greece)
                  cp895         IBM Codepage 895 (Czech Kamenicky)

                  decmcs        DEC Multinational Character Set (DEC MCS)

                  ebc037        EBCDIC Codepage 037
                  ebc875        EBCDIC Codepage 875 (Greek)
                  ebc1047       EBCDIC Codepage 1047

                  hp48          HP 48 Character Set
                  hproman8      HP Roman-8

                  iso646.ca     ISO 646 (French Canadian)
                  iso646.ch     ISO 646 (Swiss)
                  iso646.de     ISO 646 (German)
                  iso646.es     ISO 646 (Spanish)
                  iso646.fi     ISO 646 (Finnish)
                  iso646.fr     ISO 646 (French)
                  iso646.gb     ISO 646 (United Kingdom)
                  iso646.irv    ISO 646 (International Reference Version)
                  iso646.it     ISO 646 (Italian)
                  iso646.nl     ISO 646 (Dutch)
                  iso646.no     ISO 646 (Norwegian/Danish)
                  iso646.pt     ISO 646 (Portuguese)
                  iso646.se     ISO 646 (Swedish)

                  iso8859.1     ISO 8859-1  (Latin 1)
                  iso8859.2     ISO 8859-2  (Latin 2)
                  iso8859.3     ISO 8859-3  (Latin 3)
                  iso8859.4     ISO 8859-4  (Latin 4)
                  iso8859.5     ISO 8859-5  (Latin/Cyrillic)
                  iso8859.6     ISO 8859-6  (Latin/Arabic)
                  iso8859.7     ISO 8859-7  (Latin/Greek)
                  iso8859.8     ISO 8859-8  (Latin/Hebrew)
                  iso8859.9     ISO 8859-9  (Latin 5)
                  iso8859.10    ISO 8859-10 (Latin 6)

                  cyrilbas      Cyrillic Basic TT Font for Microsoft Windows
                  koi8-r        Cyrillic encoding as defined in RFC-1489

                  nextstep.enc  NeXTSTEP Encoding Vector

                  tex-dcr.in    TeX dcr input
                  tex-dcr.out   TeX dcr output

                  wingreek      WinGreek (Non-Std. Encoding TT Font)

                  applerom.net  Network Apple Macintosh Roman
                  cp1252.net    Network Microsoft Windows Codepage 1252
                  cp850.net     Network IBM Codepage 850
                  cp852.net     Network IBM Codepage 852
                  cp853.net     Network IBM Codepage 853
                  cp857.net     Network IBM Codepage 857
                  cp866.net     Network IBM Codepage 866
                  cp869.net     Network IBM Codepage 866
                  ebc875.net    Network EBCDIC Codepage 875 (Greek)
                  ebc1047.net   Network EBCDIC Codepage 1047
                  hproman8.net  Network HP Roman-8
                  koi8-r.net    Network koi8-r (Cyrillic)
                  nextstep.net  Network NeXTSTEP Encoding Vector

                  template      template file for description files

./trans113/xlt           contains conversion tables (default is little endian)

                  all files mentioned in ./trans113/cedf should be here, too

Should you not have a "little endian" CPU (Intel i386/i486/Pentium and
many other brands), please delete the files contained in this directory.
After that please run "mkbintab" to create the very same tables using
your native byte order.
