summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2026-06-08 20:57:06 +0200
committerMikael Magnusson <mikachu@gmail.com>2026-06-14 01:57:17 +0200
commitf9d159b88ab8ea843a3231cadd0c0b57da74cc8b (patch)
tree5d528b8340aa2be7b5ecd845bdc55cc3067fa5e0
parent54713: fix multibyte error reporting in zparseopts (diff)
downloadzsh-f9d159b88ab8ea843a3231cadd0c0b57da74cc8b.tar
zsh-f9d159b88ab8ea843a3231cadd0c0b57da74cc8b.tar.gz
zsh-f9d159b88ab8ea843a3231cadd0c0b57da74cc8b.tar.bz2
zsh-f9d159b88ab8ea843a3231cadd0c0b57da74cc8b.tar.lz
zsh-f9d159b88ab8ea843a3231cadd0c0b57da74cc8b.tar.xz
zsh-f9d159b88ab8ea843a3231cadd0c0b57da74cc8b.tar.zst
zsh-f9d159b88ab8ea843a3231cadd0c0b57da74cc8b.zip
54714: add MB_NICECHAR and use it
-rw-r--r--ChangeLog3
-rw-r--r--Src/Modules/zutil.c8
-rw-r--r--Src/glob.c8
-rw-r--r--Src/utils.c8
-rw-r--r--Src/zsh.h4
5 files changed, 13 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 32918bbea..d6d76b801 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2026-06-14 Mikael Magnusson <mikachu@gmail.com>
+ * 54714: Src/Modules/zutil.c, Src/glob.c, Src/utils.c, Src/zsh.h:
+ add MB_NICECHAR and use it
+
* 54713: Src/Modules/zutil.c: fix multibyte error reporting
in zparseopts
diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c
index 0bc340dc9..6f53f5c53 100644
--- a/Src/Modules/zutil.c
+++ b/Src/Modules/zutil.c
@@ -1991,12 +1991,8 @@ bin_zparseopts(char *nam, char **args, Options ops, UNUSED(int func))
if (*o != '-' || o > *pp + 1) {
convchar_t wc = unmeta_one(o, NULL);
fprintf(stderr, "%s: bad option: -", progname);
-#ifdef MULTIBYTE_SUPPORT
- mb_charinit();
- zputs(wcs_nicechar(wc, NULL, NULL), stderr);
-#else
- zputs(nicechar(wc), stderr);
-#endif
+ MB_CHARINIT();
+ zputs(MB_NICECHAR(wc), stderr);
fputc('\n', stderr);
} else {
fprintf(stderr, "%s: bad option: -%s\n", progname, o);
diff --git a/Src/glob.c b/Src/glob.c
index a6fd3377d..dab3d0ec7 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -2325,12 +2325,8 @@ xpandbraces(LinkList list, LinkNode *np)
do {
char *ncptr;
int nclen;
-#ifdef MULTIBYTE_SUPPORT
- mb_charinit();
- ncptr = wcs_nicechar(cend, NULL, NULL);
-#else
- ncptr = nicechar(cend);
-#endif
+ MB_CHARINIT();
+ ncptr = MB_NICECHAR(cend);
nclen = strlen(ncptr);
p = zhalloc(lenalloc + nclen);
memcpy(p, str3, strp);
diff --git a/Src/utils.c b/Src/utils.c
index 0b4bb9a82..65ed98907 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -342,12 +342,8 @@ zerrmsg(FILE *file, const char *fmt, va_list ap)
break;
case 'c':
num = va_arg(ap, int);
-#ifdef MULTIBYTE_SUPPORT
- mb_charinit();
- zputs(wcs_nicechar(num, NULL, NULL), file);
-#else
- zputs(nicechar(num), file);
-#endif
+ MB_CHARINIT();
+ zputs(MB_NICECHAR(num), file);
break;
case 'e':
/* print the corresponding message for this errno */
diff --git a/Src/zsh.h b/Src/zsh.h
index 69f647323..1f1ecc3e6 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -3285,6 +3285,8 @@ typedef wint_t convchar_t;
#define MB_CHARLENCONV(str, len, cp) mb_charlenconv((str), (len), (cp))
#define MB_CHARLEN(str, len) mb_charlenconv((str), (len), NULL)
+#define MB_NICECHAR(cp) wcs_nicechar((cp), NULL, NULL)
+
/*
* We replace broken implementations with one that uses Unicode
* characters directly as wide characters. In principle this is only
@@ -3364,6 +3366,8 @@ typedef int convchar_t;
#define MB_CHARLENCONV(str, len, cp) charlenconv((str), (len), (cp))
#define MB_CHARLEN(str, len) ((len) ? 1 : 0)
+#define MB_NICECHAR(cp) nicechar((cp))
+
#define WCWIDTH_WINT(c) (1)
/* Leave character or string as is. */