<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 12, 2017 at 2:59 AM, Thomas Levine <span dir="ltr"><<a href="mailto:_@thomaslevine.com" target="_blank">_@thomaslevine.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">How can I receive the output of a tty in another program? Or, perhaps<br>
an easier way of asking this: is there good documentation on how to<br>
implement a terminal emulator?<br>
<br>
To give you an idea of what I am looking for, it could naïvely sort of<br>
make sense that the following procedure would accomplish what I want.<br>
Inside the sending virtual terminal, run this.<br>
<br>
  ln -s $(tty) /tmp/tty<br>
<br>
Then, inside the receiving program, run this<br>
<br>
  cat /tmp/tty<br>
<br>
Of course it does not do what I want, probably because both the first<br>
terminal and the cat are consuming output of the tty.<br>
<br>
<br>
<br>
I want this so I can improve my screen reader software. In the present<br>
implementation I have patched script(1) so that output to the file is<br>
less buffered and so that header and footer messages are not printed.<br>
<a href="https://thomaslevine.com/scm/tsh/artifact/ab625a43ee958dba" rel="noreferrer" target="_blank">https://thomaslevine.com/scm/<wbr>tsh/artifact/ab625a43ee958dba</a><br>
<br>
Then I send the output from the resulting patched script(1) to a FIFO,<br>
and I read from the FIFO into espeak.<br>
<a href="https://thomaslevine.com/scm/tsh/artifact/75f981520a431d96" rel="noreferrer" target="_blank">https://thomaslevine.com/scm/<wbr>tsh/artifact/75f981520a431d96</a><br>
<br>
I think I should be able to implement this far more simply by reading<br>
directly from an ordinary tty rather than using script(1).<br>
<br>
My present implementation is still much better than that of any other<br>
screen reader that I am aware of. Mine is far simpler than all the<br>
others that I have read about because the others all implement<br>
unnecessary non-standard alternatives to things that already already<br>
exist in shells or in Unix-style programs that can easily be called from<br>
shells. The main benefit of doing this without patching script(1) is<br>
thus to make it easier to port to other systems.<br>
<br>
______________________________<wbr>_________________<br>
talk mailing list<br>
<a href="mailto:talk@lists.nycbug.org">talk@lists.nycbug.org</a><br>
<a href="http://lists.nycbug.org/mailman/listinfo/talk" rel="noreferrer" target="_blank">http://lists.nycbug.org/<wbr>mailman/listinfo/talk</a></blockquote></div><br>Funny I was looking to do something similar the other day. Wanted to pipe stdout via a tee to netcat. I think creative use of the "screen" program could do it, but haven't spent enough time in the gedankenwelt to get it done.<br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">-jesse</div>
</div></div>