about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2005-12-14 18:28:53 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2005-12-14 18:28:53 +0000
commit12f20954e9b455f3af61af56dbf5aa26ed7b7c3a (patch)
treef132d0e98e40a3dbee884ef037e5bc1bcff5cd17
parent4075f654007cd85e4edd9e5bd87b6bd9eeac763b (diff)
downloadzsh-12f20954e9b455f3af61af56dbf5aa26ed7b7c3a.tar.gz
zsh-12f20954e9b455f3af61af56dbf5aa26ed7b7c3a.tar.xz
zsh-12f20954e9b455f3af61af56dbf5aa26ed7b7c3a.zip
22075: assume we can convert characters with wctomb() with --enable-multibyte
-rw-r--r--ChangeLog6
-rw-r--r--Src/utils.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index edd4a1040..4e3793923 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-14  Peter Stephenson  <pws@csr.com>
+
+	* 22075: Src/utils.c: assume the effect of __STDC_ISO_10646__ for
+	character conversion when --enable-multibyte is in effect (since
+	we do everywhere else).
+
 2005-12-12  Peter Stephenson  <pws@csr.com>
 
 	* unposted: Config/version.mk: aargh, didn't commit this for
diff --git a/Src/utils.c b/Src/utils.c
index 21fdffddb..0265f9c52 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -3918,7 +3918,7 @@ dquotedzputs(char const *s, FILE *stream)
 }
 #endif
 
-# if defined(HAVE_NL_LANGINFO) && defined(CODESET) && !defined(__STDC_ISO_10646__)
+# if defined(HAVE_NL_LANGINFO) && defined(CODESET) && !defined(__STDC_ISO_10646__) && !defined(MULTIBYTE_SUPPORT)
 /* Convert a character from UCS4 encoding to UTF-8 */
 
 /**/
@@ -3984,7 +3984,7 @@ getkeystring(char *s, int *len, int fromwhere, int *misc)
     char svchar = '\0';
     int meta = 0, control = 0;
     int i;
-#if defined(HAVE_WCHAR_H) && defined(HAVE_WCTOMB) && defined(__STDC_ISO_10646__)
+#if defined(HAVE_WCHAR_H) && defined(HAVE_WCTOMB) && (defined(__STDC_ISO_10646__) || defined(MULTIBYTE_SUPPORT))
     wint_t wval;
     size_t count;
 #else
@@ -4093,7 +4093,7 @@ getkeystring(char *s, int *len, int fromwhere, int *misc)
 		    *misc = wval;
 		    return s+1;
 		}
-#if defined(HAVE_WCHAR_H) && defined(HAVE_WCTOMB) && defined(__STDC_ISO_10646__)
+#if defined(HAVE_WCHAR_H) && defined(HAVE_WCTOMB) && (defined(__STDC_ISO_10646__) || defined(MULTIBYTE_SUPPORT))
 		count = wctomb(t, (wchar_t)wval);
 		if (count == (size_t)-1) {
 		    zerr("character not in range", NULL, 0);