about summary refs log tree commit diff
path: root/Src/wcwidth9.h
diff options
context:
space:
mode:
authorJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2017-05-12 12:10:13 +0900
committerJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2017-05-12 12:10:13 +0900
commit171e7fa4c1d9cbf0d8ff35ee795e1599913aa329 (patch)
treeded7e4f9df81e95c9d62ed93ef45cc6c9afcee76 /Src/wcwidth9.h
parent4bb81eefbd2a0093d0d3c1b9f4aa1de027512834 (diff)
downloadzsh-171e7fa4c1d9cbf0d8ff35ee795e1599913aa329.tar.gz
zsh-171e7fa4c1d9cbf0d8ff35ee795e1599913aa329.tar.xz
zsh-171e7fa4c1d9cbf0d8ff35ee795e1599913aa329.zip
41090: Replace iswprint() if unicode9 is enabled.
If wcwidth() or iswprint() is broken, force enable unicode9.
Diffstat (limited to 'Src/wcwidth9.h')
-rw-r--r--Src/wcwidth9.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/Src/wcwidth9.h b/Src/wcwidth9.h
index 07e6bae1c..448f548e9 100644
--- a/Src/wcwidth9.h
+++ b/Src/wcwidth9.h
@@ -22,6 +22,7 @@ static const struct wcwidth9_interval wcwidth9_nonprint[] = {
   {0x070f, 0x070f},
   {0x180b, 0x180e},
   {0x200b, 0x200f},
+  {0x2028, 0x2029},
   {0x202a, 0x202e},
   {0x206a, 0x206f},
   {0xd800, 0xdfff},
@@ -1283,6 +1284,9 @@ static inline bool wcwidth9_intable(const struct wcwidth9_interval *table, size_
 }
 
 static inline int wcwidth9(int c) {
+  if (c == 0) {
+    return 0;
+  }
   if (c < 0|| c > 0x10ffff) {
     return -1;
   }
@@ -1292,7 +1296,7 @@ static inline int wcwidth9(int c) {
   }
 
   if (wcwidth9_intable(wcwidth9_combining, WCWIDTH9_ARRAY_SIZE(wcwidth9_combining), c)) {
-    return -1;
+    return 0;
   }
 
   if (wcwidth9_intable(wcwidth9_not_assigned, WCWIDTH9_ARRAY_SIZE(wcwidth9_not_assigned), c)) {