summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSadrul Habib Chowdhury <sadrul@users.sourceforge.net>2010-02-15 21:47:39 -0500
committerSadrul Habib Chowdhury <sadrul@users.sourceforge.net>2010-02-15 21:47:39 -0500
commit97059b7ad521cf796daee07397c658d9716dd1e7 (patch)
treea5812bce9590c6d5e52fbf93b4724b0344f83a77
parent9756ae6fb21fb6421e543173115059d36358c692 (diff)
downloadscreen-97059b7ad521cf796daee07397c658d9716dd1e7.tar.gz
Fix compilation on systems where execvpe is defined.
-rw-r--r--src/acconfig.h5
-rw-r--r--src/configure.in6
-rw-r--r--src/extern.h2
-rw-r--r--src/window.c2
4 files changed, 15 insertions, 0 deletions
diff --git a/src/acconfig.h b/src/acconfig.h
index ffedbbc..2e46985 100644
--- a/src/acconfig.h
+++ b/src/acconfig.h
@@ -445,6 +445,11 @@
#undef HAVE_SETEUID
/*
+ * execvpe is now defined in some systems.
+ */
+#undef HAVE_EXECVPE
+
+/*
* If you want the "time" command to display the current load average
* define LOADAV. Maybe you must install screen with the needed
* privileges to read /dev/kmem.
diff --git a/src/configure.in b/src/configure.in
index 8c5762c..bd29de2 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -284,6 +284,12 @@ seteuid(0);
#endif
], AC_DEFINE(HAVE_SETEUID))
+dnl execvpe
+AC_CHECKING(execvpe)
+AC_TRY_LINK(,[
+ execvpe(0, 0, 0);
+], AC_DEFINE(HAVE_EXECVPE))
+
dnl
dnl **** select() ****
dnl
diff --git a/src/extern.h b/src/extern.h
index 315daab..38a8d6e 100644
--- a/src/extern.h
+++ b/src/extern.h
@@ -156,7 +156,9 @@ extern void CloseDevice __P((struct win *));
#ifdef ZMODEM
extern void zmodem_abort __P((struct win *, struct display *));
#endif
+#ifndef HAVE_EXECVPE
extern void execvpe __P((char *, char **, char **));
+#endif
/* utmp.c */
#ifdef UTMPOK
diff --git a/src/window.c b/src/window.c
index 1826b33..20bceac 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1449,6 +1449,7 @@ char **args, *ttyn;
return pid;
}
+#ifndef HAVE_EXECVPE
void
execvpe(prog, args, env)
char *prog, **args, **env;
@@ -1494,6 +1495,7 @@ char *prog, **args, **env;
if (eaccess)
errno = EACCES;
}
+#endif
#ifdef PSEUDOS