diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Doc/Zsh/zle.yo | 10 | ||||
-rw-r--r-- | Src/Zle/zle_main.c | 1 | ||||
-rw-r--r-- | Src/Zle/zle_params.c | 10 |
4 files changed, 21 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 8a61dc027..7c33de05a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-07-04 Peter Stephenson <pws@csr.com> + + * 17405: Src/Zle/zle_main.c, Src/Zle/zle_params.c, Doc/Zsh/zle.yo: + adapt 17390 so that PREDISPLAY and POSTDISPLAY are reset when zle + is entered. + 2002-07-04 Sven Wischnowsky <wischnow@zsh.org> * 17403: Src/Zle/compcore.c, Src/Zle/complete.c, diff --git a/Doc/Zsh/zle.yo b/Doc/Zsh/zle.yo index 8022a1bdd..d1e68a238 100644 --- a/Doc/Zsh/zle.yo +++ b/Doc/Zsh/zle.yo @@ -666,17 +666,15 @@ vindex(PREDISPLAY) item(tt(PREDISPLAY) (scalar))( Text to be displayed before the start of the editable text buffer. This does not have to be a complete line; to display a complete line, a newline -must be appended explicitly. Note that the text survives between calls to zle -and hence must be removed explicitly by assigning an empty value to the -parameter. +must be appended explicitly. The text is reset on each new invocation +(but not recursive invocation) of zle. ) vindex(POSTDISPLAY) item(tt(POSTDISPLAY) (scalar))( Text to be displayed after the end of the editable text buffer. This does not have to be a complete line; to display a complete line, a newline -must be prepended explicitly. Note that the text survives between calls to -zle and hence must be removed explicitly by assigning an empty value to the -parameter. +must be prepended explicitly. The text is reset on each new invocation +(but not recursive invocation) of zle. ) vindex(RBUFFER) item(tt(RBUFFER) (scalar))( diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c index 9332b509d..1ec0171bb 100644 --- a/Src/Zle/zle_main.c +++ b/Src/Zle/zle_main.c @@ -752,6 +752,7 @@ zleread(char *lp, char *rp, int flags) pmpt_attr = txtchange; rpromptbuf = promptexpand(rp, 1, NULL, NULL); rpmpt_attr = txtchange; + free_prepostdisplay(); zlereadflags = flags; histline = curhist; diff --git a/Src/Zle/zle_params.c b/Src/Zle/zle_params.c index ef8a98139..1987974d2 100644 --- a/Src/Zle/zle_params.c +++ b/Src/Zle/zle_params.c @@ -516,3 +516,13 @@ get_postdisplay(Param pm) { return get_prepost(postdisplay, postdisplaylen); } + +/**/ +void +free_prepostdisplay(void) +{ + if (predisplaylen) + set_prepost(&predisplay, &predisplaylen, NULL); + if (postdisplaylen) + set_prepost(&postdisplay, &postdisplaylen, NULL); +} |