Selaa lähdekoodia

doc/help localization changes

- 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
Jon Trulson 12 vuotta sitten
vanhempi
commit
fff18bf2b7

+ 5 - 0
cde/config/cf/site.def

@@ -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

+ 6 - 0
cde/doc/C/Imakefile

@@ -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)

+ 5 - 0
cde/doc/de_DE.ISO8859-1/Imakefile

@@ -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))
 

+ 5 - 0
cde/doc/es_ES.ISO8859-1/Imakefile

@@ -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))
 

+ 5 - 0
cde/doc/fr_FR.ISO8859-1/Imakefile

@@ -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))
 

+ 5 - 0
cde/doc/it_IT.ISO8859-1/Imakefile

@@ -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))
 

+ 6 - 1
cde/doc/ja_JP.dt-eucJP/Imakefile

@@ -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)
 

+ 1 - 1
cde/lib/DtHelp/Imakefile

@@ -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))
 

+ 571 - 0
cde/lib/DtHelp/Linux.lcx

@@ -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

+ 12 - 8
cde/programs/dtdocbook/instant/main.c

@@ -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,