Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
[PATCH] complist: Turn off colors before clearing to end of line
- X-seq: zsh-workers 49288
- From: Marlon Richert <marlon.richert@xxxxxxxxx>
- To: Zsh hackers list <zsh-workers@xxxxxxx>
- Subject: [PATCH] complist: Turn off colors before clearing to end of line
- Date: Tue, 17 Aug 2021 11:57:12 +0300
- Archived-at: <https://zsh.org/workers/49288>
- List-id: <zsh-workers.zsh.org>
Try the following without and with the patch, to see what this fixes:
% zmodload zsh/complist
% autoload compinit
% compinit
% bindkey '^I' menu-select
% ping -<TAB><TAB>
<Default selection highlight (reverse video) stops at the end of the match.>
% zstyle '*' list-colors 'ma=97;44'
% ping -<TAB><TAB>
<Without the patch, when changing selection, highlight continues until
end of line.>
<With the patch, it stops at the end of the match, just like the default.>
From 555dbb68a30bef5e224a5e01b9c3210884fd4a61 Mon Sep 17 00:00:00 2001
From: Marlon Richert <marlonrichert@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 17 Aug 2021 11:43:06 +0300
Subject: [PATCH] complist: Turn off colors before clearing to end of line
---
Src/Zle/complist.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index 353cb3562..4d015991f 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -1306,6 +1306,7 @@ compprintfmt(char *fmt, int n, int dopr, int doesc, int ml, int *stop)
if (dopr) {
if (!(cc % zterm_columns))
fputs(" \010", shout);
+ zcoff();
if (mlbeg >= 0 && tccan(TCCLEAREOL))
tcout(TCCLEAREOL);
}
@@ -1785,14 +1786,14 @@ clprintm(Cmgroup g, Cmatch *mp, int mc, int ml, int lastc, int width)
zcputs(g->name, COL_DU);
else
subcols = putmatchcol(g->name, m->disp);
- if (subcols)
+ if (subcols) {
ret = clprintfmt(m->disp, ml);
- else {
+ zcoff();
+ } else {
compprintfmt(m->disp, 0, 1, 0, ml, &stop);
if (stop)
ret = 1;
}
- zcoff();
} else {
int mx, modec;
--
2.32.0
Messages sorted by:
Reverse Date,
Date,
Thread,
Author