From fff18bf2b705802d00caac741773cd0b7bf2fd5e Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Mon, 18 Jun 2012 22:01:02 -0600 Subject: [PATCH] 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 --- cde/config/cf/site.def | 5 + cde/doc/C/Imakefile | 6 + cde/doc/de_DE.ISO8859-1/Imakefile | 5 + cde/doc/es_ES.ISO8859-1/Imakefile | 5 + cde/doc/fr_FR.ISO8859-1/Imakefile | 5 + cde/doc/it_IT.ISO8859-1/Imakefile | 5 + cde/doc/ja_JP.dt-eucJP/Imakefile | 7 +- cde/lib/DtHelp/Imakefile | 2 +- cde/lib/DtHelp/Linux.lcx | 571 ++++++++++++++++++++++++++ cde/programs/dtdocbook/instant/main.c | 20 +- 10 files changed, 621 insertions(+), 10 deletions(-) create mode 100644 cde/lib/DtHelp/Linux.lcx diff --git a/cde/config/cf/site.def b/cde/config/cf/site.def index da2184c1..58daccc4 100644 --- a/cde/config/cf/site.def +++ b/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 diff --git a/cde/doc/C/Imakefile b/cde/doc/C/Imakefile index 14cf2059..ff8e50c7 100644 --- a/cde/doc/C/Imakefile +++ b/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) diff --git a/cde/doc/de_DE.ISO8859-1/Imakefile b/cde/doc/de_DE.ISO8859-1/Imakefile index ce3fa4c5..ae55087a 100644 --- a/cde/doc/de_DE.ISO8859-1/Imakefile +++ b/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)) diff --git a/cde/doc/es_ES.ISO8859-1/Imakefile b/cde/doc/es_ES.ISO8859-1/Imakefile index 9f8d2ecd..0e8214c3 100644 --- a/cde/doc/es_ES.ISO8859-1/Imakefile +++ b/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)) diff --git a/cde/doc/fr_FR.ISO8859-1/Imakefile b/cde/doc/fr_FR.ISO8859-1/Imakefile index 63d5844d..4f47a4bf 100644 --- a/cde/doc/fr_FR.ISO8859-1/Imakefile +++ b/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)) diff --git a/cde/doc/it_IT.ISO8859-1/Imakefile b/cde/doc/it_IT.ISO8859-1/Imakefile index 8c855f98..dbec9bb1 100644 --- a/cde/doc/it_IT.ISO8859-1/Imakefile +++ b/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)) diff --git a/cde/doc/ja_JP.dt-eucJP/Imakefile b/cde/doc/ja_JP.dt-eucJP/Imakefile index b8ee3b70..742811e2 100644 --- a/cde/doc/ja_JP.dt-eucJP/Imakefile +++ b/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) diff --git a/cde/lib/DtHelp/Imakefile b/cde/lib/DtHelp/Imakefile index a15cb8cb..89fe15c5 100644 --- a/cde/lib/DtHelp/Imakefile +++ b/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)) diff --git a/cde/lib/DtHelp/Linux.lcx b/cde/lib/DtHelp/Linux.lcx new file mode 100644 index 00000000..77173c4c --- /dev/null +++ b/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 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. +! .. +! 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 +! should specify the wildcard character ("?") for the +! value. +! +! Operation-specific value: +! ========================= +! The operation-specific value is a string that is used +! according to the kind of translation. The syntax is +! : +! or : "", 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 .lcx file in the /etc/dt/config/svc +!! or $HOME/.dt/config/svc directories. Such translations should read: +!! .100+.mime.<.?.: +!! +!! ***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 diff --git a/cde/programs/dtdocbook/instant/main.c b/cde/programs/dtdocbook/instant/main.c index 3a257dff..2de16a88 100644 --- a/cde/programs/dtdocbook/instant/main.c +++ b/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, -- 2.25.1