From a2dd98f3f51c34d2d85a139f1fcaaf76a10fdd10 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 26 Oct 2014 23:46:18 +0000 Subject: [PATCH] Tolerate lack of ac_exitcode. --- cprogs/acctdump.c | 24 ++++++++++++++++++------ debian/changelog | 1 + 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/cprogs/acctdump.c b/cprogs/acctdump.c index 5668402..7139922 100644 --- a/cprogs/acctdump.c +++ b/cprogs/acctdump.c @@ -42,6 +42,7 @@ typedef unsigned long long u64; #include typedef struct acct_v3 struct_acct; +#define HAVE_AC_EXITCODE #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) @@ -77,12 +78,14 @@ static const struct cmdinfo cmdinfos[]= { { 0 } }; +#ifdef HAVE_AC_EXITCODE static const char *sigabbrev[]= { "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO" }; +#endif void usagemessage(void) { fputs("usage: acctdump [] [ ...]\n" @@ -160,12 +163,18 @@ static int walkdev_cptr(const void *av, const void *bv) { static void printbanner(void) { if (raw) { fputs("begin date command " - "uid gid tty dev FSDX exit", - stdout); + "uid gid tty dev FSDX " +#ifdef HAVE_AC_EXITCODE + "exit" +#endif + , stdout); } else { fputs("begin date and time command " - "user group tty dev FSDX sigexit", - stdout); + "user group tty dev FSDX " +#ifdef HAVE_AC_EXITCODE + "sigexit" +#endif + , stdout); } if (usages) { fputs(" user time sys time elap time minflt maxflt", @@ -178,7 +187,7 @@ static void printbanner(void) { static void printrecord(const struct_acct *as, const char *filename) { static int walkeddev; - int i, dc, r; + int i, r; const char *fp; char buf[100]; struct tm *tm; @@ -245,7 +254,9 @@ static void printrecord(const struct_acct *as, const char *filename) { printf("#%x",r); } putchar(' '); - + +#ifdef HAVE_AC_EXITCODE + int dc; dc= WCOREDUMP(as->ac_exitcode) ? 'd' : 'k'; if (raw) { if (WIFEXITED(as->ac_exitcode)) { @@ -275,6 +286,7 @@ static void printrecord(const struct_acct *as, const char *filename) { printf("#%04lx",(unsigned long)as->ac_exitcode); } } +#endif /*HAVE_AC_EXITCODE*/ if (usages) { printf(" %10lu %10lu %10lu %8ld %8ld", diff --git a/debian/changelog b/debian/changelog index e140080..9350f09 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ chiark-utils (4.4.1) unstable; urgency=low * Do not build on platforms with no * Use different struct acct, and different headers, on different platforms. + * Tolerate lack of ac_exitcode. -- -- 2.30.2