mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-01 05:16:05 +01:00
20025: --with-tcsetpgrp from Philippe Troin
This commit is contained in:
parent
f7323823c3
commit
2173c12f2d
3 changed files with 47 additions and 9 deletions
|
@ -1,5 +1,8 @@
|
|||
2004-06-08 Peter Stephenson <pws@csr.com>
|
||||
|
||||
* Philippe Troin, 19996, plus 20025: configure.ac, INSTALL: add
|
||||
configure option --with-tcsetpgrp.
|
||||
|
||||
* 20024: Doc/Zsh/func.yo: Improve documentation for TRAPNAL
|
||||
functions.
|
||||
|
||||
|
|
6
INSTALL
6
INSTALL
|
@ -385,6 +385,12 @@ shell is running in some privileged mode. This is turned off by
|
|||
default as on some systems non-standard headers (in particular AIX) are
|
||||
required. A direct fix for that problem would be appreciated.
|
||||
|
||||
A test for the function tcsetpgrp is turned on by default. The test needs
|
||||
to run the function to determine if the implementation is usable. However,
|
||||
this can cause problems when configure is run without a terminal. To avoid
|
||||
this, use --with-tcsetpgrp or --without-tcsetpgrp to tell configure whether
|
||||
the function should be used.
|
||||
|
||||
Options For Configure
|
||||
---------------------
|
||||
|
||||
|
|
47
configure.ac
47
configure.ac
|
@ -1766,24 +1766,53 @@ dnl for instance, BeOS R4.51 does not support it yet
|
|||
dnl -----------
|
||||
AH_TEMPLATE([BROKEN_TCSETPGRP],
|
||||
[Define to 1 if tcsetpgrp() doesn't work, ie BeOS R4.51.])
|
||||
if test -t 0 && test $ac_cv_func_tcsetpgrp = yes; then
|
||||
AC_ARG_WITH(tcsetpgrp,
|
||||
[ --with-tcsetpgrp assumes that tcsetpgrp() exists and works correctly],[
|
||||
case "x$withval" in
|
||||
xyes) zsh_working_tcsetpgrp=yes;;
|
||||
xno) zsh_working_tcsetpgrp=no;;
|
||||
*) AC_ERROR([please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no]);;
|
||||
esac],[zsh_working_tcsetpgrp=check])
|
||||
if test "x$ac_cv_func_tcsetpgrp" = xyes; then
|
||||
case "x$zsh_working_tcsetpgrp" in
|
||||
xcheck)
|
||||
trap "" SIGTTOU > /dev/null 2>&1 || :
|
||||
AC_CACHE_CHECK(if tcsetpgrp() actually works,
|
||||
zsh_cv_sys_tcsetpgrp,
|
||||
[AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
main() {
|
||||
int fd;
|
||||
int ret;
|
||||
ret=tcsetpgrp(0, tcgetpgrp(0));
|
||||
exit(ret<0);
|
||||
fd=open("/dev/tty", O_RDWR);
|
||||
if (fd < 0) exit(2);
|
||||
ret=tcsetpgrp(fd, tcgetpgrp(fd));
|
||||
if (ret < 0) exit(1);
|
||||
exit(0);
|
||||
}
|
||||
],
|
||||
zsh_cv_sys_tcsetpgrp=yes,
|
||||
zsh_cv_sys_tcsetpgrp=no,
|
||||
zsh_cv_sys_tcsetpgrp=yes)])
|
||||
if test $zsh_cv_sys_tcsetpgrp = no; then
|
||||
AC_DEFINE(BROKEN_TCSETPGRP)
|
||||
fi
|
||||
zsh_cv_sys_tcsetpgrp=yes, [
|
||||
case $? in
|
||||
1) zsh_cv_sys_tcsetpgrp=no;;
|
||||
2) zsh_cv_sys_tcsetpgrp=notty;;
|
||||
*) zsh_cv_sys_tcsetpgrp=error;;
|
||||
esac
|
||||
], zsh_cv_sys_tcsetpgrp=yes)])
|
||||
case "x$zsh_cv_sys_tcsetpgrp" in
|
||||
xno) AC_DEFINE(BROKEN_TCSETPGRP);;
|
||||
xyes) :;;
|
||||
xnotty) AC_MSG_ERROR([no controlling tty
|
||||
Try running configure with --with-tcsetpgrp or --without-tcsetpgrp]);;
|
||||
*) AC_MSG_ERROR([unexpected return status]);;
|
||||
esac
|
||||
trap - SIGTTOU > /dev/null 2>&1 || :
|
||||
;;
|
||||
xyes) :;;
|
||||
xno) AC_DEFINE(BROKEN_TCSETPGRP);;
|
||||
*) AC_MSG_ERROR([unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp]);;
|
||||
esac
|
||||
fi
|
||||
|
||||
dnl -----------
|
||||
|
|
Loading…
Reference in a new issue