summaryrefslogtreecommitdiff
path: root/Src/Zle/zle_tricky.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/zle_tricky.c')
-rw-r--r--Src/Zle/zle_tricky.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c
index ce5855b5c..d89c47b50 100644
--- a/Src/Zle/zle_tricky.c
+++ b/Src/Zle/zle_tricky.c
@@ -1912,10 +1912,11 @@ pfxlen(char *s, char *t)
#ifdef MULTIBYTE_SUPPORT
wchar_t wc;
mbstate_t ps;
- int ret, lasti = 0;
+ size_t cnt;
+ int lasti = 0;
char inc;
- memset(&ps, 0, sizeof(mbstate_t));
+ memset(&ps, 0, sizeof ps);
while (*s) {
if (*s == Meta) {
if (*t != Meta || t[1] != s[1])
@@ -1933,11 +1934,12 @@ pfxlen(char *s, char *t)
t++;
}
- ret = mbrtowc(&wc, &inc, 1, &ps);
- if (ret == -1) {
+ cnt = mbrtowc(&wc, &inc, 1, &ps);
+ if (cnt == (size_t)-1) {
/* error */
break;
- } else if (ret >= 0) {
+ }
+ if (cnt != (size_t)-2) {
/* successfully found complete character, record position */
lasti = i;
}