ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/statgrab/statgrab.c
(Generate patch)

Comparing projects/libstatgrab/src/statgrab/statgrab.c (file contents):
Revision 1.28 by tdb, Sun Jul 18 20:21:21 2004 UTC vs.
Revision 1.29 by ats, Tue Aug 10 18:50:37 2004 UTC

# Line 71 | Line 71 | repeat_mode_type repeat_mode = REPEAT_NONE;
71   int repeat_time = 1;
72   int use_cpu_percent = 0;
73   int use_diffs = 0;
74 + long float_scale_factor = 0;
75  
76   /* Exit with an error message. */
77   void die(const char *s) {
# Line 488 | Line 489 | void get_stats() {
489   /* Print the value of a stat. */
490   void print_stat_value(const stat *s) {
491          void *v = s->stat;
492 +        double fv;
493          long l;
494  
495          switch (s->type) {
# Line 500 | Line 502 | void print_stat_value(const stat *s) {
502                  printf("%ld", l);
503                  break;
504          case FLOAT:
503                printf("%f", *(float *)v);
504                break;
505          case DOUBLE:
506 <                printf("%f", *(double *)v);
506 >                if (s->type == FLOAT) {
507 >                        fv = *(float *)v;
508 >                } else {
509 >                        fv = *(double *)v;
510 >                }
511 >                if (float_scale_factor != 0) {
512 >                        printf("%ld", (long)(float_scale_factor * fv));
513 >                } else {
514 >                        printf("%f", fv);
515 >                }
516                  break;
517          case STRING:
518                  /* FIXME escaping? */
# Line 620 | Line 629 | void usage() {
629                 "  -t DELAY   When repeating, wait DELAY seconds between updates (default 1)\n"
630                 "  -p     Display CPU usage differences as percentages rather than\n"
631                 "             absolute values\n"
632 +               "  -f SCALE   Display floating-point values as integers scaled by FACTOR\n"
633                 "\n");
634          printf("Version %s - report bugs to <%s>.\n",
635                 PACKAGE_VERSION, PACKAGE_BUGREPORT);
# Line 629 | Line 639 | void usage() {
639   int main(int argc, char **argv) {
640          opterr = 0;
641          while (1) {
642 <                int c = getopt(argc, argv, "lbmunsot:p");
642 >                int c = getopt(argc, argv, "lbmunsot:pf:");
643                  if (c == -1)
644                          break;
645                  switch (c) {
# Line 659 | Line 669 | int main(int argc, char **argv) {
669                          break;
670                  case 'p':
671                          use_cpu_percent = 1;
672 +                        break;
673 +                case 'f':
674 +                        float_scale_factor = atol(optarg);
675                          break;
676                  default:
677                          usage();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines