doc/help localization changes
authorJon Trulson <jon@radscan.com>
Tue, 19 Jun 2012 04:01:02 +0000 (22:01 -0600)
committerJon Trulson <jon@radscan.com>
Tue, 19 Jun 2012 04:01:02 +0000 (22:01 -0600)
- by default, do not build any other locale than C for now
- do not try to build the guides.  These require functioning
  dtinfo/docbook
- add a Linux.lcx locale translation db.  Not used yet.
- fix some overflows in dtdocbook/instant

cde/config/cf/site.def
cde/doc/C/Imakefile
cde/doc/de_DE.ISO8859-1/Imakefile
cde/doc/es_ES.ISO8859-1/Imakefile
cde/doc/fr_FR.ISO8859-1/Imakefile
cde/doc/it_IT.ISO8859-1/Imakefile
cde/doc/ja_JP.dt-eucJP/Imakefile
cde/lib/DtHelp/Imakefile
cde/lib/DtHelp/Linux.lcx [new file with mode: 0644]
cde/programs/dtdocbook/instant/main.c

index da2184c1ab3e961e03da8ece2250c3aec2e473c0..58daccc4f6fa13c97569082dfe0a57066a456014 100644 (file)
@@ -77,6 +77,11 @@ XCOMM site:  $TOG: site.def /main/23 1998/03/19 18:43:26 mgreess $
 # define DtLocalesToBuild ja_JP.dt-eucJP
 #endif
 
+XCOMM No locales other than C will build at this time.
+#ifdef LinuxArchitecture
+# define DtLocalesToBuild 
+#endif
+
 #ifdef SunArchitecture
 #define HasCodeCenter        YES
 #define HasTestCenter        YES
index 14cf2059005f7b2247c57aceb2a7f1e8e648defd..ff8e50c7e04afeb21c942455d0475ec99dae586b 100644 (file)
@@ -3,8 +3,14 @@ XCOMM $XConsortium: Imakefile /main/10 1996/07/23 22:00:00 rws $
 #define PassCDebugFlags
 
 /* due to split-VOB setup, force help to come last in make Makefiles */
+#if defined(LinuxArchitecture)
+XCOMM we cannot build guides on linux yet
+SUBDIRS = man help
+BSUBDIRS = help man 
+#else
 SUBDIRS = man guides m-guides help
 BSUBDIRS = help man guides m-guides
+#endif
 
 XCOMM work around local clearcase vobs setup
 MakeDirectories(all,help-sdl cde.dti)
index ce3fa4c5e87c6ba7fc14ec4857bef9df6aebf32d..ae55087a778b5ee3b4d39ec135f38d3a5df5f86f 100644 (file)
@@ -2,7 +2,12 @@ XCOMM $XConsortium: Imakefile /main/3 1996/06/19 16:19:59 drk $
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+#if defined(LinuxArchitecture)
+XCOMM we cannot build guides on linux yet
+SUBDIRS = help 
+#else
 SUBDIRS = help guides
+#endif
 
 MakeSubdirs($(SUBDIRS))
 
index 9f8d2ecd9315b439ed80977a1183e10528a134f1..0e8214c3ed9792a251fe3906c2c897f8cde83825 100644 (file)
@@ -2,7 +2,12 @@ XCOMM $XConsortium: Imakefile /main/3 1996/06/19 16:32:32 drk $
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+#if defined(LinuxArchitecture)
+XCOMM we cannot build guides on linux yet
+SUBDIRS = help 
+#else
 SUBDIRS = help guides
+#endif
 
 MakeSubdirs($(SUBDIRS))
 
index 63d5844d7418f592b809f0fbfd06164a06930268..4f47a4bfe3f70bfa0eb0c4ac4e1833df81aeefc7 100644 (file)
@@ -2,7 +2,12 @@ XCOMM $XConsortium: Imakefile /main/3 1996/06/19 16:43:05 drk $
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+#if defined(LinuxArchitecture)
+XCOMM we cannot build guides on linux yet
+SUBDIRS = help 
+#else
 SUBDIRS = help guides
+#endif
 
 MakeSubdirs($(SUBDIRS))
 
index 8c855f98a010eea1e65364f4f841f86813b71e1a..dbec9bb1d5dcbe1bdfd31876fd6a614266912687 100644 (file)
@@ -2,7 +2,12 @@ XCOMM $XConsortium: Imakefile /main/3 1996/06/19 16:53:57 drk $
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+#if defined(LinuxArchitecture)
+XCOMM we cannot build guides on linux yet
+SUBDIRS = help 
+#else
 SUBDIRS = help guides
+#endif
 
 MakeSubdirs($(SUBDIRS))
 
index b8ee3b7096af7405cad9e64f9d8849c4710e39ec..742811e2e8c5053a965faea2025554bb43919608 100644 (file)
@@ -3,9 +3,14 @@ XCOMM $TOG: Imakefile /main/5 1997/03/05 11:10:37 damon $
 #define PassCDebugFlags
 
 /* due to split-VOB setup, force help to come last in make Makefiles */
+#if defined(LinuxArchitecture)
+XCOMM we cannot build guides on linux yet
+SUBDIRS = help
+BSUBDIRS = help 
+#else
 SUBDIRS = guides m-guides help
 BSUBDIRS = help guides m-guides
-
+#endif
 XCOMM work around local clearcase vobs setup
 MakeDirectories(all,help-sdl cde.dti)
 
index a15cb8cb344fc0aa7b9b53370a10362633c157b7..89fe15c5c9e6f001dbdda4ef897274bdfdec71ce 100644 (file)
@@ -162,7 +162,7 @@ SpecialLibObjectRule(Canvas.o,,+O1)
 #endif
 
 
-LCX_FILES = AIX.lcx CDE.lcx HP-UX.lcx SunOS.lcx
+LCX_FILES = AIX.lcx CDE.lcx HP-UX.lcx SunOS.lcx Linux.lcx
 LCX_DEST = misc/dtlcx
 InstallMultiple($(LCX_FILES),$(LCX_DEST))
 
