From b59bbd6164c71c303d05b6ae44f73d86bc6ad54f Mon Sep 17 00:00:00 2001 From: Yuguo Zhang Date: Wed, 26 Feb 2020 11:36:34 +0800 Subject: [PATCH] restore 21bit unicode on windows msvc build ecl_character is a signed type actually, 16bit signed short is not big enough to hold big charsets, such as CP936. this commit rolls back 74b67347. --- msvc/c/Makefile | 8 +++++--- msvc/ecl/config.h.msvc6 | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/msvc/c/Makefile b/msvc/c/Makefile index 8bb9a9165..4b8386771 100755 --- a/msvc/c/Makefile +++ b/msvc/c/Makefile @@ -20,9 +20,11 @@ THREADS_OBJ= !endif !if "$(ECL_UNICODE)" != "" -ECL_UNICODE_FLAG=16 -ECL_UCD_OBJ = ucd16.obj ucd16-0000.obj ucd16-0016.obj \ - ucd16-0032.obj ucd16-0048.obj ucd16-0064.obj ucd_names_char.obj ucd_names_codes.obj ucd_names_pair.obj ucd_names_str.obj +ECL_UNICODE_FLAG=21 +ECL_UCD_OBJ = ucd.obj ucd-0000.obj ucd-0016.obj \ + ucd-0032.obj ucd-0048.obj ucd-0064.obj \ + ucd-0080.obj ucd-0096.obj ucd_names_char.obj ucd_names_codes.obj ucd_names_pair.obj ucd_names_str.obj + !else ECL_UNICODE_FLAG=0 !endif diff --git a/msvc/ecl/config.h.msvc6 b/msvc/ecl/config.h.msvc6 index 3d4678768..23b8d3e4f 100755 --- a/msvc/ecl/config.h.msvc6 +++ b/msvc/ecl/config.h.msvc6 @@ -154,11 +154,11 @@ typedef unsigned int cl_hashkey; * The character type */ #ifdef ECL_UNICODE -#define ECL_CHAR_CODE_LIMIT 65536 /* unicode character code limit */ +#define ECL_CHAR_CODE_LIMIT 1114112 /* unicode character code limit */ #else #define ECL_CHAR_CODE_LIMIT 256 /* unicode character code limit */ #endif -typedef short ecl_character; +typedef int ecl_character; typedef unsigned char ecl_base_char; /*