home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / security / Watcher / pct_check.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-08-02  |  961 b   |  46 lines

  1. /*
  2.    pct_check: verify that the value has not changed more than the
  3.    allowed percentage.
  4.  
  5.    Kenneth Ingham
  6.  
  7.    Copyright (C) 1988 The University of New Mexico
  8. */
  9.  
  10. #include "defs.h"
  11.  
  12. pct_check(current, prev_val, percent, cmd, name, line)
  13. char *current;
  14. double percent;
  15. struct everything *prev_val;
  16. char *cmd, *name, *line;
  17. {
  18.     extern int line_ok, cmd_ok;
  19.     double change, previous, value;
  20.     double to_double();
  21.  
  22.     previous = to_double(prev_val);
  23.     value = atof(current);
  24.  
  25.     if (value == 0) /* avoid divide by 0 */
  26.         return;
  27.  
  28.     change = (value - previous) / value;
  29.     if (change > percent) {
  30.         if (line_ok) {
  31.             printf("%s had ", cmd);
  32.             printf("%s change by more than %.2f percent.\n",
  33.                 name, percent*100);
  34.             printf("%s\n",line);
  35.         }
  36.         else {
  37.             printf("Also, it had ");
  38.             printf("%s change by more than %.2f percent.\n",
  39.                 name, percent*100);
  40.         }
  41.         printf("Previous value %.2f; ", previous);
  42.         printf("current value %.2f.\n", value);
  43.         line_ok = False;
  44.     }
  45. }
  46.