* date.c (WTMPX_FILE): Define to _PATH_WTMPX if not already defined and if _PATH_WTMPX is defined. (reset): Do not use WTMPX_FILE if it is not defined. * NEWS: Document this. --- NEWS | 5 +++++ date.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 2c8b474..a8218f1 100644 --- a/NEWS +++ b/NEWS @@ -39,6 +39,11 @@ Unreleased, experimental changes tzselect -c now uses a hybrid distance measure that works better in Africa. (Thanks to Alan Barrett for noting the problem.) + When HAVE_UTMPX_H is set the 'date' command now builds on systems + whose <utmpx.h> file does not define WTMPX_FILE, and when setting + the date it updates the wtmpx file if _PATH_WTMPX is defined. + This affects GNU/Linux and similar systems. + Changes affecting distribution tarballs The files checktab.awk and zoneinfo2tdf.pl are now distributed in diff --git a/date.c b/date.c index 9a0b84c..3d78914 100644 --- a/date.c +++ b/date.c @@ -31,6 +31,9 @@ #ifndef NTIME_MSG #define NTIME_MSG "new time" #endif +#if !defined WTMPX_FILE && defined _PATH_WTMPX +# define WTMPX_FILE _PATH_WTMPX +#endif /* ** The two things date knows about time are. . . @@ -378,7 +381,7 @@ reset(const time_t newt, const int nflag) sx.after.ut_type = NEW_TIME; sx.after.ut_tv.tv_sec = newt; (void) strcpy(sx.after.ut_line, NTIME_MSG); -#if !SUPPRESS_WTMPX_FILE_UPDATE +#if defined WTMPX_FILE && !SUPPRESS_WTMPX_FILE_UPDATE /* In Solaris 2.5 (and presumably other systems), 'date' does not update /var/adm/wtmpx. This must be a bug. If you'd like to reproduce the bug, @@ -390,7 +393,7 @@ reset(const time_t newt, const int nflag) oops(_("log file write")); if (close(fid) != 0) oops(_("log file close")); -#endif /* !SUPPRESS_WTMPX_FILE_UPDATE */ +# endif pututxline(&sx.before); pututxline(&sx.after); #endif /* HAVE_UTMPX_H */ -- 1.9.1