1
0
Fork 0
mirror of https://git.freebsd.org/ports.git synced 2025-06-17 18:50:33 -04:00
ports/textproc/jade/files/patch-CodingSystemKit.cxx
Jun Kuriyama ec0cd06165 Add koi8-r support to jade to solve problem with koi8-r encoding
in printed formats.

SP_ENCODING=koi8-r should be passed to jade.

Obtained from:	ftp://ftp.ptc.spbu.ru/people/uwe/sgml/ (slightly modified)
Found by:	Denis Philippov
Submitted by:	den
2004-08-03 23:25:17 +00:00

62 lines
2.2 KiB
C++

--- lib/CodingSystemKit.cxx.orig Sat Jul 31 17:03:29 2004
+++ lib/CodingSystemKit.cxx Sat Jul 31 17:08:59 2004
@@ -74,7 +74,8 @@
iso8859_6,
iso8859_7,
iso8859_8,
- iso8859_9
+ iso8859_9,
+ koi8_r
};
struct Entry {
const char *name;
@@ -111,6 +112,7 @@
TranslateCodingSystem iso8859_7CodingSystem_;
TranslateCodingSystem iso8859_8CodingSystem_;
TranslateCodingSystem iso8859_9CodingSystem_;
+ TranslateCodingSystem koi8_rCodingSystem_;
#ifdef WIN32
Win32CodingSystem ansiCodingSystem_;
Win32CodingSystem oemCodingSystem_;
@@ -246,6 +248,15 @@
{ CharsetRegistry::UNREGISTERED, 0x0 }
};
+static const TranslateCodingSystem::Desc koi8_rDesc[] = {
+ { CharsetRegistry::ISO646_C0, 0x0 },
+ { CharsetRegistry::ISO646_ASCII_G0, 0x0 },
+ // FIXME: only GR part of KOI8-R is handled (i.e. 160..255)
+ // since koi8-r does not follow ISO control/graphic model
+ { CharsetRegistry::KOI8_R, 0x80 },
+ { CharsetRegistry::UNREGISTERED, 0x0 }
+};
+
#endif /* SP_MULTI_BYTE */
const CodingSystemKitImpl::Entry CodingSystemKitImpl::bctfTable_[] = {
@@ -292,6 +303,8 @@
{ "ISO-8859-8", iso8859_8 },
{ "IS8859-9", iso8859_9 },
{ "ISO-8859-9", iso8859_9 },
+ { "KOI8-R", koi8_r }, // RFC 1489
+ { "KOI8", koi8_r },
{ "EUC-JP", eucjp },
{ "EUC-CN", euccn },
{ "GB2312", euccn },
@@ -324,6 +337,7 @@
iso8859_7CodingSystem_(&identityCodingSystem_, iso8859_7Desc, &systemCharset_, 0x100, unicodeReplaceChar),
iso8859_8CodingSystem_(&identityCodingSystem_, iso8859_8Desc, &systemCharset_, 0x100, unicodeReplaceChar),
iso8859_9CodingSystem_(&identityCodingSystem_, iso8859_9Desc, &systemCharset_, 0x100, unicodeReplaceChar),
+ koi8_rCodingSystem_(&identityCodingSystem_, koi8_rDesc, &systemCharset_, 0x100, unicodeReplaceChar),
eucjpCodingSystem_(&eucBctf_, jis2Desc, &systemCharset_, 0x8000, unicodeReplaceChar),
euccnCodingSystem_(&eucBctf_, gbDesc, &systemCharset_, 0x8000, unicodeReplaceChar),
euckrCodingSystem_(&eucBctf_, kscDesc, &systemCharset_, 0x8000, unicodeReplaceChar),
@@ -472,6 +486,8 @@
return &iso8859_8CodingSystem_;
case iso8859_9:
return &iso8859_9CodingSystem_;
+ case koi8_r:
+ return &koi8_rCodingSystem_;
case xml:
return &xmlCodingSystem_;
#ifdef WIN32