File acct-6.3.5-hz.patch of Package acct

--- lastcomm.c
+++ lastcomm.c
@@ -48,6 +48,10 @@
 
 #include <pwd.h>
 
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
 #include "common.h"
 #include "uid_hash.h"
 #include "dev_hash.h"
@@ -65,7 +69,7 @@
 int strict_match_flag = 0;	/* Nonzero if each record has to match
 				   all items on the command line */
 int print_controls = 0;		/* don't print control characters */
-int ahz = AHZ;			/* for viewing logs from another system */
+int ahz = 0; 			/* for viewing logs from another system */
 
 char *program_name;		/* name of the program, for usage & errs */
 
@@ -88,7 +92,6 @@
 int get_entry PARAMS((struct acct **));
 int desired_entry PARAMS((char *, char *, char *));
 
-
 /* code */
 
 void
@@ -288,6 +291,14 @@
 	  print_pacct_record (rec, stddebug);
 	}
 
+      if (!ahz) // if this is the first cycle run, ahz is not set yet
+      {
+        if (rec->ac_version == 3)
+          ahz = 100; // value AHZ = 100 is hardcoded in acct.h, but in #ifdef __KERNEL__ block. too bad
+        else
+          ahz = sysconf(_SC_CLK_TCK);
+      }
+
       if (desired_entry (this_uid, this_dev, rec->ac_comm))
 	{
 #ifdef HAVE_COMP_T
--- sa.c
+++ sa.c
@@ -174,7 +174,7 @@
 int print_users = 0;
 int percentages = 0;		/* include percentages in printout */
 int user_summary_flag = 0;	/* are we printing a user summary? */
-int ahz = AHZ;			/* for viewing logs from another system */
+int ahz = 0;			/* for viewing logs from another system */
 
 
 #if defined(HAVE_ACUTIME) && defined(HAVE_ACSTIME)
@@ -262,7 +262,6 @@
 int ask_if_junkable PARAMS((char *, int));
 
 
-
 /* code */
 
 void
@@ -1116,6 +1115,18 @@
   /* loop while there are entries to be had */
   while ((rec = pacct_get_entry ()) != NULL)
     {
+      if (!ahz) // if this is the first cycle run, ahz is not set yet
+      {
+        if (rec->ac_version == 3)
+          ahz = 100; // value AHZ = 100 is hardcoded in acct.h, but in #ifdef __KERNEL__ block. too bad
+        else
+          ahz = sysconf(_SC_CLK_TCK);
+
+        if (debugging_enabled)
+          {
+            fprintf (stddebug, "AHZ -> %d\n", ahz);
+          }
+      }
 #ifdef HAVE_ACUTIME
 # ifdef ACUTIME_COMPT
       double ut = comp_t_2_double (rec->ac_utime) / (double) ahz;
openSUSE Build Service is sponsored by