1/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd 2 See the file COPYING for copying permission. 3*/ 4 5#include "codepage.h" 6
| 1/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd 2 See the file COPYING for copying permission. 3*/ 4 5#include "codepage.h" 6
|
7#ifdef WIN32
| 7#if (defined(WIN32) || (defined(__WATCOMC__) && defined(__NT__)))
|
8#define STRICT 1 9#define WIN32_LEAN_AND_MEAN 1 10 11#include <windows.h> 12 13int 14codepageMap(int cp, int *map) 15{ 16 int i; 17 CPINFO info; 18 if (!GetCPInfo(cp, &info) || info.MaxCharSize > 2) 19 return 0; 20 for (i = 0; i < 256; i++) 21 map[i] = -1; 22 if (info.MaxCharSize > 1) {
| 8#define STRICT 1 9#define WIN32_LEAN_AND_MEAN 1 10 11#include <windows.h> 12 13int 14codepageMap(int cp, int *map) 15{ 16 int i; 17 CPINFO info; 18 if (!GetCPInfo(cp, &info) || info.MaxCharSize > 2) 19 return 0; 20 for (i = 0; i < 256; i++) 21 map[i] = -1; 22 if (info.MaxCharSize > 1) {
|
23 for (i = 0; i < MAX_LEADBYTES; i++) {
| 23 for (i = 0; i < MAX_LEADBYTES; i+=2) {
|
24 int j, lim; 25 if (info.LeadByte[i] == 0 && info.LeadByte[i + 1] == 0) 26 break; 27 lim = info.LeadByte[i + 1];
| 24 int j, lim; 25 if (info.LeadByte[i] == 0 && info.LeadByte[i + 1] == 0) 26 break; 27 lim = info.LeadByte[i + 1];
|
28 for (j = info.LeadByte[i]; j < lim; j++)
| 28 for (j = info.LeadByte[i]; j <= lim; j++)
|
29 map[j] = -2; 30 } 31 } 32 for (i = 0; i < 256; i++) { 33 if (map[i] == -1) { 34 char c = (char)i; 35 unsigned short n; 36 if (MultiByteToWideChar(cp, MB_PRECOMPOSED|MB_ERR_INVALID_CHARS,
--- 32 unchanged lines hidden --- | 29 map[j] = -2; 30 } 31 } 32 for (i = 0; i < 256; i++) { 33 if (map[i] == -1) { 34 char c = (char)i; 35 unsigned short n; 36 if (MultiByteToWideChar(cp, MB_PRECOMPOSED|MB_ERR_INVALID_CHARS,
--- 32 unchanged lines hidden --- |