selecta blows up when given input before output is written to stdout
Julian opened this issue · 2 comments
I can't tell if this is the same issue as #103 -- I do use both tmux
and coreutils on OSX, so it seems suspicious, but for me, things blow up even outside of tmux, so at least that part is different, and the exact reproducer is different as well.
Namely, the following works fine:
⊙ seq 10 | selecta jberman@Home
1 > 3
3
but if you start to give input on stdin before output has been written, via e.g.:
⊙ { sleep 3; seq 10 } | selecta jberman@Home
2 > 1
1
10
stty: 'standard input': unable to perform all requested operations
Traceback (most recent call last):
9: from /usr/local/bin/selecta:839:in `<main>'
8: from /usr/local/bin/selecta:45:in `main'
7: from /usr/local/bin/selecta:584:in `with_screen'
6: from /usr/local/bin/selecta:801:in `with_tty'
5: from /usr/local/bin/selecta:591:in `block in with_screen'
4: from /usr/local/bin/selecta:613:in `restore_tty'
3: from /usr/local/bin/selecta:821:in `stty'
2: from /usr/local/bin/selecta:828:in `command'
1: from /usr/local/bin/selecta:828:in `pipe'
/usr/local/bin/selecta:831:in `block in command': Command failed: "stty 6902:3:4b00:5cf:4:ff:ff:7f:17:15:12:0:3:1c:1a:19:11:13:16:f:1:0:14:0" (RuntimeError)
where I typed that 1 before the sleep had exited, then I get the stty invalid operation traceback.
OK, I can though confirm that the problem goes away if I remove /usr/local/opt/coreutils/libexec/gnubin from my path
.
Maybe this is the same issue, and #103 possibly left out the detail above.
For now I suppose I'll just alias selecta
to remove coreutils from my path I suppose.
Yes, I think it's just #103 again. I don't understand why GNU even provides an stty binary on OS X. My understanding of stty is that it has deep knowledge of the kernel's pty subsystem, so it really only makes sense to use an stty written by the authors of the kernel (in this case, Apple). I'll close this for now, but please reopen it if you encounter anything like this while using the stty shipped with the OS!