Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: PATCH: make unicode support configurable
- X-seq: zsh-workers 21629
- From: Wayne Davison <wayned@xxxxxxxxxxxxxxxxxxxxx>
- To: Peter Stephenson <pws@xxxxxxx>
- Subject: Re: PATCH: make unicode support configurable
- Date: Mon, 15 Aug 2005 11:27:52 -0700
- Cc: zsh-workers@xxxxxxxxxx
- In-reply-to: <13553.1124126857@xxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <20050815171733.GB29158@xxxxxxxxx> <13553.1124126857@xxxxxxx>
On Mon, Aug 15, 2005 at 06:27:37PM +0100, Peter Stephenson wrote:
> Probably something more general is appropriate [...]
> --enable-multibyte-zle is about the best I can think of.
OK. I also like Oliver's logic that we will want to tie-in any future
multibyte support into the same option, so my newest patch changes the
option name to just --enable-multibyte. If we decide the -zle suffix
is better, it will be easy to add.
> (indeed, [something more general] would be [appropriate] for the name
> ZLE_UNICODE_SUPPORT if the definition doesn't depend on ISO 10646).
I'll leave any possible renaming of the ZLE_UNICODE_SUPPORT define for
later.
> It's possible we might: it controls whether printf understands Unicode.
Oh, I didn't realize that. I've restored that logic in this new patch
and enhanced the comment to mention printf. The code in system.h still
checks for __STDC_ISO_10646__ for this, though I don't know if the
subset actually needs this test or not.
My new patch also removes some debug code that got left in the previous
patch (it echoed a var to /tmp/uni).
Let me know if there are any objections to my checking this in.
..wayne..
--- configure.ac 1 Aug 2005 09:54:56 -0000 1.37
+++ configure.ac 15 Aug 2005 18:22:36 -0000
@@ -2063,6 +2063,37 @@ int ptsname();], ,
fi
fi
+dnl ---------------------
+dnl multibyte ZLE support
+dnl ---------------------
+AC_ARG_ENABLE(multibyte,
+[ --enable-multibyte support multibyte chars in the zsh line editor],
+[zsh_cv_c_zle_unicode_support=$enableval],
+[AC_CACHE_CHECK(if the system adequately supports multibyte chars,
+ zsh_cv_c_zle_unicode_support,
+ [AC_TRY_COMPILE([
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif
+ ], [
+int main() {
+#if defined(HAVE_WCHAR_H) && defined(HAVE_WCTOMB) \
+ && defined(HAVE_MBRTOWC) && defined(HAVE_WCRTOMB) \
+ && defined (__STDC_ISO_10646__)
+ return 0;
+#else
+# error Not supported.
+#endif
+}
+ ],
+ zsh_cv_c_zle_unicode_support=yes,
+ zsh_cv_c_zle_unicode_support=no)])
+])
+AH_TEMPLATE([ZLE_UNICODE_SUPPORT],
+[Define to 1 if you want unicode support in the line editor.])
+if test $zsh_cv_c_zle_unicode_support = yes; then
+ AC_DEFINE(ZLE_UNICODE_SUPPORT)
+fi
dnl ---------------
dnl dynamic loading
--- Src/system.h 15 Aug 2005 10:01:48 -0000 1.33
+++ Src/system.h 15 Aug 2005 18:22:36 -0000
@@ -692,21 +692,17 @@ extern short ospeed;
#endif
/*
- * This is a subset of ZLE_UNICODE_SUPPORT. It is not all that likely
- * that only the subset is supported, however it's easy to make the
- * \u and \U escape sequences work with just the following.
+ * The ZLE_UNICODE_SUPPORT configure-define specifies that we want to enable
+ * complete Unicode conversion between wide characters and multibyte strings.
*/
-#if defined(HAVE_WCHAR_H) && defined(HAVE_WCTOMB) && defined (__STDC_ISO_10646__)
-# include <wchar.h>
-# include <wctype.h>
-
+#if defined ZLE_UNICODE_SUPPORT \
+ || (defined HAVE_WCHAR_H && defined HAVE_WCTOMB && defined __STDC_ISO_10646__)
/*
- * More stringent requirements to enable complete Unicode conversion
- * between wide characters and multibyte strings.
+ * If ZLE_UNICODE_SUPPORT is not defined, these includes provide a subset of
+ * Unicode support that makes the \u and \U printf escape sequences work.
*/
-#if defined(HAVE_MBRTOWC) && defined(HAVE_WCRTOMB)
-#define ZLE_UNICODE_SUPPORT 1
-#endif
+# include <wchar.h>
+# include <wctype.h>
#else
# ifdef HAVE_LANGINFO_H
# include <langinfo.h>
Messages sorted by:
Reverse Date,
Date,
Thread,
Author