*** empty log message ***
authorayin <ayin>
Sat, 21 Jan 2006 18:14:57 +0000 (18:14 +0000)
committerayin <ayin>
Sat, 21 Jan 2006 18:14:57 +0000 (18:14 +0000)
aclocal.m4
configure.ac
src/ptytty.C
src/ptytty.h

index 661621e..5aefb94 100644 (file)
@@ -229,3 +229,407 @@ dnl XXX Shouldn't this really use AC_TRY_LINK to be portable & robust??
 done])
 fi
 ])
+
+AC_DEFUN([PTY_CHECK],
+[
+AC_CHECK_HEADERS( \
+  pty.h \
+  util.h \
+  libutil.h \
+  sys/ioctl.h \
+  sys/stropts.h \
+)
+
+AC_CHECK_FUNCS( \
+  revoke \
+  _getpty \
+  getpt \
+  posix_openpt \
+  isastream \
+)
+
+have_clone=no
+
+AC_MSG_CHECKING(for /dev/ptym/clone)
+if test -e /dev/ptym/clone; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_DEV_CLONE, 1, [Define to 1 if you have /dev/ptym/clone])
+  AC_DEFINE(CLONE_DEVICE, "/dev/ptym/clone", [clone device filename])
+  have_clone=yes
+else
+  AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING(for /dev/ptc)
+if test -e /dev/ptc; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_DEV_PTC, 1, [Define to 1 if you have /dev/ptc])
+  AC_DEFINE(CLONE_DEVICE, "/dev/ptc", [clone device filename])
+  have_clone=yes
+else
+  AC_MSG_RESULT(no)
+fi
+
+case $host in
+  *-*-cygwin*)
+    have_clone=yes
+    AC_DEFINE(CLONE_DEVICE, "/dev/ptmx", [clone device filename])
+    ;;
+  *)
+    AC_MSG_CHECKING(for /dev/ptmx)
+    if test -e /dev/ptmx; then
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if you have /dev/ptmx])
+      AC_DEFINE(CLONE_DEVICE, "/dev/ptmx", [clone device filename])
+      have_clone=yes
+    else
+      AC_MSG_RESULT(no)
+    fi
+    ;;
+esac
+
+if test x$ac_cv_func_getpt = xyes -o x$ac_cv_func_posix_openpt = xyes -o x$have_clone = xyes; then
+  AC_MSG_CHECKING(for UNIX98 ptys)
+  AC_TRY_LINK([#include <stdlib.h>],
+              [grantpt(0);unlockpt(0);ptsname(0);],
+              [unix98_pty=yes
+               AC_DEFINE(UNIX98_PTY, 1, "")
+               AC_MSG_RESULT(yes)],
+              [AC_MSG_RESULT(no)])
+fi
+
+if test -z "$unix98_pty"; then
+  AC_CHECK_FUNCS(openpty, [], [AC_CHECK_LIB(util, openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"])])
+fi
+])
+
+AC_DEFUN([UTMP_CHECK],
+[
+AC_CHECK_FUNCS( \
+       ttyslot \
+       updwtmp \
+       updwtmpx \
+)
+
+AC_CHECK_HEADERS( \
+       utmp.h \
+       utmpx.h \
+       lastlog.h \
+)
+
+dnl# --------------------------------------------------------------------------
+dnl# DO ALL UTMP AND WTMP CHECKING
+dnl# --------------------------------------------------------------------------
+dnl# check for host field in utmp structure
+
+dnl# --------------------------------------------
+AC_CHECK_HEADER(utmp.h,
+[AC_CACHE_CHECK([for struct utmp], rxvt_cv_struct_utmp,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <utmp.h>]], [[struct utmp ut;]])],[rxvt_cv_struct_utmp=yes],[rxvt_cv_struct_utmp=no])])
+if test x$rxvt_cv_struct_utmp = xyes; then
+  AC_DEFINE(HAVE_STRUCT_UTMP, 1, Define if utmp.h has struct utmp)
+fi
+]
+
+AC_CACHE_CHECK(for ut_host in utmp struct, rxvt_cv_struct_utmp_host,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <utmp.h>]], [[struct utmp ut; ut.ut_host;]])],[rxvt_cv_struct_utmp_host=yes],[rxvt_cv_struct_utmp_host=no])])
+if test x$rxvt_cv_struct_utmp_host = xyes; then
+  AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host)
+fi
+
+AC_CACHE_CHECK(for ut_pid in utmp struct, rxvt_cv_struct_utmp_pid,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <utmp.h>]], [[struct utmp ut; ut.ut_pid;]])],[rxvt_cv_struct_utmp_pid=yes],[rxvt_cv_struct_utmp_pid=no])])
+if test x$rxvt_cv_struct_utmp_pid = xyes; then
+  AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid)
+fi
+) dnl# AC_CHECK_HEADER(utmp.h
+
+dnl# --------------------------------------------
+
+AC_CHECK_HEADER(utmpx.h,
+[AC_CACHE_CHECK([for struct utmpx], rxvt_cv_struct_utmpx,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <utmpx.h>]], [[struct utmpx ut;]])],[rxvt_cv_struct_utmpx=yes],[rxvt_cv_struct_utmpx=no])])
+if test x$rxvt_cv_struct_utmpx = xyes; then
+  AC_DEFINE(HAVE_STRUCT_UTMPX, 1, Define if utmpx.h has struct utmpx)
+fi
+]
+
+AC_CACHE_CHECK(for host in utmpx struct, rxvt_cv_struct_utmpx_host,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <utmpx.h>]], [[struct utmpx utx; utx.ut_host;]])],[rxvt_cv_struct_utmpx_host=yes],[rxvt_cv_struct_utmpx_host=no])])
+if test x$rxvt_cv_struct_utmpx_host = xyes; then
+  AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host)
+fi
+
+AC_CACHE_CHECK(for session in utmpx struct, rxvt_cv_struct_utmpx_session,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <utmpx.h>],
+[struct utmpx utx; utx.ut_session;],
+rxvt_cv_struct_utmpx_session=yes, rxvt_cv_struct_utmpx_session=no)])
+if test x$rxvt_cv_struct_utmpx_session = xyes; then
+  AC_DEFINE(HAVE_UTMPX_SESSION, 1, Define if struct utmpx contains ut_session)
+fi
+) dnl# AC_CHECK_HEADER(utmpx.h
+
+dnl# --------------------------------------------------------------------------
+dnl# check for struct lastlog
+AC_CACHE_CHECK(for struct lastlog, rxvt_cv_struct_lastlog,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <utmp.h>
+#ifdef HAVE_LASTLOG_H
+#include <lastlog.h>
+#endif
+]], [[struct lastlog ll;]])],[rxvt_cv_struct_lastlog=yes],[rxvt_cv_struct_lastlog=no])])
+if test x$rxvt_cv_struct_lastlog = xyes; then
+  AC_DEFINE(HAVE_STRUCT_LASTLOG, 1, Define if utmp.h or lastlog.h has struct lastlog)
+fi
+
+dnl# check for struct lastlogx
+AC_CACHE_CHECK(for struct lastlogx, rxvt_cv_struct_lastlogx,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <utmpx.h>
+#ifdef HAVE_LASTLOG_H
+#include <lastlog.h>
+#endif
+]], [[struct lastlogx ll;]])],[rxvt_cv_struct_lastlogx=yes],[rxvt_cv_struct_lastlogx=no])])
+if test x$rxvt_cv_struct_lastlogx = xyes; then
+  AC_DEFINE(HAVE_STRUCT_LASTLOGX, 1, Define if utmpx.h or lastlog.h has struct lastlogx)
+fi
+
+dnl# --------------------------------------------------------------------------
+dnl# FIND FILES
+dnl# --------------------------------------------------------------------------
+
+dnl# find utmp
+AC_CACHE_CHECK(where utmp is located, rxvt_cv_path_utmp,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
+#include <sys/types.h>
+#include <utmp.h>
+#include <errno.h>
+main()
+{
+    char **u, *utmplist[] = {
+    "/var/run/utmp", "/var/adm/utmp", "/etc/utmp", "/usr/etc/utmp", "/usr/adm/utmp", NULL };
+    FILE *a, *f=fopen("conftestval", "w");
+    if (!f) exit(1);
+#ifdef UTMP_FILE
+    fprintf(f, "%s\n", UTMP_FILE);
+    exit(0);
+#endif
+#ifdef _PATH_UTMP
+    fprintf(f, "%s\n", _PATH_UTMP);
+    exit(0);
+#endif
+    for (u = utmplist; *u; u++) {
+       if ((a = fopen(*u, "r")) != NULL || errno == EACCES) {
+           fprintf(f, "%s\n", *u);
+           exit(0);
+       }
+    }
+    exit(0);
+}]])],[rxvt_cv_path_utmp=`cat conftestval`],[rxvt_cv_path_utmp=],[dnl
+  AC_MSG_WARN(Define RXVT_UTMP_FILE in config.h manually)])])
+if test x$rxvt_cv_path_utmp != x; then
+  AC_DEFINE_UNQUOTED(RXVT_UTMP_FILE, "$rxvt_cv_path_utmp", Define location of utmp)
+fi
+
+dnl# --------------------------------------------------------------------------
+
+dnl# find utmpx - if a utmp file exists at the same location and is more than
+dnl# a day newer, then dump the utmpx.  People leave lots of junk around.
+AC_CACHE_CHECK(where utmpx is located, rxvt_cv_path_utmpx,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
+#include <sys/types.h>
+#include <utmpx.h>
+#include <errno.h>
+#include <sys/stat.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+main()
+{
+    char **u, *p, *utmplist[] = {
+#ifdef UTMPX_FILE
+       UTMPX_FILE,
+#endif
+#ifdef _PATH_UTMPX
+       _PATH_UTMPX,
+#endif
+    "/var/adm/utmpx", "/etc/utmpx", NULL };
+    FILE *a, *f=fopen("conftestval", "w");
+    struct stat statu, statux;
+    if (!f) exit(1);
+    for (u = utmplist; *u; u++) {
+       if ((a = fopen(*u, "r")) != NULL || errno == EACCES) {
+           if (stat(*u, &statux) < 0)
+               continue;
+           p = strdup(*u);
+           p[strlen(p) - 1] = '\0';
+           if (stat(p, &statu) >= 0
+               && (statu.st_mtime - statux.st_mtime > 86400))
+               continue;
+           fprintf(f, "%s\n", *u);
+           exit(0);
+       }
+    }
+    exit(0);
+}]])],[rxvt_cv_path_utmpx=`cat conftestval`],[rxvt_cv_path_utmpx=],[dnl
+  AC_MSG_WARN(Define RXVT_UTMPX_FILE in config.h manually)])])
+if test x$rxvt_cv_path_utmpx != x; then
+  AC_DEFINE_UNQUOTED(RXVT_UTMPX_FILE, "$rxvt_cv_path_utmpx", Define location of utmpx)
+fi
+
+dnl# --------------------------------------------------------------------------
+
+dnl# find wtmp
+AC_CACHE_CHECK(where wtmp is located, rxvt_cv_path_wtmp,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
+#include <sys/types.h>
+#ifdef HAVE_UTMP_H
+#include <utmp.h>
+#endif
+#include <errno.h>
+main()
+{
+    char **w, *wtmplist[] = {
+    "/var/log/wtmp", "/var/adm/wtmp", "/etc/wtmp", "/usr/etc/wtmp", "/usr/adm/wtmp", NULL }; 
+    FILE *a, *f=fopen("conftestval", "w");
+    if (!f) exit(1);
+#ifdef WTMP_FILE
+    fprintf(f, "%s\n", WTMP_FILE);
+    exit(0);
+#endif
+#ifdef _PATH_WTMP
+    fprintf(f, "%s\n", _PATH_WTMP);
+    exit(0);
+#endif
+    for (w = wtmplist; *w; w++) {
+       if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
+           fprintf(f, "%s\n", *w);
+           exit(0);
+       }
+    }
+    exit(0);
+}]])],[rxvt_cv_path_wtmp=`cat conftestval`],[rxvt_cv_path_wtmp=],[dnl
+  AC_MSG_WARN(Define RXVT_WTMP_FILE in config.h manually)])])
+if test x$rxvt_cv_path_wtmp != x; then
+  AC_DEFINE_UNQUOTED(RXVT_WTMP_FILE, "$rxvt_cv_path_wtmp", Define location of wtmp)
+fi
+dnl# --------------------------------------------------------------------------
+
+dnl# find wtmpx
+AC_CACHE_CHECK(where wtmpx is located, rxvt_cv_path_wtmpx,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
+#ifdef HAVE_UTMPX_H
+#include <utmpx.h>
+#endif
+#include <errno.h>
+main()
+{
+    char **w, *wtmplist[] = {
+    "/var/log/wtmpx", "/var/adm/wtmpx", NULL }; 
+    FILE *a, *f=fopen("conftestval", "w");
+    if (!f) exit(1);
+#ifdef WTMPX_FILE
+    fprintf(f, "%s\n", WTMPX_FILE);
+    exit(0);
+#endif
+#ifdef _PATH_WTMPX
+    fprintf(f, "%s\n", _PATH_WTMPX);
+    exit(0);
+#endif
+    for (w = wtmplist; *w; w++) {
+       if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
+           fprintf(f, "%s\n", *w);
+           exit(0);
+       }
+    }
+    exit(0);
+}]])],[rxvt_cv_path_wtmpx=`cat conftestval`],[rxvt_cv_path_wtmpx=],[dnl
+  AC_MSG_WARN(Define RXVT_WTMPX_FILE in config.h manually)])])
+if test x$rxvt_cv_path_wtmpx != x; then
+  AC_DEFINE_UNQUOTED(RXVT_WTMPX_FILE, "$rxvt_cv_path_wtmpx", Define location of wtmpx)
+fi
+dnl# --------------------------------------------------------------------------
+
+dnl# find lastlog
+AC_CACHE_CHECK(where lastlog is located, rxvt_cv_path_lastlog,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
+#include <sys/types.h>
+#ifdef HAVE_UTMPX_H
+#include <utmpx.h>
+#elif defined(HAVE_UTMP_H)
+#include <utmp.h>
+#endif
+#ifdef HAVE_LASTLOG_H
+#include <lastlog.h>
+#endif
+#include <errno.h>
+main()
+{
+    char **w, *lastloglist[] = { "/var/log/lastlog", NULL };
+    FILE *a, *f=fopen("conftestval", "w");
+    if (!f) exit(1);
+#ifdef LASTLOG_FILE
+    fprintf(f, "%s\n", LASTLOG_FILE);
+    exit(0);
+#endif
+#ifdef _PATH_LASTLOG
+    fprintf(f, "%s\n", _PATH_LASTLOG);
+    exit(0);
+#endif
+    for (w = lastloglist; *w; w++) {
+       if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
+           fprintf(f, "%s\n", *w);
+           exit(0);
+       }
+    }
+    exit(0);
+}]])],[rxvt_cv_path_lastlog=`cat conftestval`],[rxvt_cv_path_lastlog=],[dnl
+  AC_MSG_WARN(Define RXVT_LASTLOG_FILE in config.h manually)])])
+if test x$rxvt_cv_path_lastlog != x; then
+  AC_DEFINE_UNQUOTED(RXVT_LASTLOG_FILE, "$rxvt_cv_path_lastlog", Define location of lastlog)
+  if test -d "$rxvt_cv_path_lastlog"; then
+    AC_DEFINE(LASTLOG_IS_DIR, 1, Define if lastlog is provided via a directory)
+  fi
+fi
+dnl# --------------------------------------------------------------------------
+
+dnl# find lastlogx
+AC_CACHE_CHECK(where lastlogx is located, rxvt_cv_path_lastlogx,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
+#ifdef HAVE_UTMPX_H
+#include <utmpx.h>
+#endif
+#include <errno.h>
+main()
+{
+    char **w, *wtmplist[] = { "/var/log/lastlogx", "/var/adm/lastlogx", NULL };
+    FILE *a, *f=fopen("conftestval", "w");
+    if (!f) exit(1);
+#ifdef LASTLOGX_FILE
+    fprintf(f, "%s\n", LASTLOGX_FILE);
+    exit(0);
+#endif
+#ifdef _PATH_LASTLOGX
+    fprintf(f, "%s\n", _PATH_LASTLOGX);
+    exit(0);
+#endif
+    for (w = wtmplist; *w; w++) {
+       if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
+           fprintf(f, "%s\n", *w);
+           exit(0);
+       }
+    }
+    exit(0);
+}]])],[rxvt_cv_path_lastlogx=`cat conftestval`],[rxvt_cv_path_lastlogx=],[dnl
+  AC_MSG_WARN(Define RXVT_LASTLOGX_FILE in config.h manually)])])
+if test x$rxvt_cv_path_lastlogx != x; then
+  AC_DEFINE_UNQUOTED(RXVT_LASTLOGX_FILE, "$rxvt_cv_path_lastlogx", Define location of lastlogx)
+fi
+])
+
index 28744fc..1d7b7d4 100644 (file)
@@ -520,9 +520,6 @@ AC_HEADER_SYS_WAIT
 AC_CHECK_HEADERS( \
        assert.h \
        fcntl.h \
-       grp.h \
-       libc.h \
-       lastlog.h \
        stdarg.h \
        stdlib.h \
        string.h \
@@ -533,14 +530,8 @@ AC_CHECK_HEADERS( \
        sys/select.h \
        sys/sockio.h \
        sys/strredir.h \
-       sys/stropts.h \
        sys/time.h \
-       utmp.h \
-       utmpx.h \
        stdint.h \
-       pty.h \
-       util.h \
-       libutil.h \
        wchar.h \
        cwchar \
        clocale \
@@ -707,339 +698,16 @@ AC_TYPE_SIGNAL
 dnl> AC_FUNC_VPRINTF
 
 AC_CHECK_FUNCS( \
-       revoke \
        unsetenv \
        setutent \
        seteuid \
        setresuid \
        setreuid \
-       _getpty \
-       getpt \
-       posix_openpt \
-       grantpt \
-       unlockpt \
-       isastream \
        on_exit \
        nanosleep \
-       updwtmp \
-       updwtmpx \
-       ttyslot \
 )
 
-dnl# --------------------------------------------------------------------------
-dnl# DO ALL UTMP AND WTMP CHECKING
-dnl# --------------------------------------------------------------------------
-dnl# check for host field in utmp structure
-
-dnl# --------------------------------------------
-AC_CHECK_HEADER(utmp.h,
-[AC_CACHE_CHECK([for struct utmp], rxvt_cv_struct_utmp,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <utmp.h>]], [[struct utmp ut;]])],[rxvt_cv_struct_utmp=yes],[rxvt_cv_struct_utmp=no])])
-if test x$rxvt_cv_struct_utmp = xyes; then
-  AC_DEFINE(HAVE_STRUCT_UTMP, 1, Define if utmp.h has struct utmp)
-fi
-]
-
-AC_CACHE_CHECK(for ut_host in utmp struct, rxvt_cv_struct_utmp_host,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <utmp.h>]], [[struct utmp ut; ut.ut_host;]])],[rxvt_cv_struct_utmp_host=yes],[rxvt_cv_struct_utmp_host=no])])
-if test x$rxvt_cv_struct_utmp_host = xyes; then
-  AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host)
-fi
-
-AC_CACHE_CHECK(for ut_pid in utmp struct, rxvt_cv_struct_utmp_pid,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <utmp.h>]], [[struct utmp ut; ut.ut_pid;]])],[rxvt_cv_struct_utmp_pid=yes],[rxvt_cv_struct_utmp_pid=no])])
-if test x$rxvt_cv_struct_utmp_pid = xyes; then
-  AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid)
-fi
-) dnl# AC_CHECK_HEADER(utmp.h
-
-dnl# --------------------------------------------
-
-AC_CHECK_HEADER(utmpx.h,
-[AC_CACHE_CHECK([for struct utmpx], rxvt_cv_struct_utmpx,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <utmpx.h>]], [[struct utmpx ut;]])],[rxvt_cv_struct_utmpx=yes],[rxvt_cv_struct_utmpx=no])])
-if test x$rxvt_cv_struct_utmpx = xyes; then
-  AC_DEFINE(HAVE_STRUCT_UTMPX, 1, Define if utmpx.h has struct utmpx)
-fi
-]
-
-AC_CACHE_CHECK(for host in utmpx struct, rxvt_cv_struct_utmpx_host,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <utmpx.h>]], [[struct utmpx utx; utx.ut_host;]])],[rxvt_cv_struct_utmpx_host=yes],[rxvt_cv_struct_utmpx_host=no])])
-if test x$rxvt_cv_struct_utmpx_host = xyes; then
-  AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host)
-fi
-
-AC_CACHE_CHECK(for session in utmpx struct, rxvt_cv_struct_utmpx_session,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <utmpx.h>],
-[struct utmpx utx; utx.ut_session;],
-rxvt_cv_struct_utmpx_session=yes, rxvt_cv_struct_utmpx_session=no)])
-if test x$rxvt_cv_struct_utmpx_session = xyes; then
-  AC_DEFINE(HAVE_UTMPX_SESSION, 1, Define if struct utmpx contains ut_session)
-fi
-) dnl# AC_CHECK_HEADER(utmpx.h
-
-dnl# --------------------------------------------------------------------------
-dnl# check for struct lastlog
-AC_CACHE_CHECK(for struct lastlog, rxvt_cv_struct_lastlog,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <utmp.h>
-#ifdef HAVE_LASTLOG_H
-#include <lastlog.h>
-#endif
-]], [[struct lastlog ll;]])],[rxvt_cv_struct_lastlog=yes],[rxvt_cv_struct_lastlog=no])])
-if test x$rxvt_cv_struct_lastlog = xyes; then
-  AC_DEFINE(HAVE_STRUCT_LASTLOG, 1, Define if utmp.h or lastlog.h has struct lastlog)
-fi
-
-dnl# check for struct lastlogx
-AC_CACHE_CHECK(for struct lastlogx, rxvt_cv_struct_lastlogx,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <utmpx.h>
-#ifdef HAVE_LASTLOG_H
-#include <lastlog.h>
-#endif
-]], [[struct lastlogx ll;]])],[rxvt_cv_struct_lastlogx=yes],[rxvt_cv_struct_lastlogx=no])])
-if test x$rxvt_cv_struct_lastlogx = xyes; then
-  AC_DEFINE(HAVE_STRUCT_LASTLOGX, 1, Define if utmpx.h or lastlog.h has struct lastlogx)
-fi
-
-dnl# --------------------------------------------------------------------------
-dnl# FIND FILES
-dnl# --------------------------------------------------------------------------
-
-dnl# find utmp
-AC_CACHE_CHECK(where utmp is located, rxvt_cv_path_utmp,
-[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
-#include <sys/types.h>
-#include <utmp.h>
-#include <errno.h>
-main()
-{
-    char **u, *utmplist[] = {
-    "/var/run/utmp", "/var/adm/utmp", "/etc/utmp", "/usr/etc/utmp", "/usr/adm/utmp", NULL };
-    FILE *a, *f=fopen("conftestval", "w");
-    if (!f) exit(1);
-#ifdef UTMP_FILE
-    fprintf(f, "%s\n", UTMP_FILE);
-    exit(0);
-#endif
-#ifdef _PATH_UTMP
-    fprintf(f, "%s\n", _PATH_UTMP);
-    exit(0);
-#endif
-    for (u = utmplist; *u; u++) {
-       if ((a = fopen(*u, "r")) != NULL || errno == EACCES) {
-           fprintf(f, "%s\n", *u);
-           exit(0);
-       }
-    }
-    exit(0);
-}]])],[rxvt_cv_path_utmp=`cat conftestval`],[rxvt_cv_path_utmp=],[dnl
-  AC_MSG_WARN(Define RXVT_UTMP_FILE in config.h manually)])])
-if test x$rxvt_cv_path_utmp != x; then
-  AC_DEFINE_UNQUOTED(RXVT_UTMP_FILE, "$rxvt_cv_path_utmp", Define location of utmp)
-fi
-
-dnl# --------------------------------------------------------------------------
-
-dnl# find utmpx - if a utmp file exists at the same location and is more than
-dnl# a day newer, then dump the utmpx.  People leave lots of junk around.
-AC_CACHE_CHECK(where utmpx is located, rxvt_cv_path_utmpx,
-[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
-#include <sys/types.h>
-#include <utmpx.h>
-#include <errno.h>
-#include <sys/stat.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-main()
-{
-    char **u, *p, *utmplist[] = {
-#ifdef UTMPX_FILE
-       UTMPX_FILE,
-#endif
-#ifdef _PATH_UTMPX
-       _PATH_UTMPX,
-#endif
-    "/var/adm/utmpx", "/etc/utmpx", NULL };
-    FILE *a, *f=fopen("conftestval", "w");
-    struct stat statu, statux;
-    if (!f) exit(1);
-    for (u = utmplist; *u; u++) {
-       if ((a = fopen(*u, "r")) != NULL || errno == EACCES) {
-           if (stat(*u, &statux) < 0)
-               continue;
-           p = strdup(*u);
-           p[strlen(p) - 1] = '\0';
-           if (stat(p, &statu) >= 0
-               && (statu.st_mtime - statux.st_mtime > 86400))
-               continue;
-           fprintf(f, "%s\n", *u);
-           exit(0);
-       }
-    }
-    exit(0);
-}]])],[rxvt_cv_path_utmpx=`cat conftestval`],[rxvt_cv_path_utmpx=],[dnl
-  AC_MSG_WARN(Define RXVT_UTMPX_FILE in config.h manually)])])
-if test x$rxvt_cv_path_utmpx != x; then
-  AC_DEFINE_UNQUOTED(RXVT_UTMPX_FILE, "$rxvt_cv_path_utmpx", Define location of utmpx)
-fi
-
-dnl# --------------------------------------------------------------------------
-
-dnl# find wtmp
-AC_CACHE_CHECK(where wtmp is located, rxvt_cv_path_wtmp,
-[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UTMP_H
-#include <utmp.h>
-#endif
-#include <errno.h>
-main()
-{
-    char **w, *wtmplist[] = {
-    "/var/log/wtmp", "/var/adm/wtmp", "/etc/wtmp", "/usr/etc/wtmp", "/usr/adm/wtmp", NULL }; 
-    FILE *a, *f=fopen("conftestval", "w");
-    if (!f) exit(1);
-#ifdef WTMP_FILE
-    fprintf(f, "%s\n", WTMP_FILE);
-    exit(0);
-#endif
-#ifdef _PATH_WTMP
-    fprintf(f, "%s\n", _PATH_WTMP);
-    exit(0);
-#endif
-    for (w = wtmplist; *w; w++) {
-       if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
-           fprintf(f, "%s\n", *w);
-           exit(0);
-       }
-    }
-    exit(0);
-}]])],[rxvt_cv_path_wtmp=`cat conftestval`],[rxvt_cv_path_wtmp=],[dnl
-  AC_MSG_WARN(Define RXVT_WTMP_FILE in config.h manually)])])
-if test x$rxvt_cv_path_wtmp != x; then
-  AC_DEFINE_UNQUOTED(RXVT_WTMP_FILE, "$rxvt_cv_path_wtmp", Define location of wtmp)
-fi
-dnl# --------------------------------------------------------------------------
-
-dnl# find wtmpx
-AC_CACHE_CHECK(where wtmpx is located, rxvt_cv_path_wtmpx,
-[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
-#ifdef HAVE_UTMPX_H
-#include <utmpx.h>
-#endif
-#include <errno.h>
-main()
-{
-    char **w, *wtmplist[] = {
-    "/var/log/wtmpx", "/var/adm/wtmpx", NULL }; 
-    FILE *a, *f=fopen("conftestval", "w");
-    if (!f) exit(1);
-#ifdef WTMPX_FILE
-    fprintf(f, "%s\n", WTMPX_FILE);
-    exit(0);
-#endif
-#ifdef _PATH_WTMPX
-    fprintf(f, "%s\n", _PATH_WTMPX);
-    exit(0);
-#endif
-    for (w = wtmplist; *w; w++) {
-       if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
-           fprintf(f, "%s\n", *w);
-           exit(0);
-       }
-    }
-    exit(0);
-}]])],[rxvt_cv_path_wtmpx=`cat conftestval`],[rxvt_cv_path_wtmpx=],[dnl
-  AC_MSG_WARN(Define RXVT_WTMPX_FILE in config.h manually)])])
-if test x$rxvt_cv_path_wtmpx != x; then
-  AC_DEFINE_UNQUOTED(RXVT_WTMPX_FILE, "$rxvt_cv_path_wtmpx", Define location of wtmpx)
-fi
-dnl# --------------------------------------------------------------------------
-
-dnl# find lastlog
-AC_CACHE_CHECK(where lastlog is located, rxvt_cv_path_lastlog,
-[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UTMPX_H
-#include <utmpx.h>
-#elif defined(HAVE_UTMP_H)
-#include <utmp.h>
-#endif
-#ifdef HAVE_LASTLOG_H
-#include <lastlog.h>
-#endif
-#include <errno.h>
-main()
-{
-    char **w, *lastloglist[] = { "/var/log/lastlog", NULL };
-    FILE *a, *f=fopen("conftestval", "w");
-    if (!f) exit(1);
-#ifdef LASTLOG_FILE
-    fprintf(f, "%s\n", LASTLOG_FILE);
-    exit(0);
-#endif
-#ifdef _PATH_LASTLOG
-    fprintf(f, "%s\n", _PATH_LASTLOG);
-    exit(0);
-#endif
-    for (w = lastloglist; *w; w++) {
-       if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
-           fprintf(f, "%s\n", *w);
-           exit(0);
-       }
-    }
-    exit(0);
-}]])],[rxvt_cv_path_lastlog=`cat conftestval`],[rxvt_cv_path_lastlog=],[dnl
-  AC_MSG_WARN(Define RXVT_LASTLOG_FILE in config.h manually)])])
-if test x$rxvt_cv_path_lastlog != x; then
-  AC_DEFINE_UNQUOTED(RXVT_LASTLOG_FILE, "$rxvt_cv_path_lastlog", Define location of lastlog)
-  if test -d "$rxvt_cv_path_lastlog"; then
-    AC_DEFINE(LASTLOG_IS_DIR, 1, Define if lastlog is provided via a directory)
-  fi
-fi
-dnl# --------------------------------------------------------------------------
-
-dnl# find lastlogx
-AC_CACHE_CHECK(where lastlogx is located, rxvt_cv_path_lastlogx,
-[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
-#ifdef HAVE_UTMPX_H
-#include <utmpx.h>
-#endif
-#include <errno.h>
-main()
-{
-    char **w, *wtmplist[] = { "/var/log/lastlogx", "/var/adm/lastlogx", NULL };
-    FILE *a, *f=fopen("conftestval", "w");
-    if (!f) exit(1);
-#ifdef LASTLOGX_FILE
-    fprintf(f, "%s\n", LASTLOGX_FILE);
-    exit(0);
-#endif
-#ifdef _PATH_LASTLOGX
-    fprintf(f, "%s\n", _PATH_LASTLOGX);
-    exit(0);
-#endif
-    for (w = wtmplist; *w; w++) {
-       if ((a = fopen(*w, "r")) != NULL || errno == EACCES) {
-           fprintf(f, "%s\n", *w);
-           exit(0);
-       }
-    }
-    exit(0);
-}]])],[rxvt_cv_path_lastlogx=`cat conftestval`],[rxvt_cv_path_lastlogx=],[dnl
-  AC_MSG_WARN(Define RXVT_LASTLOGX_FILE in config.h manually)])])
-if test x$rxvt_cv_path_lastlogx != x; then
-  AC_DEFINE_UNQUOTED(RXVT_LASTLOGX_FILE, "$rxvt_cv_path_lastlogx", Define location of lastlogx)
-fi
+UTMP_CHECK
 
 dnl# --------------------------------------------------------------------------
 
