#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
#include "syswait.h"
#include "buffer.h"
#include "process.h"
+
+#include "console-msw.h"
+
/*#include "w32term.h"*/ /* From 19.34.6: sync in ? --marcpa */
/* #### I'm not going to play with shit. */
static const char * process_dir;
static BOOL
-create_child (CONST char *exe, char *cmdline, char *env,
+create_child (const char *exe, char *cmdline, char *env,
int * pPid, child_process *cp)
{
STARTUPINFO start;
xzero (start);
start.cb = sizeof (start);
-#ifdef HAVE_NTGUI
if (NILP (Vwin32_start_process_show_window))
start.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
else
start.hStdInput = GetStdHandle (STD_INPUT_HANDLE);
start.hStdOutput = GetStdHandle (STD_OUTPUT_HANDLE);
start.hStdError = GetStdHandle (STD_ERROR_HANDLE);
-#endif /* HAVE_NTGUI */
/* Explicitly specify no security */
if (!InitializeSecurityDescriptor (&sec_desc, SECURITY_DESCRIPTOR_REVISION))
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;
#endif
void
-win32_executable_type (CONST char * filename, int * is_dos_app, int * is_cygnus_app)
+win32_executable_type (const char * filename, int * is_dos_app, int * is_cygnus_app)
{
file_data executable;
char * p;
if (exe_header->e_magic != DOSMAGIC)
goto unwind;
- if ((char *) exe_header->e_lfanew > (char *) executable.size)
+ if ((char*) exe_header->e_lfanew > (char*) executable.size)
{
/* Some dos headers (pkunzip) have bogus e_lfanew fields. */
*is_dos_app = TRUE;
if (dos_header->e_magic != IMAGE_DOS_SIGNATURE)
goto unwind;
- nt_header = (PIMAGE_NT_HEADERS) ((char *) dos_header + dos_header->e_lfanew);
+ nt_header = (PIMAGE_NT_HEADERS) ((char*) dos_header + dos_header->e_lfanew);
- if ((char *) nt_header > (char *) dos_header + executable.size)
+ if ((char*) nt_header > (char*) dos_header + executable.size)
{
/* Some dos headers (pkunzip) have bogus e_lfanew fields. */
*is_dos_app = TRUE;
IMAGE_SECTION_HEADER * section;
section = rva_to_section (import_dir.VirtualAddress, nt_header);
- imports = RVA_TO_PTR (import_dir.VirtualAddress, section, executable);
+ imports = (IMAGE_IMPORT_DESCRIPTOR *) RVA_TO_PTR (import_dir.VirtualAddress,
+ section, executable);
for ( ; imports->Name; imports++)
{
- char * dllname = RVA_TO_PTR (imports->Name, section, executable);
+ char *dllname = (char*) RVA_TO_PTR (imports->Name, section, executable);
if (strcmp (dllname, "cygwin.dll") == 0)
{
*nptr++ = *optr++;
num += optr - envp2;
- qsort (new_envp, num, sizeof (char *), compare_env);
+ qsort (new_envp, num, sizeof (char*), compare_env);
*nptr = NULL;
}
/* When a new child process is created we need to register it in our list,
so intercept spawn requests. */
int
-sys_spawnve (int mode, CONST char *cmdname,
- CONST char * CONST *argv, CONST char *CONST *envp)
+sys_spawnve (int mode, const char *cmdname,
+ const char * const *argv, const char *const *envp)
{
Lisp_Object program, full;
char *cmdline, *env, *parg, **targ;
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
{
- (char*)cmdname = alloca (strlen (argv[0]) + 1);
+ cmdname = (char*)alloca (strlen (argv[0]) + 1);
strcpy ((char*)cmdname, argv[0]);
}
UNGCPRO;
/* make sure argv[0] and cmdname are both in DOS format */
unixtodos_filename ((char*)cmdname);
/* #### KLUDGE */
- ((CONST char**)argv)[0] = cmdname;
+ ((const char**)argv)[0] = cmdname;
/* Determine whether program is a 16-bit DOS executable, or a Win32
executable that is implicitly linked to the Cygnus dll (implying it
while leaving the real app name as argv[0]. */
if (is_dos_app)
{
- cmdname = alloca (MAXPATHLEN);
+ cmdname = (char*) alloca (MAXPATHLEN);
if (egetenv ("CMDPROXY"))
strcpy ((char*)cmdname, egetenv ("CMDPROXY"));
else
/* Override escape char by binding win32-quote-process-args to
desired character, or use t for auto-selection. */
if (INTP (Vwin32_quote_process_args))
- escape_char = XINT (Vwin32_quote_process_args);
+ escape_char = (char) XINT (Vwin32_quote_process_args);
else
escape_char = is_cygnus_app ? '"' : '\\';
}
}
arglen += strlen (*targ++) + 1;
}
- cmdline = alloca (arglen);
+ cmdline = (char*) alloca (arglen);
targ = (char**)argv;
parg = cmdline;
while (*targ)
/* and envp... */
arglen = 1;
- targ = (char**)envp;
+ targ = (char**) envp;
numenv = 1; /* for end null */
while (*targ)
{
numenv++;
/* merge env passed in and extra env into one, and sort it. */
- targ = (char **) alloca (numenv * sizeof (char *));
- merge_and_sort_env ((char**)envp, extra_env, targ);
+ targ = (char **) alloca (numenv * sizeof (char*));
+ merge_and_sort_env ((char**) envp, extra_env, targ);
/* concatenate env entries. */
- env = alloca (arglen);
+ env = (char*) alloca (arglen);
parg = env;
while (*targ)
{
GetClassName (hwnd, window_class, sizeof (window_class));
if (strcmp (window_class,
- (os_subtype == OS_WIN95)
+ msw_windows9x_p()
? "tty"
: "ConsoleWindowClass") == 0)
{
if (NILP (Vwin32_start_process_share_console) && cp && cp->hwnd)
{
#if 1
- if (os_subtype == OS_WIN95)
+ if (msw_windows9x_p())
{
/*
Another possibility is to try terminating the VDM out-right by
#if 0
/* Sync with FSF Emacs 19.34.6 note: ifdef'ed out in XEmacs */
-extern int report_file_error (CONST char *, Lisp_Object);
+extern int report_file_error (const char *, Lisp_Object);
#endif
/* The following two routines are used to manipulate stdin, stdout, and
stderr of our child processes.
/* 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)
\f
void
-syms_of_ntproc ()
+syms_of_ntproc (void)
{
DEFSUBR (Fwin32_short_file_name);
DEFSUBR (Fwin32_long_file_name);