PATCH 5/6: add MB_NICECHAR and use it

Mikael Magnusson <[email protected]>
Newsgroups gmane.comp.shells.zsh.devel
Message-ID <[email protected]>
---

Maybe it should be called WCS_NICECHAR, but I figured MB_ is a nice reminder that you
need to call MB_CHARINIT first.

 Src/Modules/zutil.c | 8 ++------
 Src/glob.c          | 8 ++------
 Src/utils.c         | 8 ++------
 Src/zsh.h           | 4 ++++
 4 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c
index 0bc340dc90..6f53f5c535 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 946a50c06f..2a05a5c816 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -2324,12 +2324,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 e16a9085e2..ecf61255c1 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 2858b46aa1..471a0f3a5d 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -3286,6 +3286,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
@@ -3365,6 +3367,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. */
-- 
2.38.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.