summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Src/Zle/zle_refresh.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index c3bc7b6e6..1ed133a71 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2023-01-10 Oliver Kiddle <opk@zsh.org>
+ * 51290: Src/Zle/zle_refresh.c: fix display of control
+ characters with SINGLE_LINE_ZLE set
+
* 51289: Src/Zle/zle_refresh.c, Src/prompt.c: don't disable
non-colour attributes in prompts for SINGLE_LINE_ZLE and remove
superfluous extra escapes to disable attributes
diff --git a/Src/Zle/zle_refresh.c b/Src/Zle/zle_refresh.c
index 8949a851c..b196370dc 100644
--- a/Src/Zle/zle_refresh.c
+++ b/Src/Zle/zle_refresh.c
@@ -2419,6 +2419,8 @@ singlerefresh(ZLE_STRING_T tmpline, int tmpll, int tmpcs)
}
all_attr = mixattrs(special_attr, base_attr);
+ if (t0 == tmpcs)
+ nvcs = vp - vbuf;
if (tmpline[t0] == ZWC('\t')) {
for (*vp++ = zr_sp; (vp - vbuf) & 7; )
*vp++ = zr_sp;
@@ -2461,7 +2463,7 @@ singlerefresh(ZLE_STRING_T tmpline, int tmpll, int tmpcs)
&& (unsigned)tmpline[t0] <= 0xffU
#endif
) {
- ZLE_INT_T t = tmpline[++t0];
+ ZLE_INT_T t = tmpline[t0];
vp->chr = ZWC('^');
vp->atr = all_attr;
@@ -2498,8 +2500,6 @@ singlerefresh(ZLE_STRING_T tmpline, int tmpll, int tmpcs)
vp++;
}
#endif
- if (t0 == tmpcs)
- nvcs = vp - vbuf - 1;
}
if (t0 == tmpcs)
nvcs = vp - vbuf;