Stephen J. Turnbull writes:
Henry S. Thompson writes:
> OK, one concrete data point: If you set process-connection-type to
> nil, M-x shell works in b32 and b33, albeit with some grumbling.
>
> So the problem does lie somewhere in the pty code.
That's useful information, but the pty code is a hairball.
Have you tried hg diff -rr21-5-29 -rr21-5-32 <list-of-pty-files>? I
don't think there should be all that much changed in them.
Not obvious to me exactly what the pty files are, but I've looked
pretty carefully at process.c, process-unix.c and sysdep.c, and I
can't spot anything.
I've spent another bunch of hours with b29 and b32 side-by-side with
gdb, and I can add the following non-conclusive observations:
in both versions, the child xemacs process hands over to bash with
_wexecve(bash,["bash","-noediting","-i"],[PWD=/home/ht,TERM=emacs,TERMcap=emacs:co#80:tc=unknown:,EMACS=t,_=/usr/local/bin/xemacs...](73
entries))
at child_setup we see in=out=err=7
at point of exec
p isatty(7)
0
p isatty(0)
1
whereas in parent isatty(7)=1
and fstat(0,..) in child appears to give identical results to fstat(7)
in parent
So, net-net, can't see anything wrong in child process.
In b32 parent, I we already see p->exit_code = 21 at first call to
read_process_output -- whereas it is 0 at that point in b29 parent :-(
(and bash sub-proc is showing as I, whereas in b32 case it is
showing as S already).
So, comment in procimpl.h says p->exit_code is "signal which
stopped/interrupted process", and signal 21 is SIGTTIN. . .
So, why is sub-proc showing S but signal is SIGTTIN ???
And, still, this must be down to how the pty is being initialised?
Not clear how to tell which side, i.e. parent or child, to look at for
the source of the problem.
Ben, are you listening? I'm willing to keep working on this, but
guidance on where to look for the start of the difference would be
welcome.
Unfortunately, I can't rebuild the b29 version, so I can't add
debugging output, as various cygwin-supplied header files
etc. _outside_ xemacs have changed since then, and it won't compile.
I guess I can try to find a revision in the tree that will compile
_and_ still successfully runs (shell), but there's no guarantee such a
one exists.
ht
--
Henry S. Thompson, School of Informatics, University of Edinburgh
10 Crichton Street, Edinburgh EH8 9AB, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht(a)inf.ed.ac.uk
URL:
http://www.ltg.ed.ac.uk/~ht/
[mail from me _always_ has a .sig like this -- mail without it is forged spam]
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta