--On Monday, June 17, 2002 8:03 PM -0700 Andy Piper <andy(a)xemacs.org>
wrote:
> I don't think this has anything to do with portable dumping
or DLL
> conflicts. The fix that was in 21.1.9 was later backed out
> because it was
> causing other problems. Currently it's not possible to use the
> MKS Toolkit
> shell under the native XEmacs on Windows.
I vaguely remember now. What was the fix? Should we put a note in
PROBLEMS?
When the native Windows version of XEmacs creates a process it injects
some code into a thread in the new process to call SetConsoleCtrlHandler
in that process. As it currently stands it does this before starting the
main thread in the new process. This causes some minor change in the
memory layout of the process which apparently confuses the MKS shell. My
change was to defer this forced call to SetConsoleCtrlHandler until the
main thread had a chance to get started. This solves the problem with the
MKS shell but made it impossible to interrupt some programs.
In my workspace I have a version which makes the behavior conditional on
the setting of a Lisp variable mswindows-mks-compatible-start-process, but
I've never proposed checking that in since my general feeling is that
there must be a better way to handle this whole problem. I've discovered
that, even with the original code, it's not possible to reliably interrupt
some subprocesses. Other programs that start subprocesses are able to
interrupt them so there must be a way to do this properly. I just haven't
had time to look into it in detail. In the maintime a note in PROBLEMS
would be a good idea.
Mike