summaryrefslogtreecommitdiff
path: root/Src/Zle/zle_refresh.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/zle_refresh.c')
-rw-r--r--Src/Zle/zle_refresh.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/Src/Zle/zle_refresh.c b/Src/Zle/zle_refresh.c
index 8604317f3..352dcf0d6 100644
--- a/Src/Zle/zle_refresh.c
+++ b/Src/Zle/zle_refresh.c
@@ -1263,7 +1263,11 @@ zrefresh(void)
}
}
#ifdef MULTIBYTE_SUPPORT
- else if (iswprint(*t) && (width = WCWIDTH(*t)) > 0) {
+ else if (
+#ifdef __STDC_ISO_10646__
+ !ZSH_INVALID_WCHAR_TEST(*t) &&
+#endif
+ iswprint(*t) && (width = WCWIDTH(*t)) > 0) {
int ichars;
if (width > rpms.sen - rpms.s) {
int started = 0;
@@ -1367,6 +1371,12 @@ zrefresh(void)
wchar_t wc;
int started = 0;
+#ifdef __STDC_ISO_10646__
+ if (ZSH_INVALID_WCHAR_TEST(*t)) {
+ int c = ZSH_INVALID_WCHAR_TO_INT(*t);
+ sprintf(dispchars, "<%.02x>", c);
+ } else
+#endif
if ((unsigned)*t > 0xffffU) {
sprintf(dispchars, "<%.08x>", (unsigned)*t);
} else {