chiark / gitweb /
Tolerate variation in ac_flag field name, and, to an extent, value.
[chiark-utils.git] / cprogs / acctdump.c
index 35acfb3e4cad8727794876af93fb14a27bf63a2f..77e1896f253ad8bbd78032e161eba20e029c4bb3 100644 (file)
@@ -44,6 +44,7 @@ typedef unsigned long long u64;
 typedef struct acct_v3 struct_acct;
 #define HAVE_AC_EXITCODE
 #define HAVE_AC_FLT
+#define FIELD_AC_FLAG(as) ((as)->ac_flag)
 
 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 
@@ -52,6 +53,7 @@ typedef struct acct_v3 struct_acct;
 #include <sys/acct.h>
 
 typedef struct acctv2 struct_acct;
+#define FIELD_AC_FLAG(as) ((as)->ac_flagx & ~ANVER)
 
 #else
 
@@ -245,7 +247,7 @@ static void printrecord(const struct_acct *as, const char *filename) {
     }
   }
 
-  r= as->ac_flag;
+  r= FIELD_AC_FLAG(as);
   for (i=1, fp= "FS4DX"; *fp; fp++, i<<=1) {
     if (r&i) {
       putchar(*fp);