@@ -1155,86 +823,7 @@ if test x$rxvt_broken_ximcb = xyes; then
    AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.)
 fi
 
-if test x$ac_cv_func_getpt = xno -a x$ac_cv_func_posix_openpt = xno; then
-  AC_CHECK_FUNC(openpty, [], [AC_CHECK_LIB(util, openpty, [LIBS="$LIBS -lutil"])])
-fi
-
-dnl# if we don't guess right then it's up to the user
-AC_CACHE_CHECK(for pty/tty type, rxvt_cv_ptys,
-[if test x$ac_cv_func_openpty = xyes -o x$ac_cv_lib_util_openpty = xyes; then
-    rxvt_cv_ptys=OPENPTY
- else if test x$ac_cv_func_getpt = xyes; then
-    rxvt_cv_ptys=GLIBC
- else if test x$ac_cv_func_posix_openpt = xyes; then
-    rxvt_cv_ptys=POSIX
- else if test x$ac_cv_func__getpty = xyes; then
-    rxvt_cv_ptys=SGI4
- else if test -c /dev/ttyp20; then
-    rxvt_cv_ptys=SCO
- else if test -c /dev/ptym/clone; then
-    rxvt_cv_ptys=HPUX
- else if test -c /dev/ptc -a -c /dev/pts; then
-    rxvt_cv_ptys=PTC
- else if test -c /dev/ptc -a -d /dev/pts; then
-    rxvt_cv_ptys=PTC
- else if test -c /dev/ptmx -a -c /dev/pts/0; then
-    rxvt_cv_ptys=STREAMS
- else if test x$ac_cv_func_grantpt = xyes && test x$ac_cv_func_unlockpt = xyes; then
-dnl# catch CYGWIN
-    rxvt_cv_ptys=STREAMS
- else
-    rxvt_cv_ptys=BSD
-fi
-fi
-fi
-fi
-fi
-fi
-fi
-fi
-fi
-fi
-])
-
-if test x$rxvt_cv_ptys = xGLIBC; then
-  AC_DEFINE(PTYS_ARE_GETPT, 1, Define for this pty type)
-fi
-if test x$rxvt_cv_ptys = xPOSIX; then
-  AC_DEFINE(PTYS_ARE_POSIX, 1, Define for this pty type)
-fi
-if test x$rxvt_cv_ptys = xOPENPTY; then
-  AC_DEFINE(PTYS_ARE_OPENPTY, 1, Define for this pty type)
-fi
-if test x$rxvt_cv_ptys = xSCO; then
-  AC_DEFINE(PTYS_ARE_NUMERIC, 1, Define for this pty type)
-fi
-if test x$rxvt_cv_ptys = xSTREAMS; then
-  AC_DEFINE(PTYS_ARE_PTMX, 1, Define for this pty type)
-fi
-if test x$rxvt_cv_ptys = xPTC; then
-  AC_DEFINE(PTYS_ARE_PTC, 1, Define for this pty type)
-fi
-if test x$rxvt_cv_ptys = xSGI4; then
-  AC_DEFINE(PTYS_ARE__GETPTY, 1, Define for this pty type)
-fi
-if test x$rxvt_cv_ptys = xHPUX; then
-  AC_DEFINE(PTYS_ARE_CLONE, 1, Define for this pty type)
-fi
-if test x$rxvt_cv_ptys = xBSD -o x$rxvt_cv_ptys = xHPUX -o x$rxvt_cv_ptys = xPOSIX; then
-  AC_DEFINE(PTYS_ARE_SEARCHED, 1, Define for this pty type)
-fi
-
-
-AS_MESSAGE(checking for pty ranges...)
-ptys=`echo /dev/pty??`
-pch1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
-pch2=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
-if test x$pch1 != x; then
-  AC_DEFINE_UNQUOTED(PTYCHAR1, "$pch1", Define for first char in devptyXX)
-fi
-if test x$pch2 != x; then
-  AC_DEFINE_UNQUOTED(PTYCHAR2, "$pch2", Define for second char in devptyXX)
-fi
+PTY_CHECK
 
 dnl# --------------------------------------------------------------------------
 dnl# now add and remove other stuff
