X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/99a33b77e15b9a075024701d060d912b2fd87caf..14af5f7fc4d7557ee712d3b6a8b46d9034c2ff39:/src/w32proc.c diff --git a/src/w32proc.c b/src/w32proc.c index e94d9aa325..f7982f3691 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -1,5 +1,5 @@ /* Process support for GNU Emacs on the Microsoft W32 API. - Copyright (C) 1992, 1995, 1999-2011 Free Software Foundation, Inc. + Copyright (C) 1992, 1995, 1999-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -51,7 +51,6 @@ extern BOOL WINAPI IsValidLocale (LCID, DWORD); #endif #include "lisp.h" -#include "character.h" #include "w32.h" #include "w32heap.h" #include "systime.h" @@ -123,12 +122,12 @@ new_child (void) for (cp = child_procs + (child_proc_count-1); cp >= child_procs; cp--) if (!CHILD_ACTIVE (cp)) - goto Initialise; + goto Initialize; if (child_proc_count == MAX_CHILDREN) return NULL; cp = &child_procs[child_proc_count++]; - Initialise: + Initialize: memset (cp, 0, sizeof (*cp)); cp->fd = -1; cp->pid = -1; @@ -175,7 +174,7 @@ delete_child (child_process *cp) cp->status = STATUS_READ_ERROR; SetEvent (cp->char_consumed); #if 0 - /* We used to forceably terminate the thread here, but it + /* We used to forcibly terminate the thread here, but it is normally unnecessary, and in abnormal cases, the worst that will happen is we have an extra idle thread hanging around waiting for the zombie process. */ @@ -242,7 +241,8 @@ reader_thread (void *arg) /* We have to wait for the go-ahead before we can start */ if (cp == NULL - || WaitForSingleObject (cp->char_consumed, INFINITE) != WAIT_OBJECT_0) + || WaitForSingleObject (cp->char_consumed, INFINITE) != WAIT_OBJECT_0 + || cp->fd < 0) return 1; for (;;) @@ -821,7 +821,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) The w32 GNU-based library from Cygnus doubles quotes to escape them, while MSVC uses backslash for escaping. (Actually the MSVC - startup code does attempt to recognise doubled quotes and accept + startup code does attempt to recognize doubled quotes and accept them, but gets it wrong and ends up requiring three quotes to get a single embedded quote!) So by default we decide whether to use quote or backslash as the escape character based on whether the @@ -2296,7 +2296,7 @@ filesystems via ange-ftp. */); doc: /* Non-nil means attempt to fake realistic inode values. This works by hashing the truename of files, and should detect aliasing between long and short (8.3 DOS) names, but can have -false positives because of hash collisions. Note that determing +false positives because of hash collisions. Note that determining the truename of a file can be slow. */); Vw32_generate_fake_inodes = Qnil; #endif @@ -2320,4 +2320,3 @@ where the performance impact may be noticeable even on modern hardware. */); staticpro (&Vw32_valid_codepages); } /* end of w32proc.c */ -