diff --git a/configure b/configure index 8331961..7b00460 100755 --- a/configure +++ b/configure @@ -1453,8 +1453,8 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --enable-debug build the library in the debug mode (default. no) --enable-unicode Use the unicode character type as the default - character type. one of yes, no, ucs2, ucs4 (default. - yes) + character type. one of yes, no, yes:2, yes:4, no:2, + no:4 (default. yes) --enable-cxx build the library for C++ if a C++ compiler is available (default. yes) --enable-dynamic-module enable dynamic module capability(default. yes) @@ -19423,20 +19423,43 @@ else fi -if test "${enable_unicode}" = "yes" +if test "${enable_unicode}" = "yes:4" then +$as_echo "#define HCL_UNICODE_SIZE 4" >>confdefs.h + + $as_echo "#define HCL_ENABLE_UNICODE 1" >>confdefs.h -elif test "${enable_unicode}" = "ucs2" +elif test "${enable_unicode}" = "yes:2" then -$as_echo "#define HCL_ENABLE_UNICODE 2" >>confdefs.h +$as_echo "#define HCL_UNICODE_SIZE 2" >>confdefs.h -elif test "${enable_unicode}" = "ucs4" + +$as_echo "#define HCL_ENABLE_UNICODE 1" >>confdefs.h + +elif test "${enable_unicode}" = "yes" then -$as_echo "#define HCL_ENABLE_UNICODE 4" >>confdefs.h +$as_echo "#define HCL_UNICODE_SIZE 1" >>confdefs.h + + +$as_echo "#define HCL_ENABLE_UNICODE 1" >>confdefs.h + +elif test "${enable_unicode}" = "no:4" +then + +$as_echo "#define HCL_UNICODE_SIZE 4" >>confdefs.h + +elif test "${enable_unicode}" = "no:2" +then + +$as_echo "#define HCL_UNICODE_SIZE 2" >>confdefs.h + +else + +$as_echo "#define HCL_UNICODE_SIZE 1" >>confdefs.h fi diff --git a/configure.ac b/configure.ac index 3e9e69b..f549747 100644 --- a/configure.ac +++ b/configure.ac @@ -409,19 +409,30 @@ else fi AC_ARG_ENABLE([unicode], - [AS_HELP_STRING([--enable-unicode],[Use the unicode character type as the default character type. one of yes, no, ucs2, ucs4 (default. yes)])], + [AS_HELP_STRING([--enable-unicode],[Use the unicode character type as the default character type. one of yes, no, yes:2, yes:4, no:2, no:4 (default. yes)])], enable_unicode=$enableval, enable_unicode=yes ) -if test "${enable_unicode}" = "yes" +if test "${enable_unicode}" = "yes:4" then - AC_DEFINE([HCL_ENABLE_UNICODE],[1],[Use the unicode character type as the default character type]) -elif test "${enable_unicode}" = "ucs2" + AC_DEFINE([HCL_UNICODE_SIZE],[4],[Unicode character type size]) + AC_DEFINE([HCL_ENABLE_UNICODE],[1],[Use the unicode character type as the default character type]) +elif test "${enable_unicode}" = "yes:2" then - AC_DEFINE([HCL_ENABLE_UNICODE],[2],[Use the unicode character type as the default character type]) -elif test "${enable_unicode}" = "ucs4" + AC_DEFINE([HCL_UNICODE_SIZE],[2],[Unicode character type size]) + AC_DEFINE([HCL_ENABLE_UNICODE],[1],[Use the unicode character type as the default character type]) +elif test "${enable_unicode}" = "yes" then - AC_DEFINE([HCL_ENABLE_UNICODE],[4],[Use the unicode character type as the default character type]) + AC_DEFINE([HCL_UNICODE_SIZE],[1],[Unicode character type size]) + AC_DEFINE([HCL_ENABLE_UNICODE],[1],[Use the unicode character type as the default character type]) +elif test "${enable_unicode}" = "no:4" +then + AC_DEFINE([HCL_UNICODE_SIZE],[4],[Unicode character type size]) +elif test "${enable_unicode}" = "no:2" +then + AC_DEFINE([HCL_UNICODE_SIZE],[2],[Unicode character type size]) +else + AC_DEFINE([HCL_UNICODE_SIZE],[1],[Unicode character type size]) fi AC_ARG_ENABLE([cxx], diff --git a/lib/hcl-cfg.h.in b/lib/hcl-cfg.h.in index 73df31d..cdcb440 100644 --- a/lib/hcl-cfg.h.in +++ b/lib/hcl-cfg.h.in @@ -327,6 +327,9 @@ /* sizeof(__uint128_t) */ #undef HCL_SIZEOF___UINT128_T +/* Unicode character type size */ +#undef HCL_UNICODE_SIZE + /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR diff --git a/lib/hcl-cmn.h b/lib/hcl-cmn.h index 7a5209b..fbda1da 100644 --- a/lib/hcl-cmn.h +++ b/lib/hcl-cmn.h @@ -280,7 +280,7 @@ typedef unsigned char hcl_bchu_t; /* unsigned version of hcl_bch_t for #define HCL_SIZEOF_BCH_T HCL_SIZEOF_CHAR #define HCL_SIZEOF_BCI_T HCL_SIZEOF_INT -#if defined(HCL_ENABLE_UNICODE) && (HCL_ENABLE_UNICODE == 4) +#if defined(HCL_UNICODE_SIZE) && (HCL_UNICODE_SIZE >= 4) # if defined(__GNUC__) && defined(__CHAR32_TYPE__) typedef __CHAR32_TYPE__ hcl_uch_t; # else