From 2f1b9dfe03133c9b77ea450aed088d65128dc547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= Date: Tue, 5 Apr 2016 12:47:08 +0200 Subject: [PATCH] check if we have ut_exit in utmpx struct --- acconfig.h | 5 +++++ configure.ac | 4 ++++ utmp.c | 2 ++ 3 files changed, 11 insertions(+) diff --git a/acconfig.h b/acconfig.h index 656e117..d173c9c 100644 --- a/acconfig.h +++ b/acconfig.h @@ -215,6 +215,11 @@ #undef HAVE_UTEMPTER /* + * Define if your utmpx has ut_exit struct + */ +#undef HAVE_UT_EXIT + +/* * If your system has the calls setreuid() and setregid(), * define HAVE_SETREUID. Otherwise screen will use a forked process to * safely create output files without retaining any special privileges. diff --git a/configure.ac b/configure.ac index 1a75020..8457619 100644 --- a/configure.ac +++ b/configure.ac @@ -374,6 +374,10 @@ if test "$have_utempter" = yes; then AC_DEFINE(HAVE_UTEMPTER) LIBS="$LIBS -lutempter" fi +AC_CHECKING(ut_exit) +AC_TRY_COMPILE([ +#include +],[struct utmpx u; u.ut_exit.e_exit;], AC_DEFINE(HAVE_UT_EXIT)) dnl dnl **** signal handling **** diff --git a/utmp.c b/utmp.c index da8d7ff..c864d07 100644 --- a/utmp.c +++ b/utmp.c @@ -381,7 +381,7 @@ static int pututslot(slot_t slot, struct utmpx *u, char *host, Window *win) struct utmp *u; { u->ut_type = DEAD_PROCESS; -#if (!defined(linux) || defined(EMPTY)) && !defined(__CYGWIN__) +#if defined(HAVE_UT_EXIT) u->ut_exit.e_termination = 0; u->ut_exit.e_exit = 0; #endif