diff options
author | nyamatongwe <unknown> | 2011-06-04 21:14:10 +1000 |
---|---|---|
committer | nyamatongwe <unknown> | 2011-06-04 21:14:10 +1000 |
commit | 147fea4aa8f74c72086ee3d416e24982bd8b3a52 (patch) | |
tree | 4b9a25a942074adbd133f4237332d82287296025 | |
parent | 2db424251894fe3c61f1068da601e0d16254fa2b (diff) | |
download | scintilla-mirror-147fea4aa8f74c72086ee3d416e24982bd8b3a52.tar.gz |
Included DBCS support.
-rw-r--r-- | cocoa/PlatCocoa.mm | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index 80cc5a43b..a9ac95461 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -1863,7 +1863,30 @@ long Platform::SendScintillaPointer(WindowID w, unsigned int msg, unsigned long bool Platform::IsDBCSLeadByte(int codePage, char ch) { - // No support for DBCS. + // Byte ranges found in Wikipedia articles with relevant search strings in each case + unsigned char uch = static_cast<unsigned char>(ch); + switch (codePage) + { + case 932: + // Shift_jis + return ((uch >= 0x81) && (uch <= 0x9F)) || + ((uch >= 0xE0) && (uch <= 0xEF)); + case 936: + // GBK + return (uch >= 0x81) && (uch <= 0xFE); + case 949: + // Korean Wansung KS C-5601-1987 + return (uch >= 0x81) && (uch <= 0xFE); + case 950: + // Big5 + return (uch >= 0x81) && (uch <= 0xFE); + case 1361: + // Korean Johab KS C-5601-1992 + return + ((uch >= 0x84) && (uch <= 0xD3)) || + ((uch >= 0xD8) && (uch <= 0xDE)) || + ((uch >= 0xE0) && (uch <= 0xF9)); + } return false; } |