@@ -1480,7 +1069,6 @@ fi
 echo "
 The following are set in config.h
 "
-echo "  pty/tty type:               "$rxvt_cv_ptys
 if test x$support_utmp != xyes; then
   echo "  utmp support:               disabled"
   echo
@@ -1507,12 +1095,6 @@ if test x$RESFALLBACK != x; then
    echo "  resource class fallback:    $RESFALLBACK"
 fi
 echo
-if test x$rxvt_cv_ptys = xUNKNOWN; then
-  echo ".----------------------------------------------------------------."
-  echo ". WARNING: could not determine pty/tty type.  Do not build until ."
-  echo ".          the appropriate PTYS_ARE_* is defined in config.h     ."
-  echo ".----------------------------------------------------------------."
-fi
 if test x$support_xpm = xneedsmanualspecification; then
   echo ".----------------------------------------------------------------."
   echo ". WARNING: --enable-xpm-background was specified however the     ."
index 0b1fe87..18f738c 100644 (file)
@@ -35,7 +35,7 @@
 #ifdef HAVE_SYS_IOCTL_H
 # include <sys/ioctl.h>
 #endif
-#if defined(PTYS_ARE_PTMX) && defined(HAVE_SYS_STROPTS_H)
+#if defined(HAVE_DEV_PTMX) && defined(HAVE_SYS_STROPTS_H)
 # include <sys/stropts.h>      /* for I_PUSH */
 #endif
 #ifdef HAVE_ISASTREAM
 #elif defined(HAVE_UTIL_H)
 # include <util.h>
 #endif
