summaryrefslogtreecommitdiff
path: root/Src/Zle/complist.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2006-08-20 22:28:17 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2006-08-20 22:28:17 +0000
commit754503c60d7323a7456f4458da9d80138d32b4ba (patch)
treeba7c0d6d0cfe27ee16716613b2dbb2bcaec9678f /Src/Zle/complist.c
parent1217d5a66d2e84372af577165568e5911868aa6b (diff)
downloadzsh-754503c60d7323a7456f4458da9d80138d32b4ba.tar.gz
zsh-754503c60d7323a7456f4458da9d80138d32b4ba.zip
22651: failed to unmetafy bytes for output
Diffstat (limited to 'Src/Zle/complist.c')
-rw-r--r--Src/Zle/complist.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index 421901b78..886b4a685 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -621,7 +621,11 @@ clprintfmt(Listcols c, char *p, int ml)
if (ml == mlend - 1 && (cc % columns) == columns - 1)
return 0;
- putc(*p, shout);
+ if (*p == Meta) {
+ p++;
+ putc(*p ^ 32, shout);
+ } else
+ putc(*p, shout);
if ((beg = !(cc % columns)))
ml++;
if (mscroll && !(cc % columns) &&
@@ -1137,8 +1141,14 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop)
dopr = 0;
continue;
}
- while (len--)
- putc(*p++, shout);
+ while (len--) {
+ if (*p == Meta) {
+ len--;
+ p++;
+ putc(*p++ ^ 32, shout);
+ } else
+ putc(*p++, shout);
+ }
if ((beg = !(cc % columns)) && !stat) {
ml++;
fputs(" \010", shout);