about summary refs log tree commit diff
path: root/Src/zsh.h
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2006-04-09 21:47:21 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2006-04-09 21:47:21 +0000
commitef330a5dfddc763b83fe2406a91c61519279de68 (patch)
treea443ed27b17283591c3bd51e2938659ac03f6687 /Src/zsh.h
parent82dc72e03462d2f0ebae2f6f4794fbb941cb3c8c (diff)
downloadzsh-ef330a5dfddc763b83fe2406a91c61519279de68.tar.gz
zsh-ef330a5dfddc763b83fe2406a91c61519279de68.tar.xz
zsh-ef330a5dfddc763b83fe2406a91c61519279de68.zip
22408: support for multibyte characters in patterns
Diffstat (limited to 'Src/zsh.h')
-rw-r--r--Src/zsh.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/Src/zsh.h b/Src/zsh.h
index e1e53f6b3..6a6ff2fe4 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -1161,6 +1161,7 @@ struct patprog {
 #define GF_IGNCASE	0x0200
 #define GF_BACKREF	0x0400
 #define GF_MATCHREF	0x0800
+#define GF_MULTIBYTE	0x1000	/* Use multibyte if supported by build */
 
 /* Dummy Patprog pointers. Used mainly in executable code, but the
  * pattern code needs to know about it, too. */
@@ -1596,6 +1597,7 @@ enum {
     MARKDIRS,
     MENUCOMPLETE,
     MONITOR,
+    MULTIBYTE,
     MULTIOS,
     NOMATCH,
     NOTIFY,
@@ -1924,4 +1926,26 @@ typedef char *(*ZleGetLineFn) _((int *, int *));
 
 #define MB_INCOMPLETE	((size_t)-2)
 #define MB_INVALID	((size_t)-1)
+
+/*
+ * MB_CUR_MAX is the maximum number of bytes that a single wide
+ * character will convert into.  We use it to keep strings
+ * sufficiently long.  It should always be defined, but if it isn't
+ * just assume we are using Unicode which requires 6 characters.
+ * (Note that it's not necessarily defined to a constant.)
+ */
+#ifndef MB_CUR_MAX
+#define MB_CUR_MAX 6
+#endif
+
+/* Convert character or string to wide character or string */
+#define ZWC(c)	L ## c
+#define ZWS(s)	L ## s
+
+#else
+
+/* Leave character or string as is. */
+#define ZWC(c)	c
+#define ZWS(s)	s
+
 #endif