From: Vincent Lefevre <vincent@vinc17.net>
To: zsh-workers@zsh.org
Subject: Re: prompt update and TRAPCHLD
Date: Thu, 21 Jan 2016 14:51:20 +0100 [thread overview]
Message-ID: <20160121135120.GC21104@cventin.lip.ens-lyon.fr> (raw)
In-Reply-To: <160114185941.ZM18307@torch.brasslantern.com>
On 2016-01-14 18:59:41 -0800, Bart Schaefer wrote:
> The right thing is to explicitly tell ZLE to update the prompt:
>
> TRAPCHLD() {
> psvar[1]=$RANDOM
> [[ -o zle ]] && zle reset-prompt
> }
There's something wrong with it:
cventin:~> where TRAPCHLD <14:00:55
TRAPCHLD () {
[[ -o zle ]] && zle reset-prompt
}
cventin:~> echo & <14:00:59
[1] 23998
[1] + done echo
TRAPCHLD:zle: widgets can only be called when ZLE is active
> Or perhaps your complaint is that the TRAP* function should run sooner?
I think I was surprised when doing some tests. I thought that there
was some race condition in my code because the TRAPCHLD was run too
soon, but that's the opposite! So, the problem is something else.
I've now a better view of what happens. I have something like:
updprompt()
{
local njobs=$#jobstates
echo "--> $njobs" > /dev/tty
print -nP "\e]2;${njobs}\x07" > /dev/tty
echo "--> $njobs" > /dev/tty
}
(the "echo ..." are mainly added for the test).
precmd() { updprompt }
TRAPCHLD() { if [[ -o interactive && -n $TTY ]] then updprompt; fi }
When I type "echo &", in the command line, I generally get:
cventin:~> echo & <14:45:58
[1] 29151
--> 1
--> 1
[1] + done echo
--> 0
--> 0
with "0" in the terminal window title, but I sometimes get:
cventin:~> echo & <14:45:59
[1] 29153
--> 1
[1] + done echo
--> 0
--> 0
--> 1
with "1" in the terminal window title.
Now, I don't understand how this is possible if TRAPCHLD is run
after the prompt is redrawn, i.e. after updprompt has completed
in precmd!
--
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
next prev parent reply other threads:[~2016-01-21 13:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-14 17:16 Vincent Lefevre
2016-01-15 2:59 ` Bart Schaefer
2016-01-21 13:51 ` Vincent Lefevre [this message]
2016-01-21 19:13 ` Bart Schaefer
2016-01-22 1:42 ` Vincent Lefevre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160121135120.GC21104@cventin.lip.ens-lyon.fr \
--to=vincent@vinc17.net \
--cc=zsh-workers@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).