]> sjero.net Git - wget/commitdiff
[svn] Fix fake_fork error handling for Windows 98.
authorhniksic <devnull@localhost>
Thu, 25 Mar 2004 19:18:54 +0000 (11:18 -0800)
committerhniksic <devnull@localhost>
Thu, 25 Mar 2004 19:18:54 +0000 (11:18 -0800)
Patch by David Fritz.

src/ChangeLog
src/mswindows.c

index b422b45eeaf9cf20c390112d5d55be1ef5b98132..9b90176c1e2cb61c48b9f3704e321f767c1fe468 100644 (file)
@@ -1,3 +1,9 @@
+2004-03-25  David Fritz  <zeroxdf@att.net>
+
+       * mswindows.c (fake_fork_child): Ignore error code when
+       OpenFileMapping() fails; assume it failed because the object does
+       not exist.
+
 2004-03-24  David Fritz  <zeroxdf@att.net>
 
        * mswindows.c (fake_fork): New function.
index e2be4dd5a86d87b74bc716103aea7ea59db848f9..df8d5161ec2bc040d7a9f8544025ec01c9e96b16 100644 (file)
@@ -158,19 +158,15 @@ fake_fork_child (void)
   HANDLE section, event;
   struct fake_fork_info *info;
   char *name;
-  DWORD le;
 
   name = make_section_name (GetCurrentProcessId ());
   section = OpenFileMapping (FILE_MAP_WRITE, FALSE, name);
-  le = GetLastError ();
   xfree (name);
+  /* It seems that Windows 9x and NT set last-error inconsistently when
+     OpenFileMapping() fails; so we assume it failed because the section
+     object does not exist.  */
   if (!section)
-    {
-      if (le == ERROR_FILE_NOT_FOUND)
-        return 0;   /* Section object does not exist; we are the parent.  */
-      else
-        return -1;
-    }
+    return 0;                   /* We are the parent.  */
 
   info = MapViewOfFile (section, FILE_MAP_WRITE, 0, 0, 0);
   if (!info)
@@ -258,7 +254,7 @@ fake_fork (void)
   if (!event)
     return;
 
-  /* Creat the child process detached form the current console and in a
+  /* Create the child process detached form the current console and in a
      suspended state.  */
   memset (&si, 0, sizeof (si));
   si.cb = sizeof (si);