Hi (author of foot here),

I happened to see this bug, and it caught my interest. What I found is this:

SIGPIPE is Sway's doing. It configures it to be ignored (by setting its signal 
handler to SIG_IGN). Now, normally signal dispositions are restored to their 
defaults after an exec(). The exception is ignored signals, which _do_ get 
inherited.

The combination of foot+bash is important too, because neither foot, nor bash 
restore signals they don't touch. In other words, SIGPIPE being ignored is 
inherited from Sway, through foot, through bash, and finally into dgit. Both 
zsh and fish appear to reset all signals, and are not affected.

Now, foot _could_ also restore all signals, just like zsh and fish. For the 
time being I think it's better not to do so, since it would just have hidden 
the bug in Sway.

There was also a bug in foot, where an ignored SIGHUP could "leak" into spawned 
processes.

I'll try to put together a patch for sway.

Reply via email to