+#ifdef TTY_GID_SUPPORT
+#include <grp.h>
+#endif
 
 #include <cstdio>
-#include <grp.h>
 
 #include "rxvtutil.h"
 #include "fdpass.h"
  * If successful, ttydev is set to the name of the slave device.
  * fd_tty _may_ also be set to an open fd to the slave device
  */
-static inline int
-get_pty_streams (int *fd_tty, char **ttydev)
+#if defined(UNIX98_PTY)
+static int
+get_pty (int *fd_tty, char **ttydev)
 {
-#if defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT)
-# if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_POSIX) || defined(PTYS_ARE_PTMX)
   int pfd;
 
-# if defined(PTYS_ARE_GETPT)
+# if defined(HAVE_GETPT)
   pfd = getpt();
-# elif defined(PTYS_ARE_POSIX)
+# elif defined(HAVE_POSIX_OPENPT)
   pfd = posix_openpt (O_RDWR);
 # else
-  pfd = open ("/dev/ptmx", O_RDWR | O_NOCTTY, 0);
+  pfd = open (CLONE_DEVICE, O_RDWR | O_NOCTTY, 0);
 # endif
   if (pfd >= 0)
     {
@@ -91,16 +92,13 @@ get_pty_streams (int *fd_tty, char **ttydev)
 
       close (pfd);
     }
-# endif
-#endif
 
   return -1;
 }
