]> sourceware.org Git - newlib-cygwin.git/commitdiff
Add fexecve, execvpe.
authorEric Blake <eblake@redhat.com>
Sat, 26 Sep 2009 21:01:10 +0000 (21:01 +0000)
committerEric Blake <eblake@redhat.com>
Sat, 26 Sep 2009 21:01:10 +0000 (21:01 +0000)
* exec.cc (fexecve): New function.
* cygwin.din (execvpe, fexecve): Export new fexecve and existing
execvpe.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* posix.sgml: Mention them.

winsup/cygwin/ChangeLog
winsup/cygwin/cygwin.din
winsup/cygwin/exec.cc
winsup/cygwin/include/cygwin/version.h
winsup/cygwin/posix.sgml

index b843f54b0da88712878eeffbf7d482c71f2e30ad..76c9e151e657f3f6ee24a11562956257d8553c16 100644 (file)
@@ -1,3 +1,11 @@
+2009-09-26  Eric Blake  <ebb9@byu.net>
+
+       * exec.cc (fexecve): New function.
+       * cygwin.din (execvpe, fexecve): Export new fexecve and existing
+       execvpe.
+       * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+       * posix.sgml: Mention them.
+
 2009-09-26  Eric Blake  <ebb9@byu.net>
 
        * syscalls.cc (link): Delete obsolete comment.  Reject directories
index bee9cd1c1c956d54b979bb3fedd8c9adb6f1a3c3..a10d18ca0b22129a3fab54e10815e36e0389a31a 100644 (file)
@@ -356,6 +356,7 @@ execve SIGFE
 _execve = execve SIGFE
 execvp SIGFE
 _execvp = execvp SIGFE
+execvpe SIGFE
 exit = cygwin_exit SIGFE
 _exit SIGFE
 exp NOSIGFE
@@ -454,6 +455,7 @@ feof SIGFE
 _feof = feof SIGFE
 ferror SIGFE
 _ferror = ferror SIGFE
+fexecve SIGFE
 fflush SIGFE
 _fflush = fflush SIGFE
 ffs NOSIGFE
index ee0709c985e64b4a34d8e448f19e64759110e437..131439fbcfce8a936b27b32bff7f512f3f160856 100644 (file)
@@ -1,6 +1,6 @@
 /* exec.cc: exec system call support.
 
-   Copyright 1996, 1997, 1998, 2000, 2001, 2002 Red Hat, Inc.
+   Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2009 Red Hat, Inc.
 
 This file is part of Cygwin.
 
@@ -14,6 +14,10 @@ details. */
 #include "cygerrno.h"
 #include "path.h"
 #include "environ.h"
+#include "sync.h"
+#include "fhandler.h"
+#include "dtable.h"
+#include "cygheap.h"
 #undef _execve
 
 /* This is called _execve and not execve because the real execve is defined
@@ -91,3 +95,15 @@ execvpe (const char *path, char * const *argv, char *const *envp)
   path_conv buf;
   return  execve (find_exec (path, buf), argv, envp);
 }
+
+extern "C" int
+fexecve (int fd, char * const *argv, char *const *envp)
+{
+  cygheap_fdget cfd (fd);
+  if (cfd < 0)
+    {
+      syscall_printf ("-1 = fexecve (%d, %p, %p)", fd, argv, envp);
+      return -1;
+    }
+  return execve (cfd->pc.get_win32 (), argv, envp);
+}
index bd051031a66c16c6112a684d7dfa6c6e0c6b3e0f..a396b1fe16b3f7753f0ad68baef7e23efe579290 100644 (file)
@@ -367,12 +367,13 @@ details. */
       211: Export fpurge, mkstemps.
       212: Add and export libstdc++ malloc wrappers.
       213: Export canonicalize_file_name, eaccess, euidaccess.
+      214: Export execvpe, fexecve.
      */
 
      /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
 
 #define CYGWIN_VERSION_API_MAJOR 0
-#define CYGWIN_VERSION_API_MINOR 213
+#define CYGWIN_VERSION_API_MINOR 214
 
      /* There is also a compatibity version number associated with the
        shared memory regions.  It is incremented when incompatible
index 48dce6c968427744333e2301155bdc9954918415..06e49d20ad1187cee14fcbc8178ff66f38f53e1b 100644 (file)
@@ -152,6 +152,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
     fdopendir
     feof
     ferror
+    fexecve
     fflush
     ffs
     fgetc
@@ -1015,6 +1016,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
     envz_remove
     envz_strip
     euidaccess
+    execvpe
     exp10
     exp10f
     fcloseall
@@ -1227,7 +1229,6 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
     fesetround
     fetestexcept
     feupdateenv
-    fexecve
     floorl
     fmal
     fmaxl
This page took 0.04183 seconds and 5 git commands to generate.