Yes, I've seen the subprocess problems. It happens only with
call-process, not start-process. I'm in the process of fixing the
process support so that call-process is a Lisp function written in terms
of start-process. The hard part (and it's a bitch) is that call-process
expects to be able to redirect stderr differently from stdout, and the
start-process stuff doesn't (yet) support it (but it will soon!).
I'll be posting the fix in the next day or two.
ben
Mike Alexander wrote:
With the recent big set of changes, I've had problems with ediff
which probably will affect other things. There are two problems at
least. When ediff is setting up the frame for the control window it
creates it with a height and width of 1 and then changes it to the
size it really wants. XEmacs crashes if any frame has a height less
than 2. This happens because regenerate_window in redisplay.c gets a
negative value for yend. In my case the pixel height of the window
is 28 but window_bottom_gutter_height is 32 giving an available space
of -4 pixels to display the contents of the frame.
The other problem is that when ediff runs diff the output is
appearing (very briefly) in a console window instead of being piped
back to XEmacs. I tracked this down to some code in create_child in
ntproc.c which is ifdefed out if HAVE_NTGUI is not defined:
#ifdef HAVE_NTGUI
if (NILP (Vwin32_start_process_show_window))
start.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
else
start.dwFlags = STARTF_USESTDHANDLES;
start.wShowWindow = SW_HIDE;
start.hStdInput = GetStdHandle (STD_INPUT_HANDLE);
start.hStdOutput = GetStdHandle (STD_OUTPUT_HANDLE);
start.hStdError = GetStdHandle (STD_ERROR_HANDLE);
#endif /* HAVE_NTGUI */
This is the code that passes the pipe end points to the child
process. When I put it back in, ediff works. I don't know why it's
ifdefed out, but it (or something like it) is needed on NT, at least.
Has anyone else seen these problems?
Mike
--
Ben
In order to save my hands, I am cutting back on my mail. I also write
as succinctly as possible -- please don't be offended. If you send me
mail, you _will_ get a response, but please be patient, especially for
XEmacs-related mail. If you need an immediate response and it is not
apparent in your message, please say so. Thanks for your understanding.
See also
http://www.666.com/ben/typing.html.