OSDN Git Service

* dtable.cc (dtable::set_file_pointers_for_exec): Reenable. Fix
authorcorinna <corinna>
Fri, 14 Dec 2007 11:32:40 +0000 (11:32 +0000)
committercorinna <corinna>
Fri, 14 Dec 2007 11:32:40 +0000 (11:32 +0000)
comment.
* spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec
only for non-Cygwin processes.

winsup/cygwin/ChangeLog
winsup/cygwin/dtable.cc
winsup/cygwin/spawn.cc

index 375167f..f5db89d 100644 (file)
@@ -1,3 +1,10 @@
+2007-12-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * dtable.cc (dtable::set_file_pointers_for_exec): Reenable.  Fix
+       comment.
+       * spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec
+       only for non-Cygwin processes.
+
 2007-12-13  Craig MacGregor  <cmacgreg@gmail.com>
            Corinna Vinschen  <corinna@vinschen.de>
 
index fc9b3a7..5753846 100644 (file)
@@ -672,8 +672,8 @@ dtable::fixup_before_exec (DWORD target_proc_id)
 void
 dtable::set_file_pointers_for_exec ()
 {
-/* This is not POSIX-compliant. */
-#if 0
+/* This is not POSIX-compliant so the function is only called for
+   non-Cygwin processes. */
   LONG off_high = 0;
   lock ();
   fhandler_base *fh;
@@ -681,7 +681,6 @@ dtable::set_file_pointers_for_exec ()
     if ((fh = fds[i]) != NULL && fh->get_flags () & O_APPEND)
       SetFilePointer (fh->get_handle (), 0, &off_high, FILE_END);
   unlock ();
-#endif
 }
 
 void
index 6e30b05..67e064f 100644 (file)
@@ -465,7 +465,8 @@ spawn_guts (const char * prog_arg, const char *const *argv,
 
   cygbench ("spawn-guts");
 
-  cygheap->fdtab.set_file_pointers_for_exec ();
+  if (!real_path.iscygexec())
+    cygheap->fdtab.set_file_pointers_for_exec ();
 
   moreinfo->envp = build_env (envp, envblock, moreinfo->envc, real_path.iscygexec ());
   if (!moreinfo->envp || !envblock)