On Sun, May 1, 2011 at 7:38 PM, Stig Hemmer <stighemmer@gmail.com> wrote:
On 5/1/11, nicolas edel <nicolas.edel@gmail.com> wrote:
| CL-USER> (defvar proc (sb-ext:run-program "sh" nil
|                                                       :search t :input
| :stream :output :stream :pty :stream :wait nil))

The :input and :output arguments establish stdin/out for the process.
The :pty argument ALSO establishes these.

So, when using :pty, don't use :input/:output.
Furthermore, :pty doesn't take :stream as an argument, just give it T
And afterwards, PROCESS-PTY gives the relevant stream.

* (defvar proc (sb-ext:run-program "sh" nil
                      :search t :pty t :wait nil))
PROC

[snip]
etc etc

I hope that helped a little.  I see that sh complained about not
having a tty, I hope this won't become a problem for you.

Stig Hemmer

Yes, this help.
Note:
  - sh doesn't complain here
  - ssh complains:  "ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory^M^M "

Looks like wellknown caveats:
 - termios are not set properly (termios.c_oflag &= ~ONLCR)
 - ioctl (pty, TIOCSCTTY, 1) is missing after fork

But once again, yes that helped. Thanks ;)


:Nicolas