-
-static inline int
-get_pty_openpty (int *fd_tty, char **ttydev)
+#elif defined(HAVE_OPENPTY)
+static int
+get_pty (int *fd_tty, char **ttydev)
 {
-#ifdef PTYS_ARE_OPENPTY
   int pfd;
   int res;
   char tty_name[32];
@@ -111,29 +109,25 @@ get_pty_openpty (int *fd_tty, char **ttydev)
       *ttydev = strdup (tty_name);
       return pfd;
     }
-#endif
 
   return -1;
 }
-
-static inline int
-get_pty__getpty (int *fd_tty, char **ttydev)
+#elif defined(HAVE__GETPTY)
+static int
+get_pty (int *fd_tty, char **ttydev)
 {
-#ifdef PTYS_ARE__GETPTY
   int pfd;
 
   *ttydev = _getpty (&pfd, O_RDWR | O_NONBLOCK | O_NOCTTY, 0622, 0);
   if (*ttydev != NULL)
     return pfd;
-#endif
 
   return -1;
 }
-
-static inline int
-get_pty_ptc (int *fd_tty, char **ttydev)
+#elif defined(HAVE_DEV_PTC)
+static int
+get_pty (int *fd_tty, char **ttydev)
 {
-#ifdef PTYS_ARE_PTC
   int pfd;
 
   if ((pfd = open ("/dev/ptc", O_RDWR | O_NOCTTY, 0)) >= 0)
@@ -141,15 +135,13 @@ get_pty_ptc (int *fd_tty, char **ttydev)
       *ttydev = strdup (ttyname (pfd));
       return pfd;
     }
