#include <signal.h>
/* must include CRT headers *before* config.h */
-/* ### I don't believe it - martin */
+/* #### I don't believe it - martin */
#include <config.h>
#undef signal
#undef wait
DWORD WINAPI reader_thread (void *arg);
+/* Determine if running on Windows 9x and not NT */
+static int
+windows9x_p (void)
+{
+ return GetVersion () & 0x80000000;
+}
+
/* Find an unused process slot. */
child_process *
new_child (void)
cp->procinfo.hThread=NULL;
cp->procinfo.hProcess=NULL;
- /* Hack for Windows 95, which assigns large (ie negative) pids */
- if (cp->pid < 0)
- cp->pid = -cp->pid;
-
/* pid must fit in a Lisp_Int */
-#ifdef USE_UNION_TYPE
- cp->pid = (cp->pid & ((1U << VALBITS) - 1));
-#else
- cp->pid = (cp->pid & VALMASK);
-#endif
+
*pPid = cp->pid;
errno = EINVAL;
return -1;
}
- GET_C_STRING_FILENAME_DATA_ALLOCA (full, cmdname);
+ TO_EXTERNAL_FORMAT (LISP_STRING, full,
+ C_STRING_ALLOCA, cmdname,
+ Qfile_name);
}
else
{
GetClassName (hwnd, window_class, sizeof (window_class));
if (strcmp (window_class,
- (os_subtype == OS_WIN95)
+ windows9x_p()
? "tty"
: "ConsoleWindowClass") == 0)
{
if (NILP (Vwin32_start_process_share_console) && cp && cp->hwnd)
{
#if 1
- if (os_subtype == OS_WIN95)
+ if (windows9x_p())
{
/*
Another possibility is to try terminating the VDM out-right by
/* Sync with FSF Emacs 19.34.6 note: dwWinThreadId declared in
w32term.h and defined in w32fns.c, both of which are not in current
- XEmacs. ### Check what we lose by ifdef'ing out these. --marcpa */
+ XEmacs. #### Check what we lose by ifdef'ing out these. --marcpa */
#if 0
/* Need to set input thread locale if present. */
if (dwWinThreadId)
void
syms_of_ntproc ()
{
- Qhigh = intern ("high");
- Qlow = intern ("low");
-
DEFSUBR (Fwin32_short_file_name);
DEFSUBR (Fwin32_long_file_name);
DEFSUBR (Fwin32_set_process_priority);
DEFSUBR (Fwin32_get_default_locale_id);
DEFSUBR (Fwin32_get_valid_locale_ids);
DEFSUBR (Fwin32_set_current_locale);
+}
+
+
+void
+vars_of_ntproc (void)
+{
+ defsymbol (&Qhigh, "high");
+ defsymbol (&Qlow, "low");
DEFVAR_LISP ("win32-quote-process-args", &Vwin32_quote_process_args /*
Non-nil enables quoting of process arguments to ensure correct parsing.
subprocess group, but may allow Emacs to interrupt a subprocess that doesn't
otherwise respond to interrupts from Emacs.
*/ );
- Vwin32_start_process_share_console = Qnil;
+ Vwin32_start_process_share_console = Qt;
DEFVAR_LISP ("win32-pipe-read-delay", &Vwin32_pipe_read_delay /*
Forced delay before reading subprocess output.
Vwin32_generate_fake_inodes = Qnil;
#endif
}
+
/* end of ntproc.c */