#include "constants.h"
-#ifdef DEBUG
+#ifdef WARNING
# include "debug.h"
#endif
/* error(3) */
#ifdef HAVE_ERROR_H
-static void error_vararg(int status, int errnum,
- char const *filename, unsigned int linenum,
- char const *format, va_list ap) {
+static void error_vararg(int status, int errnum,
+ char const *filename, unsigned int linenum,
+ char const *format, va_list ap) {
static char const *last_filename;
static unsigned int last_linenum;
}
static int (*real_execvp)(char const *path, char * const argv[]);
-int execvp(char const *path, char * const argv[]) {
+int execvp(char const *file, char * const argv[]) {
DLSYM_FUNCTION(real_execvp, "execvp");
update_environment();
- return real_execvp(path, argv);
+ return real_execvp(file, argv);
+}
+
+#ifdef HAVE_EXECVPE
+extern char **environ;
+int execvpe(char const *file, char * const argv[], char * const envp[]) {
+ /* Fake the environment so we can reuse execvp(). */
+ environ = (char **)envp;
+
+ return execvp(file, argv);
}
+#endif