-#endif
 
   return -1;
 }
-
-static inline int
-get_pty_clone (int *fd_tty, char **ttydev)
+#elif defined(HAVE_DEV_CLONE)
+static int
+get_pty (int *fd_tty, char **ttydev)
 {
-#ifdef PTYS_ARE_CLONE
   int pfd;
 
   if ((pfd = open ("/dev/ptym/clone", O_RDWR | O_NOCTTY, 0)) >= 0)
@@ -157,109 +149,41 @@ get_pty_clone (int *fd_tty, char **ttydev)
       *ttydev = strdup (ptsname (pfd));
       return pfd;
     }
-#endif
 
   return -1;
 }
-
-static inline int
-get_pty_numeric (int *fd_tty, char **ttydev)
+#else
+/* Based on the code in openssh/openbsd-compat/bsd-openpty.c */
+static int
+get_pty (int *fd_tty, char **ttydev)
 {
-#ifdef PTYS_ARE_NUMERIC
   int pfd;
-  int idx;
-  char *c1, *c2;
-  char pty_name[] = "/dev/ptyp???";
-  char tty_name[] = "/dev/ttyp???";
-
-  c1 = &(pty_name[sizeof (pty_name) - 4]);
-  c2 = &(tty_name[sizeof (tty_name) - 4]);
-
-  for (idx = 0; idx < 256; idx++)
+  int i;
+  char pty_name[32];
+  char tty_name[32];
+  const char *majors = "pqrstuvwxyzabcde";
+  const char *minors = "0123456789abcdef";
+  for (i = 0; i < 256; i++)
     {
-      sprintf (c1, "%d", idx);
-      sprintf (c2, "%d", idx);
-
-      if (access (tty_name, F_OK) < 0)
+      snprintf(pty_name, 32, "/dev/pty%c%c", majors[i / 16], minors[i % 16]);
+      snprintf(tty_name, 32, "/dev/tty%c%c", majors[i / 16], minors[i % 16]);
+      if ((pfd = open (pty_name, O_RDWR | O_NOCTTY, 0)) == -1)
         {
-          idx = 256;
-          break;
+         snprintf(pty_name, 32, "/dev/ptyp%d", i);
+         snprintf(tty_name, 32, "/dev/ttyp%d", i);
+         if ((pfd = open (pty_name, O_RDWR | O_NOCTTY, 0)) == -1)
+           continue;
         }
-
-      if ((pfd = open (pty_name, O_RDWR | O_NOCTTY, 0)) >= 0)
+      if (access (tty_name, R_OK | W_OK) == 0)
         {
-          if (access (tty_name, R_OK | W_OK) == 0)
-            {
-              *ttydev = strdup (tty_name);
-              return pfd;
-            }
-
-          close (pfd);
+         *ttydev = strdup (tty_name);
+         return pfd;
         }
-    }
-#endif
-
-  return -1;
-}
-
-static inline int
-get_pty_searched (int *fd_tty, char **ttydev)
-{
-#ifdef PTYS_ARE_SEARCHED
-# ifndef PTYCHAR1
-#  define PTYCHAR1     "pqrstuvwxyz"
-# endif
-# ifndef PTYCHAR2
-#  define PTYCHAR2     "0123456789abcdef"
-# endif
-  int pfd;
-  const char *c1, *c2;
-  char pty_name[] = "/dev/pty??";
-  char tty_name[] = "/dev/tty??";
-
-  for (c1 = PTYCHAR1; *c1; c1++)
-    {
-      pty_name[ (sizeof (pty_name) - 3)] =
-        tty_name[ (sizeof (pty_name) - 3)] = *c1;
-
-      for (c2 = PTYCHAR2; *c2; c2++)
-        {
-          pty_name[ (sizeof (pty_name) - 2)] =
-            tty_name[ (sizeof (pty_name) - 2)] = *c2;
-
-          if ((pfd = open (pty_name, O_RDWR | O_NOCTTY, 0)) >= 0)
-            {
-              if (access (tty_name, R_OK | W_OK) == 0)
-                {
-                  *ttydev = strdup (tty_name);
-                  return pfd;
-                }
 
-              close (pfd);
-            }
-        }
+      close (pfd);
     }
-#endif
-
-  return -1;
-}
-
-static int
-get_pty (int *fd_tty, char **ttydev)
-{
-  int pfd;
-
-  if ((pfd = get_pty_streams (fd_tty, ttydev)) != -1
-      || (pfd = get_pty_openpty (fd_tty, ttydev)) != -1
-      || (pfd = get_pty__getpty (fd_tty, ttydev)) != -1
-      || (pfd = get_pty_ptc (fd_tty, ttydev)) != -1
-      || (pfd = get_pty_clone (fd_tty, ttydev)) != -1
-      || (pfd = get_pty_numeric (fd_tty, ttydev)) != -1
-      || (pfd = get_pty_searched (fd_tty, ttydev)) != -1)
-    return pfd;
-
-  return -1;
 }
+#endif
 
 /*----------------------------------------------------------------------*/
 /*
@@ -280,7 +204,7 @@ control_tty (int fd_tty)
 {
   setsid ();
 
-#if defined(PTYS_ARE_PTMX) && defined(I_PUSH)
+#if defined(HAVE_DEV_PTMX) && defined(I_PUSH)
   /*
    * Push STREAMS modules:
    *    ptem: pseudo-terminal hardware emulation module.
index b124e23..4025a8e 100644 (file)
@@ -4,12 +4,7 @@
 #include "rxvt.h"
 #include "feature.h"
 
-#if defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT)
-# if defined(PTYS_ARE_GETPT) || defined(PTYS_ARE_POSIX) || defined(PTYS_ARE_PTMX)
-#  define NO_SETOWNER_TTYDEV 1
-# endif
-#endif
-#if defined(__CYGWIN__) || defined(PTYS_ARE_OPENPTY)
+#if defined(HAVE__GETPTY) || defined(HAVE_OPENPTY) || defined(UNIX98_PTY)
 # define NO_SETOWNER_TTYDEV 1
 #endif