Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Bug#444583: zsh: precmd not executed before a new prompt is displayed when a job exists



On Sep 29, 11:28am, Clint Adams wrote:
} Subject: Re: Bug#444583: zsh: precmd not executed before a new prompt is d
}
} On Sat, Sep 29, 2007 at 05:10:35PM +0200, Bas Zoetekouw wrote:
} > - the zsh then displays something like "[1]  + done  xeyes" and a new
} >   prompt.  Before this prompt, the precmd command doesn't seem to be
} >   executed.
} 
} Could someone clarify the documentation here?

Do you mean clarify it for you, here on the list, or clarify it in the
yodl files for commit to CVS?

I'm not really sure how to do the latter.  To explain that "before each
prompt" does not mean "before each time the prompt is printed" but
rather "before each time zsh computes the prompt it will be re-printing
over and over between finishing the previous command and the next time
the accept-line widget is executed" is probably *more* confusing rather
than less.

Bas, how would you phrase it?

The thing is, that when zsh is interrupted by the child-exited signal
handler and displays the "[1]  + done  xeyes" message, the prompt that
it prints next is the SAME prompt that it printed before; it's merely
re-printing the "old" prompt to make the display look nice.  The precmd
function is run only when zsh regenerates a NEW prompt.  But it's simply
not possible to document every possible special case; in fact, you won't
even get the "[1]  + done  xeyes" if you "unsetopt NOTIFY", and NOTIFY
is not set by default, so the circumstance you describe doesn't happen
in the shell's base configuration.



Messages sorted by: Reverse Date, Date, Thread, Author