mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-12-29 16:25:35 +01:00
add zle-line-pre-redraw
Go to some lengths to preserve $LASTWIDGET in pre-redraw means we can't use the callzlehook function has same workaround as 29643
This commit is contained in:
parent
50721a1986
commit
9b07c6fe5a
1 changed files with 18 additions and 0 deletions
|
@ -994,6 +994,7 @@ zrefresh(void)
|
|||
int remetafy; /* flag that zle line is metafied */
|
||||
int txtchange; /* attributes set after prompts */
|
||||
int rprompt_off = 1; /* Offset of rprompt from right of screen */
|
||||
int old_incompfunc = incompfunc;
|
||||
struct rparams rpms;
|
||||
#ifdef MULTIBYTE_SUPPORT
|
||||
int width; /* width of wide character */
|
||||
|
@ -1039,6 +1040,23 @@ zrefresh(void)
|
|||
tmpalloced = 0;
|
||||
}
|
||||
|
||||
if ((initthingy = rthingy_nocreate("zle-line-pre-redraw"))) {
|
||||
char *args[2];
|
||||
Thingy lbindk_save = lbindk, bindk_save = bindk;
|
||||
refthingy(lbindk_save);
|
||||
refthingy(bindk_save);
|
||||
args[0] = initthingy->nam;
|
||||
args[1] = NULL;
|
||||
incompfunc = 0;
|
||||
execzlefunc(initthingy, args, 0);
|
||||
incompfunc = old_incompfunc;
|
||||
unrefthingy(initthingy);
|
||||
unrefthingy(lbindk);
|
||||
unrefthingy(bindk);
|
||||
lbindk = lbindk_save;
|
||||
bindk = bindk_save;
|
||||
}
|
||||
|
||||
/* this will create region_highlights if it's still NULL */
|
||||
zle_set_highlight();
|
||||
|
||||
|
|
Loading…
Reference in a new issue