zsh-users
 help / color / mirror / code / Atom feed
* Processing "%?" in PROMPT?
@ 2019-11-20 21:27 Christopher Nebel
  2019-11-20 21:42 ` Roman Perepelitsa
  0 siblings, 1 reply; 2+ messages in thread
From: Christopher Nebel @ 2019-11-20 21:27 UTC (permalink / raw)
  To: zsh-users

In my PROMPT, I want to get the status of the last command executed before the prompt, what in prompt expansion would be %?, but I want to pass it to a function.  (Why?  I like the idea of %? in the prompt, but thought it would be nice to dress it up a bit by rendering it as something other than just a number: “EX_USAGE” instead of “64” or “SIGILL” instead of “132”.  That means passing the value of %? to a function to generate the text that appears in the prompt.)

My first attempt was to set PROMPT to ‘$(pretty-status %?)’, which doesn’t work because the “%?” is passed literally.  I’ve tried various ways of evaluating “%?” — “print -P %?”, the “(%)” expansion flag — but none them work, because they expand to the same thing as “$?”, which is the status of the last command executed anywhere, including inside command substitution for the prompt.  I could use a precmd function to save $? in a global, but only if I could guarantee that it was called before anything else, and that’s not a promise I’m comfortable making.

Any suggestions?  zsh clearly has the value I want, since it uses it in prompt percent expansion, but how do I get at it?  I’m honestly not sure if the behavior I’m seeing in “print -P %?” is a bug or if it’s working as designed.  I’m mostly using zsh 5.3, but I’m seeing the same thing in 5.9.


—Chris N.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-11-20 21:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-20 21:27 Processing "%?" in PROMPT? Christopher Nebel
2019-11-20 21:42 ` Roman Perepelitsa

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).