diff options
author | Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> | 2022-09-26 10:52:50 +0900 |
---|---|---|
committer | Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> | 2022-09-26 10:52:50 +0900 |
commit | 1b421e4978440234fb73117c8505dad1ccc68d46 (patch) | |
tree | 190373cda6247f5466850478f6ca5d42d3bbc73e | |
parent | 6e827d8f9a50653aa1905d8aff8cc91e6e2423c4 (diff) | |
download | zsh-1b421e4978440234fb73117c8505dad1ccc68d46.tar.gz zsh-1b421e4978440234fb73117c8505dad1ccc68d46.tar.xz zsh-1b421e4978440234fb73117c8505dad1ccc68d46.zip |
50658 + test: Enable to switch between C/UTF-8 locales in PCRE
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/Modules/pcre.c | 10 | ||||
-rw-r--r-- | Test/V07pcre.ztst | 11 |
3 files changed, 18 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog index 48c65d01b..77345c050 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2022-09-26 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> + + * 50658 + test: Src/Modules/pcre.c, Test/V07pcre.ztst: Enable to + switch between C/UTF-8 locales in PCRE + 2022-09-25 Peter Stephenson <p.w.stephenson@ntlworld.com> * 50648: Functions/Misc/zcalc: Julian Prein: Use ZCALC_HISTFILE diff --git a/Src/Modules/pcre.c b/Src/Modules/pcre.c index 6289e003e..46875a59b 100644 --- a/Src/Modules/pcre.c +++ b/Src/Modules/pcre.c @@ -47,8 +47,6 @@ zpcre_utf8_enabled(void) #if defined(MULTIBYTE_SUPPORT) && defined(HAVE_NL_LANGINFO) && defined(CODESET) static int have_utf8_pcre = -1; - /* value can toggle based on MULTIBYTE, so don't - * be too eager with caching */ if (have_utf8_pcre < -1) return 0; @@ -56,15 +54,11 @@ zpcre_utf8_enabled(void) return 0; if ((have_utf8_pcre == -1) && - (!strcmp(nl_langinfo(CODESET), "UTF-8"))) { - - if (pcre_config(PCRE_CONFIG_UTF8, &have_utf8_pcre)) + (pcre_config(PCRE_CONFIG_UTF8, &have_utf8_pcre))) { have_utf8_pcre = -2; /* erk, failed to ask */ } - if (have_utf8_pcre < 0) - return 0; - return have_utf8_pcre; + return (have_utf8_pcre == 1) && (!strcmp(nl_langinfo(CODESET), "UTF-8")); #else return 0; diff --git a/Test/V07pcre.ztst b/Test/V07pcre.ztst index ca13419e5..22a0b64c7 100644 --- a/Test/V07pcre.ztst +++ b/Test/V07pcre.ztst @@ -162,3 +162,14 @@ echo $match[2] ) 0:regression for segmentation fault, workers/38307 >test + + LANG_SAVE=$LANG + [[ é =~ '^.\z' ]]; echo $? + LANG=C + [[ é =~ '^..\z' ]]; echo $? + LANG=$LANG_SAVE + [[ é =~ '^.\z' ]]; echo $? +0:swich between C/UTF-8 locales +>0 +>0 +>0 |