| From 2f1b9dfe03133c9b77ea450aed088d65128dc547 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net> |
| 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 <utmpx.h> |
| +],[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 |