diff --git a/cde/lib/DtHelp/Linux.lcx b/cde/lib/DtHelp/Linux.lcx
new file mode 100644 (file)
index 0000000..77173c4
--- /dev/null
@@ -0,0 +1,571 @@
+@!!!!!!!!!!!!!! Linux Locale-Related Translations !!!!!!!!!!!!!!
+! File:                        Linux.lcx
+! Default location:    /usr/dt/config/svc/Linux.lcx
+! Purpose:
+!    Define the Linux-specific set of locale-related translations.
+! Description:
+!    This file contains the set of all locale-related translations
+!    that  can occur during _DtLcxXlateOpToStd() and _DtLcxStdToOp()
+!    calls on Linux platforms. Note that platform-specific tables may
+!    include more than one translation to and from CDE standard
+!    strings if they can be distinguished by version, operation, or
+!    pattern matching.
+!
+!    It is important that additional CDE standard strings only
+!    be created by the CDE owner of the _DtLcx translation service
+!    and NOT be created by an individual vendor or user.  This be because
+!    the purpose of adopting a set of CDE standard strings is to 
+!    support interoperability across platforms.  If individual vendors 
+!    add their own "standard" strings and these strings are not
+!    known on other platforms, then the goal of interoperability
+!    will be defeated.
+!
+!    If you feel that a new CDE standard string is needed,
+!    contact your CDE representative/vendor with a specific
+!    proposal and justification and have them forward it to
+!    the owner of the CDE _DtLcx service.
+!
+!    Note that it is allowed for vendors and users to add new
+!    operations for which translations are specified and which
+!    utilize the standard strings.  If the operations are of
+!    general utility, please bring them to the attention of
+!    your CDE representative/vendor for forwarding to the
+!    _DtLcx owner.
+! Invoked by:
+!    This table is used by the _DtLcx translation service
+! Defects:
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+!!!!!!!!!!!!!!!! translation specification syntax !!!!!!!!!!!!!!!!!!!
+! Introductory fields:
+! ====================
+! The _DtLcx translation specifications have a fixed number of
+! introductory fields followed by a several standard value
+! fields and the operation-specific value.
+! The introductory fields are:
+!  <platform>.<version range>.<operation(s)>.<kind>
+!
+! Platform generally is the same string as uname(1) -s.
+! Version range utilizes normalized version numbers that 
+!   are acquired using the 'version' translations.
+! Operations are one or more comma-separated strings that
+!   uniquely identify the operation associated with the
+!   operation-specific value.  This string is specified
+!   as part of the request for a translation.
+!
+! Kinds of translations allow the mechanism to support several modes
+!   of operation, each useful for different purposes.  When
+!   reading or writing a specification, pay particular attention
+!   to the kind of specification, as this guides the usage of it.
+!
+! Specification kinds:
+!  .=. means a valid bi-directional translation requiring the op-value 
+!      in the translation specification to exactly match the op-value of 
+!      the call to _DtLcxXlateOpToStd(), e.g. foo matches only foo
+!  .~. means a valid bi-directional translation requiring the op-value 
+!      in the translation specification to match the beginning of the
+!      op-value of the call to _DtLcxXlateOpToStd(), e.g. foo matches 
+!      foo@@bar.  This is often useful, e.g. for operation-specific
+!      locale strings that may also contain modifier suffixes.
+!  .>. means only from standard to op-specific (generally a 
+!      compatibility translation, meaning on op-specific value 
+!      that will work for the standard, although that is not 
+!      the straight mapping)
+!  .<. means only from op-specific to standard (generally a
+!      regex in the op-value which is used to map a class of
+!      op values to a standard value)
+!  .0. means that translation is not supported and if a translation
+!      request matches the specification, the request will fail.
+!
+! Standard values:
+! ================
+! _DtLcx defines the order of the standard values in the
+! translations it utilizes.  All translation specifications
+! must adhere to this order.
+!    <std lang_terr>.<std codeset>.<std modifier>
+! In CDE 1.0, no modifiers are standard and that
+! portion of the table is unspecified.  This means
+! that no CDE standard modifiers are available across
+! platforms.  Operations that use only the <std codeset>
+! should specify the wildcard character ("?") for the 
+! <std lang_terr> value.
+!
+! Operation-specific value:
+! =========================
+! The operation-specific value is a string that is used
+! according to the kind of translation.  The syntax is
+!      : <op-string>
+! or   :  "<op-string>", if it contains white space
+!
+! Filling in the table of translations:
+! =====================================
+! The person preparing the translation table should know 
+! the minimum version of the target platform that is
+! be supported.  For example, assume that we must
+! complete the table for all versions 9.00 and higher.
+! 
+! The objective is then to provide two sets of translations:
+! a full set of translations from CDE standard locales to
+! valid platform locales, and a full set of translations
+! from valid platform locales to some or all CDE standard
+! locales.  
+! 
+! Translations from CDE standard locales to valid platform
+! locales must use the .~. .=. or .>. mappings.  When there 
+! is a 1:1 mapping between a CDE locale and a platform locale, 
+! use the .~. or .=. mapping.  See the comment below to 
+! decide which to use.  When there is no 1:1 mapping between 
+! CDE locale and platform locale, use the .>. mapping.  This 
+! provides a valid translation from the CDE locale to the 
+! best-suitable platform locale, but never translates from 
+! that platform locale to the CDE locale.
+! 
+! Translations from every platform locale to the appropriate 
+! CDE locale must use the .~. .=. or .<. mappings.
+! When there is a 1:1 mapping between a platform locale and
+! a CDE standard locale, use the .~. or .=. mapping.  See the
+! comment below to decide which to use.  If there is a 1:1
+! mapping, but the platform locale pattern uses a regular
+! expression, or if more than one platform locale can 
+! be translated to one CDE standard locale, the .<. mapping must 
+! be used.  
+! 
+! If no appropriate CDE standard locale can be found, you have 
+! identified the need for a new CDE standard locale.  Refer to 
+! the instructions at the head of this file for how to go about 
+! registering a new CDE standard locale.  You should not create 
+! a new "standard" locale (the left hand side of the translation 
+! specification) without registering it with CDE, because this 
+! will hinder the free exchange of information across locales 
+! and platforms.
+! 
+! The .=. and .~. mappings are similar.  The difference is
+! that the .=. mapping requires an exact string match between
+! the platform locale and the string provided to the
+! translation routine.  Generally speaking, this mapping
+! is risky unless exact matchings can be guaranteed in
+! all DtLcx clients for the particular operation in question.
+! The .~. mapping is to be preferred, but the .=. translation
+! is useful in limited situations, where similar strings may
+! occur.
+! 
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+! define this resource to dump debug/test info
+!*debugDtXlate:  True
+
+!!!!!!!!!!!!!!!! Linux Version Identificaton !!!!!!!!!!!!!!!!!
+! These translations are used by the _DtXlateGetXlateEnv()
+! call to determine the version number to use.
+!
+! To understand the translation, realize that the
+! operation-specific regexp(5) pattern on the right
+! hand side is matched against the strings returned
+! by uname(2).  The best match determines the "normalized"
+! version number of the platform, which should range from 
+! 001 and up.  By convention, major release numbers
+! map to centuries and minor release numbers to within
+! the century.
+!
+! To determine the string that the regular expression on the
+! right hand side is matching against, use uname(1) and run
+! 'uname -r' and 'uname -v' and note the strings.  During execution,
+! the strings returned by this command are retrieved and
+! concatenated "rv"--in that order, no extra spaces.
+! This is the string that the pattern must match.
+!
+! Sometimes this string may not be intuitive.  For example,
+! note that Linux 3.2 returns 2 for 'uname -r' and 3 for 'uname -v'.
+! So the pattern string must be 23, not 32.  Do not go by
+! the order of 'uname -rv' or 'uname -vr', as that is not used.
+!!
+
+Linux.?.version.<.100:  ".*"       !! any CDE value
+
+
+!!!!!!!!!!!!!!!! Linux-specific setlocale translations !!!!!!!!!!!!!!!!!!!
+! These translations are for the string returned by the
+! getlocale() or setlocale(LC_xxx,NULL) operations, but not
+! setlocale(LC_ALL,NULL) operation.
+!
+! It provides translations from Linux operation-specific
+! to CDE standard strings and back again.
+!
+! Some language,territory combinations have the following comments:
+!  (1) These ISO territory names may be subject to change
+!      However, their CDE names will continue to be supported
+!  (2) No ISO "territory" name exists for the Arabic-speaking regions of the
+!      world as a whole.  Vendors have sometimes supplied their own.
+!      Those names, when conformant to the ISO model, will be adopted for CDE.
+!
+!Platform Operation Lang_Terr           Op-Value               Language,Territory           Who has
+!---     ---------   -----             --------                ------------------           -------
+!   Version      Kind      Codeset
+!   ----           -       ---------
+
+
+! setlocales Compliance
+Linux.100+.setlocale.~.C.IBM-850:       C                         ! setlocales compliance           ,IBM
+Linux.100+.setlocale.~.POSIX.IBM-850:   POSIX                     ! setlocales compliance           ,IBM
+Linux.100+.setlocale.~.C.ISO-8859-1:       C                      ! setlocales compliance           ,IBM, HP, Sun       , USL
+Linux.100+.setlocale.~.POSIX.ISO-8859-1:   POSIX                  ! setlocales compliance           ,IBM, HP, Sun       , USL
+
+! W European/Americas, Latin 1 codeset
+Linux.100+.setlocale.~.da_DK.ISO-8859-1:       da_DK !.ISO8859-1         ! Danish, Denmark            XoJIG,IBM, HP,           , USL ("da")
+Linux.100+.setlocale.>.de_AT.ISO-8859-1:       de_DE !.ISO8859-1         ! German,Austria             XoJIG,   ,   ,           , USL        
+Linux.100+.setlocale.~.de_CH.ISO-8859-1:       de_CH !.ISO8859-1         ! German,Switzerland         XoJIG,IBM,   ,           , USL        
+Linux.100+.setlocale.~.de_DE.ISO-8859-1:       de_DE !.ISO8859-1         ! German, Germany            XoJIG,IBM, HP, Sun ("de"), USL ("de")
+Linux.100+.setlocale.>.en_AU.ISO-8859-1:       en_GB !.ISO8859-1         ! English,Australia               ,   ,   ,           , USL
+Linux.100+.setlocale.>.en_CA.ISO-8859-1:       en_US !.ISO8859-1         ! English,Canada             XoJIG,   ,   ,           , USL        
+Linux.100+.setlocale.>.en_DK.ISO-8859-1:       en_GB !.ISO8859-1         ! English, Denmark           XoJIG,   ,   ,           , USL        
+Linux.100+.setlocale.~.en_GB.ISO-8859-1:       en_GB !.ISO8859-1         ! English, U.K.              XoJIG,IBM, HP,           , USL ("en")
+Linux.100+.setlocale.>.en_JP.ISO-8859-1:       en_JP !.ISO8859-1         ! English, Japan             XoJIG,IBM,   ,           , 
+Linux.100+.setlocale.>.en_JP.ISO-8859-1:       en_US !.ISO8859-1         ! English, Japan             XoJIG,IBM,   ,           , 
+Linux.100+.setlocale.>.en_IE.ISO-8859-1:       en_GB !.ISO8859-1         ! English, Ireland           XoJIG,   ,   ,           , USL        
+Linux.100+.setlocale.>.en_MY.ISO-8859-1:       en_US !.ISO8859-1         ! English,Malaysia                ,   ,   ,           , USL        
+Linux.100+.setlocale.>.en_NZ.ISO-8859-1:       en_GB !.ISO8859-1         ! English,New Zealand             ,   ,   ,           , USL
+Linux.100+.setlocale.>.en_KR.ISO-8859-1:       en_KR !.ISO8859-1         ! English,Korea                   ,   ,   ,           , USL
+Linux.100+.setlocale.>.en_KR.ISO-8859-1:       en_US !.ISO8859-1         ! English,Korea                   ,IBM,   ,           , 
+Linux.100+.setlocale.>.en_TW.ISO-8859-1:       en_TW !.ISO8859-1         ! English,Taiwan                  ,   ,   ,           , USL
+Linux.100+.setlocale.>.en_TW.ISO-8859-1:       en_US !.ISO8859-1         ! English,Taiwan                  ,IBM,   ,           , 
+Linux.100+.setlocale.~.en_US.ISO-8859-1:       en_US !.ISO8859-1         ! English, USA               XoJIG,IBM, HP, Sun       , USL
+Linux.100+.setlocale.>.es_AR.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Argentina              ,   ,   , Sun       , USL
+Linux.100+.setlocale.>.es_BO.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Bolivia                ,   ,   , Sun
+Linux.100+.setlocale.>.es_CL.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Chile                  ,   ,   , Sun       , USL
+Linux.100+.setlocale.>.es_CO.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Columbia               ,   ,   , Sun
+Linux.100+.setlocale.>.es_CR.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Costa Rica             ,   ,   , Sun
+Linux.100+.setlocale.>.es_EC.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Ecuador                ,   ,   , Sun
+Linux.100+.setlocale.~.es_ES.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Spain             XoJIG,IBM, HP, Sun       , USL
+Linux.100+.setlocale.~.ca_ES.ISO-8859-1:       ca_ES !.ISO8859-1         ! Catalan, Spain             XoJIG,IBM, HP, Sun       , USL
+Linux.100+.setlocale.>.es_GT.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Guatemala              ,   ,   , Sun
+Linux.100+.setlocale.>.es_MX.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Mexico                 ,   ,   , Sun       , USL
+Linux.100+.setlocale.>.es_PE.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Peru                   ,   ,   , Sun
+Linux.100+.setlocale.>.es_UY.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Uruguay                ,   ,   , Sun
+Linux.100+.setlocale.>.es_VE.ISO-8859-1:       es_ES !.ISO8859-1         ! Spanish, Venezuela              ,   ,   , Sun       , USL
+! Linux.100+.setlocale.>.et_EE.ISO-8859-1:                    ! Estonian, Estonia          XoJIG, 
+Linux.100+.setlocale.~.fi_FI.ISO-8859-1:       fi_FI !.ISO8859-1              ! Finnish, Finland           XoJIG,IBM, HP,           , USL ("fi")
+! Linux.100+.setlocale.>.fo_FO.ISO-8859-1:                    ! Faroese, Faeroe Island     XoJIG,
+Linux.100+.setlocale.~.fr_BE.ISO-8859-1:       fr_BE !.ISO8859-1         ! French,Belgium             XoJIG,   ,   ,           , USL        
+Linux.100+.setlocale.~.fr_CA.ISO-8859-1:       fr_CA !.ISO8859-1         ! French, Canada             XoJIG,IBM, HP,           , USL
+Linux.100+.setlocale.~.fr_CH.ISO-8859-1:       fr_CH !.ISO8859-1         ! French, Switzerland        XoJIG,IBM,   ,           , USL
+Linux.100+.setlocale.~.fr_FR.ISO-8859-1:       fr_FR !.ISO8859-1         ! French, France             XoJIG,IBM, HP, Sun ("fr"), USL ("fr")
+Linux.100+.setlocale.~.is_IS.ISO-8859-1:       is_IS !.ISO8859-1         ! Icelandic, Iceland         XoJIG,IBM, HP,           , USL ("is")
+Linux.100+.setlocale.>.it_CH.ISO-8859-1:       it_IT !.ISO8859-1         ! Italian,Switzerland             ,   ,   ,           , USL        
+Linux.100+.setlocale.~.it_IT.ISO-8859-1:       it_IT !.ISO8859-1         ! Italian, Italy             XoJIG,IBM, HP, Sun ("it"), USL ("it")
+! Linux.100+.setlocale.>.kl_GL.ISO-8859-1:                    ! Greenlandic, Greenland     XoJIG,
+! Linux.100+.setlocale.>.lt_LT.ISO-8859-1:                    ! Lithuanian, Lithuania      XoJIG,
+! Linux.100+.setlocale.>.lv_LV.ISO-8859-1:                    ! Latvian, Latvia            XoJIG,
+Linux.100+.setlocale.~.nl_BE.ISO-8859-1:       nl_BE !.ISO8859-1         ! Dutch, Belgium             XoJIG,IBM,   ,           , USL
+Linux.100+.setlocale.~.nl_NL.ISO-8859-1:       nl_NL !.ISO8859-1         ! Dutch, The Netherlands     XoJIG,IBM, HP,           , USL ("nl")
+Linux.100+.setlocale.~.no_NO.ISO-8859-1:       no_NO !.ISO8859-1         ! Norwegian, Norway          XoJIG,IBM, HP,           , USL ("no")
+Linux.100+.setlocale.~.pt_BR.ISO-8859-1:       pt_BR !.ISO8859-1         ! Portuguese,Brazil               ,   ,   ,           , USL
+Linux.100+.setlocale.~.pt_PT.ISO-8859-1:       pt_PT !.ISO8859-1         ! Portuguese, Portugal       XoJIG,IBM, HP,           , USL
+Linux.100+.setlocale.>.sv_FI.ISO-8859-1:       sv_SE !.ISO8859-1         ! Swedish, Finland           XoJIG,
+Linux.100+.setlocale.~.sv_SE.ISO-8859-1:       sv_SE !.ISO8859-1         ! Swedish, Sweden            XoJIG,IBM, HP, Sun ("sv"), USL ("sv") 
+
+
+! E European 
+Linux.100+.setlocale.~.cs_CS.ISO-8859-2:   cs_CZ !.ISO8859-2   ! Czech(1)                        ,IBM, HP
+Linux.100+.setlocale.~.hr_HR.ISO-8859-2:       hr_HR !.ISO8859-2               ! Croatian, Croatia               ,IBM
+Linux.100+.setlocale.~.hu_HU.ISO-8859-2:       hu_HU !.ISO8859-2               ! Hungarian, Hungry          XoJIG,IBM, HP
+Linux.100+.setlocale.~.pl_PL.ISO-8859-2:       pl_PL !.ISO8859-2               ! Polish, Poland             XoJIG,IBM, HP 
+Linux.100+.setlocale.~.ro_RO.ISO-8859-2:       ro_RO !.ISO8859-2               ! Rumanian, Romania          XoJIG,IBM, HP
+Linux.100+.setlocale.~.sh_YU.ISO-8859-2:       sh_SP !.ISO8859-2               ! Serbocroatian, Yugoslavia(1)    ,IBM, HP 
+Linux.100+.setlocale.>.sl_CS.ISO-8859-2:       sl_SI !.ISO8859-2               ! Slovenian                       ,   , HP
+Linux.100+.setlocale.~.si_SI.ISO-8859-2:   sl_SI !.ISO8859-2   ! Slovenian                       ,IBM, 
+Linux.100+.setlocale.~.sk_SK.ISO-8859-2:   sk_SK !.ISO8859-2   ! Slovak                          ,IBM
+
+! Cyrillic 
+Linux.100+.setlocale.~.bg_BG.ISO-8859-5:       bg_BG !.ISO8859-5               ! Bulgarian, Bulgaria             ,IBM, HP
+Linux.100+.setlocale.~.mk_MK.ISO-8859-5:   mk_MK !.ISO8859-5   ! Macedonian                      ,IBM
+Linux.100+.setlocale.~.ru_RU.ISO-8859-5:       ru_RU !.ISO8859-5       ! Russian(1)                      ,IBM, 
+Linux.100+.setlocale.>.ru_SU.ISO-8859-5:       ru_RU !.ISO8859-5       ! Russian(1)                      ,   , HP
+Linux.100+.setlocale.~.sp_YU.ISO-8859-5:   sr_SP !.ISO8859-5   ! Serbian,Yugoslavia(1)           ,IBM
+
+! Arabic 
+Linux.100+.setlocale.>.ar_DZ.ISO-8859-6:       ar_AA !.ISO8859-6       ! Arabic(2)                       ,   , HP
+Linux.100+.setlocale.~.ar_SA.ISO-8859-6:       ar_AA !.ISO8859-6       ! Arabic(2)                       ,IBM, HP
+Linux.100+.setlocale.~.ar_SA.IBM-1046: Ar_AA !.IBM-1046        ! Arabic(2)                       ,IBM
+
+! Hebrew 
+Linux.100+.setlocale.~.iw_IL.ISO-8859-8:       iw_IL !.ISO8859-8               ! Hebrew, Israel                  ,IBM, HP
+Linux.100+.setlocale.~.iw_IL.IBM-856:  Iw_IL !.IBM-856                 ! Hebrew, Israel                  ,IBM
+
+! Greek 
+Linux.100+.setlocale.~.el_GR.ISO-8859-7:       el_GR !.ISO8859-7               ! Greek, Greece                   ,IBM, HP
+
+! Turkish 
+Linux.100+.setlocale.~.tr_TR.ISO-8859-9:       tr_TR !.ISO8859-9               ! Turkish, Turkey                 ,IBM, HP
+
+! East Asia 
+Linux.100+.setlocale.~.ja_JP.EUC-JP:   ja_JP !.IBM-eucJP         ! Japanese, Japan                 ,IBM, HP, Sun ("ja"), USL
+Linux.100+.setlocale.~.ja_JP.IBM-932:  Ja_JP !.IBM-932           ! Japanese, Japan                 ,IBM
+Linux.100+.setlocale.>.ja_JP.HP-SJIS:     Ja_JP !.IBM-932              ! Japanese, Japan aka japanese 15 ,   , HP,
+Linux.100+.setlocale.~.ko_KR.EUC-KR:   ko_KR !.IBM-eucKR         ! Korean, Korea                   ,IBM, HP, Sun ("ko"), USL
+Linux.100+.setlocale.~.zh_CN.EUC-CN:   zh_CN !.IBM-eucCN         ! Chinese, China                  ,IBM,   , Sun ("zh"), USL 
+Linux.100+.setlocale.>.zh_CN.HP-15CN:  zh_CN !.IBM-eucCN         ! Chinese, China                  ,   , HP
+Linux.100+.setlocale.~.zh_CN.UTF-8:    ZH_CN !.UTF-8             ! Chinese, China                  ,IBM,
+Linux.100+.setlocale.~.zh_TW.EUC-TW:   zh_TW !.IBM-eucTW         ! Chinese, Taiwan                 ,IBM, HP, Sun       , USL
+Linux.100+.setlocale.>.zh_TW.HP-BIG5:  Zh_TW !.big5            ! Chinese, Taiwan                 ,IBM, HP,           , 
+! Linux.100+.setlocale.>.zh_TW.HP-CCDC:                                ! Chinese, Taiwan                 ,   , HP,           , 
+! Linux.100+.setlocale.>.ja_JP.HP-KANA8:                               ! Japanese, Japan                 ,   , HP,           ,
+
+
+! Thai 
+Linux.100+.setlocale.~.th_TH.TIS-620:  th_TH !.TIS-620         ! Thai, Thailand                  ,IBM, HP
+
+
+! W European/Americas, IBM-850 codeset
+Linux.100+.setlocale.~.da_DK.IBM-850:  Da_DK           ! Danish, Denmark                 ,IBM,
+Linux.100+.setlocale.>.de_AT.IBM-850:  De_DE           ! German,Austria                  ,   ,
+Linux.100+.setlocale.~.de_CH.IBM-850:  De_CH           ! German,Switzerland              ,IBM,
+Linux.100+.setlocale.~.de_DE.IBM-850:  De_DE           ! German, Germany                 ,IBM,
+Linux.100+.setlocale.>.en_AU.IBM-850:  En_GB           ! English,Australia               ,   ,
+Linux.100+.setlocale.>.en_CA.IBM-850:  En_US           ! English,Canada                  ,   ,
+Linux.100+.setlocale.>.en_DK.IBM-850:  En_GB           ! English, Denmark                ,   ,
+Linux.100+.setlocale.~.en_GB.IBM-850:  En_GB           ! English, U.K.                   ,IBM,
+Linux.100+.setlocale.~.en_JP.IBM-850:  En_JP           ! English, Japan                  ,IBM,
+Linux.100+.setlocale.>.en_IE.IBM-850:  En_GB           ! English, Ireland                ,   ,
+Linux.100+.setlocale.>.en_MY.IBM-850:  En_US           ! English,Malaysia                ,   ,
+Linux.100+.setlocale.>.en_NZ.IBM-850:  En_GB           ! English,New Zealand             ,   ,
+Linux.100+.setlocale.>.en_KR.IBM-850:  En_GB           ! English,Korea                   ,   ,
+Linux.100+.setlocale.>.en_TW.IBM-850:  En_GB           ! English,Taiwan                  ,   ,
+Linux.100+.setlocale.~.en_US.IBM-850:  En_US           ! English, USA                    ,IBM,
+Linux.100+.setlocale.>.es_AR.IBM-850:  Es_ES           ! Spanish, Argentina              ,   ,
+Linux.100+.setlocale.>.es_BO.IBM-850:  Es_ES           ! Spanish, Bolivia                ,   ,
+Linux.100+.setlocale.>.es_CL.IBM-850:  Es_ES           ! Spanish, Chile                  ,   ,
+Linux.100+.setlocale.>.es_CO.IBM-850:  Es_ES           ! Spanish, Columbia               ,   ,
+Linux.100+.setlocale.>.es_CR.IBM-850:  Es_ES           ! Spanish, Costa Rica             ,   ,
+Linux.100+.setlocale.>.es_EC.IBM-850:  Es_ES           ! Spanish, Ecuador                ,   ,
+Linux.100+.setlocale.~.es_ES.IBM-850:  Es_ES           ! Spanish, Spain                  ,IBM,
+Linux.100+.setlocale.~.ca_ES.IBM-850:  Ca_ES           ! Catalan, Spain                  ,IBM,
+Linux.100+.setlocale.>.es_GT.IBM-850:  Es_ES           ! Spanish, Guatemala              ,   ,
+Linux.100+.setlocale.>.es_MX.IBM-850:  Es_ES           ! Spanish, Mexico                 ,   ,
+Linux.100+.setlocale.>.es_PE.IBM-850:  Es_ES           ! Spanish, Peru                   ,   ,
+Linux.100+.setlocale.>.es_UY.IBM-850:  Es_ES           ! Spanish, Uruguay                ,   ,
+Linux.100+.setlocale.>.es_VE.IBM-850:  Es_ES           ! Spanish, Venezuela              ,   ,
+! Linux.100+.setlocale.>.et_EE.IBM-850:                        ! Estonian, Estonia               , 
+Linux.100+.setlocale.~.fi_FI.IBM-850:  Fi_FI           ! Finnish, Finland                ,IBM,
+! Linux.100+.setlocale.>.fo_FO.IBM-850:                        ! Faroese, Faeroe Island          ,
+Linux.100+.setlocale.~.fr_BE.IBM-850:  Fr_BE           ! French,Belgium                  ,   ,
+Linux.100+.setlocale.~.fr_CA.IBM-850:  Fr_CA           ! French, Canada                  ,IBM,
+Linux.100+.setlocale.~.fr_CH.IBM-850:  Fr_CH           ! French, Switzerland             ,IBM,
+Linux.100+.setlocale.~.fr_FR.IBM-850:  Fr_FR           ! French, France                  ,IBM,
+Linux.100+.setlocale.~.is_IS.IBM-850:  Is_IS           ! Icelandic, Iceland              ,IBM,
+Linux.100+.setlocale.>.it_CH.IBM-850:  It_IT           ! Italian,Switzerland             ,   ,
+Linux.100+.setlocale.~.it_IT.IBM-850:  It_IT           ! Italian, Italy                  ,IBM,
+! Linux.100+.setlocale.>.kl_GL.IBM-850:                        ! Greenlandic, Greenland          ,
+! Linux.100+.setlocale.>.lt_LT.IBM-850:                        ! Lithuanian, Lithuania           ,
+! Linux.100+.setlocale.>.lv_LV.IBM-850:                        ! Latvian, Latvia                 ,
+Linux.100+.setlocale.~.nl_BE.IBM-850:  Nl_BE           ! Dutch, Belgium                  ,IBM,
+Linux.100+.setlocale.~.nl_NL.IBM-850:  Nl_NL           ! Dutch, The Netherlands          ,IBM,
+Linux.100+.setlocale.~.no_NO.IBM-850:  No_NO           ! Norwegian, Norway               ,IBM,
+Linux.100+.setlocale.>.pt_BR.IBM-850:  Pt_PT           ! Portuguese,Brazil               ,   ,
+Linux.100+.setlocale.~.pt_PT.IBM-850:  Pt_PT           ! Portuguese, Portugal            ,IBM,
+Linux.100+.setlocale.>.sv_FI.IBM-850:  Sv_SE           ! Swedish, Finland                ,
+vvLinux.100+.setlocale.~.sv_SE.IBM-850:        Sv_SE           ! Swedish, Sweden                 ,IBM,
+
+
+! codesets supported for iconv(1,3) & nl_langinfo and above
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.ISO-8859-1:          ISO8859-1
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.ISO-8859-2:  ISO8859-2
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.ISO-8859-5:  ISO8859-5
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.ISO-8859-6:  ISO8859-6
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.ISO-8859-7:  ISO8859-7
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.ISO-8859-8:  ISO8859-8
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.ISO-8859-9:  ISO8859-9
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.EUC-KR:              IBM-eucKR
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.EUC-JP:              IBM-eucJP
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.EUC-TW:              IBM-eucTW
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.EUC-CN:              IBM-eucCN
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).>.?.HP-15CN:     IBM-eucCN
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.IBM-437:     IBM-437
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.IBM-850:     IBM-850
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.IBM-856:     IBM-856
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.IBM-932:     IBM-932
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).>.?.HP-SJIS:     IBM-932
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.IBM-1046:    IBM-1046
+Linux.100+.iconv1,iconv3,nl_langinfo(CODESET).=.?.UTF-8:          UTF-8           
+Linux.100+.iconv1,iconv3.>.?.ISO-2022-JP:                              fold7
+Linux.100+.iconv1,iconv3.>.?.ISO-2022-KR:                         fold7
+Linux.100+.iconv1,iconv3.>.?.ISO-2022-TW:                         fold7
+Linux.100+.iconv1,iconv3.>.?.ISO-2022-CN:                         fold7
+Linux.100+.iconv1,iconv3.>.?.HP-BIG5:                         big5
+Linux.100+.iconv1,iconv3.>.?.TIS-620:                         TIS-620
+
+! codesets not supported by Linux iconv(1,3)
+! Linux.?.iconv1,iconv3.~.?.UCS-2:
+! Linux.?.iconv1,iconv3.~.?.HP-ARABIC8:
+! Linux.?.iconv1,iconv3.~.?.HP-GREEK8:
+! Linux.?.iconv1,iconv3.~.?.HP-HEBREW8
+! Linux.?.iconv1,iconv3.~.?.HP-ROMAN8:
+! Linux.?.iconv1,iconv3.~.?.HP-TURKISH8:
+! Linux.?.iconv1,iconv3.~.?.HP-KANA8:
+! Linux.?.iconv1,iconv3.~.?.HP-CCDC:
+
+! multibyte codesets 
+! This translation provides an alternative to a call to
+! using setlocale() and MB_CUR_MAX to determine this.
+Linux.100+.multibyte.=.?.EUC-KR:               2
+Linux.100+.multibyte.=.?.HP-SJIS:              2
+Linux.100+.multibyte.=.?.IBM-932:              2
+Linux.100+.multibyte.=.?.EUC-JP:               3
+! Linux.?.multibyte.~.?.HP-CCDC:               2
+Linux.100+.multibyte.>.?.HP-BIG5:              2
+Linux.100+.multibyte.=.?.EUC-TW:               4
+Linux.100+.multibyte.=.?.TIS-620:              2
+Linux.100+.multibyte.=.?.EUC-CN:               2
+Linux.100+.multibyte.=.?.HP-15CN:              2
+Linux.100+.multibyte.=.?.EUC-KR:               2
+Linux.100+.multibyte.=.?.UTF-8:                3
+
+
+! Translations from predefined CCDF-locales to CDE Standard Locales
+Linux.100+.ccdf.=.?.ISO-8859-1:        ISO8859-1
+Linux.100+.ccdf.=.?.ISO-8859-2:        ISO8859-2
+Linux.100+.ccdf.=.?.ISO-8859-5:        ISO8859-5
+Linux.100+.ccdf.=.?.ISO-8859-6:        ISO8859-6
+Linux.100+.ccdf.=.?.ISO-8859-7:        ISO8859-7
+Linux.100+.ccdf.=.?.ISO-8859-8:        ISO8859-8
+Linux.100+.ccdf.=.?.ISO-8859-9:        ISO8859-9
+Linux.100+.ccdf.=.?.EUC-JP:    IBM-eucJP
+Linux.100+.ccdf.=.?.EUC-KR:    IBM-eucKR
+Linux.100+.ccdf.=.?.EUC-TW:    IBM-eucTW
+Linux.100+.ccdf.=.?.EUC-CN:    IBM-eucCN
+Linux.100+.ccdf.>.?.IBM-932:   IBM-932
+Linux.100+.ccdf.>.?.HP-SJIS:   IBM-932
+Linux.100+.ccdf.=.?.IBM-1046:  IBM-1046
+Linux.100+.ccdf.=.?.IBM-850:   IBM-850
+Linux.100+.ccdf.=.?.IBM-856:   IBM-856
+Linux.100+.ccdf.=.?.HP-BIG5:   big5
+Linux.100+.ccdf.=.?.TIS-620:   TIS-620
+Linux.100+.ccdf.=.?.UTF-8:     UTF-8
+Linux.100+.ccdf.=.?.DT-SYMBOL-1:       symbol        !!! standard Dt symbol font
+
+! These CDE standard locales may have CCDF-locales, but they are defined by localizers
+Linux.100+.ccdf.>.?.HP-ROMAN8:    ISO8859-1
+Linux.100+.ccdf.>.?.HP-ARABIC8:        ISO8859-6
+Linux.100+.ccdf.>.?.HP-GREEK8: ISO8859-8
+Linux.100+.ccdf.>.?.HP-HEBREW8:        ISO8859-7
+Linux.100+.ccdf.>.?.HP-TURKISH8:       ISO8859-9
+Linux.100+.ccdf.>.?.HP-KANA8:  IBM-932
+Linux.100+.ccdf.>.?.HP-CCDC:   IBM-eucCN
+
+
+
+! Codesets that require multibyte parsing to avoid confusion with shell special chars
+Linux.?.dtkshSpecialParse.=.ja_JP.HP-JIS:              True
+Linux.?.dtkshSpecialParse.=.ja_JP.HP-SJIS:     True
+Linux.?.dtkshSpecialParse.=.ja_JP.IBM-932:     True
+Linux.?.dtkshSpecialParse.=.zh_TW.HP-BIG5:     True
+Linux.?.dtkshSpecialParse.=.zh_TW.HP-CCDC:     True
+
+
+!! When content is exchanged with other platforms, the interchange codeset
+!! may be different that the codeset used locally.  In CDE1, these translations
+!! are used by dtmail, but other clients may use the same translations
+!! in the future.  For example, to improve interoperability of 8-bit mail,
+!! the mail messages of users working in codesets such as HP-ROMAN8 or IBM-850 
+!! are translated to the interchangeCodeset (in this case, ISO-8859-1) before 
+!! they are sent.  Similarly, the mail of Japanese users is translated to JIS
+!! before it is sent.
+!!
+!! --------------------------------------------------------------------
+!! Linux does provide the fold7 conversion which is an ISO 2022 encoding
+!! of every code set supported by a locale... so ... the name
+!!   ISO-2022-xx ( where xx is JP, CN, KR, TW)
+!! can be used for any of the following interchangeCodeset... but it has
+!! been left as is in case 8-bit mail is supported...
+!! --------------------------------------------------------------------
+!!
+Linux.?.interchangeCodeset.~.?.ISO-8859-1:     ISO-8859-1      ! ISO Latin 1
+!Linux.?.interchangeCodeset.>.?.HP-ROMAN8:     ISO-8859-1      ! HP Roman8 
+Linux.?.interchangeCodeset.>.?.IBM-850:                ISO-8859-1      ! PC (Multi-lingual)
+Linux.?.interchangeCodeset.>.?.IBM-437:                ISO-8859-1      ! PC (US)
+Linux.?.interchangeCodeset.~.?.ISO-8859-2:     ISO-8859-2      ! ISO Latin 2
+Linux.?.interchangeCodeset.~.?.ISO-8859-5:     ISO-8859-5      ! ISO Latin/Cyrillic
+Linux.?.interchangeCodeset.~.?.ISO-8859-6:     ISO-8859-6      ! ISO Latin/Arabic
+!Linux.?.interchangeCodeset.>.?.HP-ARABIC8:    ISO-8859-6      ! HP Arabic8
+Linux.?.interchangeCodeset.>.?.IBM-1046:               ISO-8859-6      ! PC Arabic Code Set
+Linux.?.interchangeCodeset.~.?.ISO-8859-8:     ISO-8859-8      ! ISO Latin/Hebrew
+!Linux.?.interchangeCodeset.>.?.HP-HEBREW8:    ISO-8859-8      ! HP Hebrew8
+Linux.?.interchangeCodeset.>.?.IBM-856:                ISO-8859-8      ! PC Hebrew
+Linux.?.interchangeCodeset.~.?.ISO-8859-7:     ISO-8859-7      ! ISO Latin/Greek
+!Linux.?.interchangeCodeset.>.?.HP-GREEK8:     ISO-8859-7      ! HP Greek8
+Linux.?.interchangeCodeset.~.?.ISO-8859-9:     ISO-8859-9      ! ISO Latin 5
+!Linux.?.interchangeCodeset.>.?.HP-TURKISH8:   ISO-8859-9      ! HP Turkish8
+Linux.?.interchangeCodeset.~.?.EUC-JP:         ISO-2022-JP     ! Japanese EUC
+!Linux.?.interchangeCodeset.>.?.HP-SJIS:               ISO-2022-JP     ! HP Japanese Shift JIS
+Linux.?.interchangeCodeset.>.?.IBM-932:                ISO-2022-JP     ! PC Japanese Shift JIS
+!Linux.?.interchangeCodeset.>.?.HP-KANA8:              ISO-2022-JP     ! HP Japanese Katakana8
+! uncomment when ISO-2022-KR is supported by iconv
+Linux.?.interchangeCodeset.~.?.EUC-KR:         ISO-2022-KR     ! Korean EUC
+! uncomment when ISO-2022-CN is supported by iconv
+Linux.?.interchangeCodeset.~.?.EUC-CN:         ISO-2022-CN     ! China Chinese EUC
+Linux.?.interchangeCodeset.>.?.HP-15CN:                ISO-2022-CN     ! HP Chinese EUC
+! uncomment when ISO-2022-TW is supported by iconv
+Linux.?.interchangeCodeset.~.?.EUC-TW:         ISO-2022-TW     ! Taiwan Chinese EUC
+Linux.?.interchangeCodeset.>.?.HP-BIG5:                ISO-2022-TW     ! HP Big5 Chinese
+Linux.?.interchangeCodeset.>.?.HP-CCDC:                ISO-2022-TW     ! HP CCDC Chinese 
+Linux.?.interchangeCodeset.~.?.TIS-620:                TIS-620         ! Thai
+Linux.?.interchangeCodeset.>.?.UCS-2:          ISO-2022-JP     ! Unicode
+Linux.?.interchangeCodeset.~.?.UTF-8:          ISO-2022-JP     ! multibyte Unicode 
+!! Codeset identifiers for use with MIME messages.  The .~. translations
+!! are used by dtmail and adhere to the MIME standard, RFC 1521.
+!! Note that the MIME standard states that codeset identifiers are
+!! case-insensitive.  The operation-specific values on the right-hand-side
+!! of the translations below, however, ARE case sensitive.  Before
+!! doing a OpToStd translation, first convert the MIME codeset identifier
+!! to uppercase.  Alternatively, one could provide lower-case versions
+!! of the translations (right-hand-side only should be in lower-case).
+Linux.?.mime.~.?.ISO-8859-1:   ISO-8859-1      ! ISO Latin 1
+Linux.?.mime.~.?.HP-ROMAN8:    X-HP-ROMAN8     ! HP Roman8 
+Linux.?.mime.~.?.IBM-437:              X-IBM-437       ! PC (US)
+Linux.?.mime.~.?.IBM-850:              X-IBM-850       ! PC (Multi-lingual)
+Linux.?.mime.~.?.ISO-8859-2:   ISO-8859-2      ! ISO Latin 2
+Linux.?.mime.~.?.ISO-8859-5:   ISO-8859-5      ! ISO Latin/Cyrillic
+Linux.?.mime.~.?.ISO-8859-6:   ISO-8859-6      ! ISO Latin/Arabic
+Linux.?.mime.~.?.HP-ARABIC8:   X-HP-ARABIC8    ! HP Arabic8
+Linux.?.mime.~.?.IBM-1046:     X-IBM-1046      ! PC Arabic Code Set
+Linux.?.mime.~.?.ISO-8859-8:   ISO-8859-8      ! ISO Latin/Hebrew
+Linux.?.mime.~.?.HP-HEBREW8:   X-HP-HEBREW8    ! HP Hebrew8
+Linux.?.mime.~.?.IBM-856:              X-IBM-856       ! PC Hebrew
+Linux.?.mime.~.?.ISO-8859-7:   ISO-8859-7      ! ISO Latin/Greek
+Linux.?.mime.~.?.HP-GREEK8:    X-HP-GREEK8     ! HP Greek8
+Linux.?.mime.~.?.ISO-8859-9:   ISO-8859-9      ! ISO Latin 5
+Linux.?.mime.~.?.HP-TURKISH8:  X-HP-TURKISH8   ! HP Turkish8
+Linux.?.mime.~.?.EUC-JP:               X-EUC-JP        ! Japanese EUC
+Linux.?.mime.~.?.ISO-2022-JP:  ISO-2022-JP     ! Japanese JIS with 7-bit encoding per ISO-2022-JP
+Linux.?.mime.~.?.HP-SJIS:              X-HP-SJIS       ! HP Japanese Shift JIS
+Linux.?.mime.~.?.IBM-932:              X-IBM-932       ! PC Japanese Shift JIS
+Linux.?.mime.~.?.HP-KANA8:     X-HP-KANA8      ! HP Japanese Katakana8
+Linux.?.mime.~.?.EUC-KR:               X-EUC-KR        ! Korean EUC
+Linux.?.mime.~.?.ISO-2022-KR:  ISO-2022-KR     ! Korean with 7-bit encoding per ISO-2022-KR
+Linux.?.mime.~.?.EUC-CN:               X-EUC-CN        ! China Chinese EUC
+Linux.?.mime.~.?.ISO-2022-CN:  ISO-2022-CN     ! China Chinese with 7-bit encoding per ISO-2022-CN
+Linux.?.mime.~.?.HP-15CN:              X-HP-15CN       ! HP China Chinese EUC
+Linux.?.mime.~.?.EUC-TW:               X-EUC-TW        ! Taiwan Chinese EUC
+Linux.?.mime.~.?.ISO-2022-TW:  ISO-2022-TW     ! Taiwan Chinese with 7-bit encoding per ISO-2022-TW
+Linux.?.mime.~.?.HP-BIG5:              X-HP-BIG5       ! HP Big5 Taiwan Chinese
+Linux.?.mime.~.?.HP-CCDC:              X-HP-CCDC       ! HP CCDC Taiwan Chinese 
+Linux.?.mime.~.?.TIS-620:              X-TIS-620       ! Thai
+Linux.?.mime.~.?.UCS-2:                X-UCS-2         ! Unicode; group 0, plane 0 of ISO-10646
+Linux.?.mime.~.?.UCS-4:                X-UCS-4         ! ISO-10646
+Linux.?.mime.~.?.UTF-7:                X-UTF-7         ! multibyte encoding of Unicode 
+Linux.?.mime.~.?.UTF-8:                X-UTF-8         ! multibyte encoding of Unicode 
+Linux.?.mime.~.?.UTF-16:               X-UTF-16        ! multibyte encoding of Unicode 
+
+!! If other mailers are using other codeset identifiers in their MIME
+!! messages, dtmail will not be able to process them correctly. 
+!! To correct this, additional .<. translations for these identifiers 
+!! can be added to a <platform>.lcx file in the /etc/dt/config/svc 
+!! or $HOME/.dt/config/svc directories.  Such translations should read:
+!! <platform>.100+.mime.<.?.<CDE std codeset>: <mailer identifier for the codeset>
+!!
+!! ***NEVER*** use a .~. translation, such as we use above, as this could
+!! cause dtmail to send unexpected identifier strings by overriding the
+!! above definition.  Further, never use .=. or .>. translations.
+!!
+!! These two identifiers are in common usage, as they derive from RFC1521.
+Linux.?.mime.<.?.ISO-8859-1:   us-ascii        ! ISO Latin 1
+Linux.?.mime.<.?.ISO-8859-1:   US-ASCII        ! ISO Latin 1
index 3a257dffe55193850f03d2e57ae9aabc3fd7d4bf..2de16a88c18561de8c97376bc58e5985e548749b 100644 (file)
@@ -320,11 +320,13 @@ static char *UnEscapeI18NChars(
 )
 {
     unsigned char c;
-    char *buf, *to, *from;
+    char *buf;
+    unsigned char *to, *from;
 
     if (MB_CUR_MAX != 1) {
-       from = source;
-       to = buf = malloc(strlen(source)+1);
+       from = (unsigned char*)source;
+       buf = malloc(strlen(source)+1);
+        to = (unsigned char *)buf;
        while (c = *from++) {
            if (c == I18N_TRIGGER) {
                c = *from++;
@@ -449,7 +451,7 @@ static int CompareI18NStrings(ClientData clientData,
     while (*cp) {
        if ((len = mblen(cp, MB_CUR_MAX)) == 1) {
            if (isalpha(*cp)) {
-               *cp = _toupper(*cp);
+               *cp = toupper(*cp);
            }
            cp++;
        } else {
@@ -460,7 +462,7 @@ static int CompareI18NStrings(ClientData clientData,
     while (*cp) {
        if ((len = mblen(cp, MB_CUR_MAX)) == 1) {
            if (isalpha(*cp)) {
-               *cp = _toupper(*cp);
+               *cp = toupper(*cp);
            }
            cp++;
        } else {
@@ -853,15 +855,17 @@ EscapeI18NChars(
     char       *source
 )
 {
-    char *retval, *from, *to;
+    char *retval;
+    unsigned char *from, *to;
     int len;
 
     if (MB_CUR_MAX == 1) {
        return source;
     } else {
        /* worst case, the string will expand by a factor of 3 */
-       from = source;
-       to = retval = malloc(3 * strlen(source) + 1);
+       from = (unsigned char *)source;
+       retval = malloc(3 * strlen(source) + 1);
+       to = (unsigned char *)retval;
        while (*from) {
            if ((len = mblen(from, MB_CUR_MAX)) < 0) {
                fprintf(stderr,