diff options
| -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;  } | 
