[BACK]Return to engine.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / systat

Diff for /src/usr.bin/systat/engine.c between version 1.24 and 1.25

version 1.24, 2019/07/19 15:40:11 version 1.25, 2020/01/12 20:51:08
Line 52 
Line 52 
   
 useconds_t udelay = 5000000;  useconds_t udelay = 5000000;
 int dispstart = 0;  int dispstart = 0;
   int humanreadable = 0;
 int interactive = 1;  int interactive = 1;
 int averageonly = 0;  int averageonly = 0;
 int maxprint = 0;  int maxprint = 0;
Line 718 
Line 719 
 print_fld_sdiv(field_def *fld, u_int64_t size, int d)  print_fld_sdiv(field_def *fld, u_int64_t size, int d)
 {  {
         int len;          int len;
           char *mult = "KMGTPE";
           int i = -1;
   
         if (fld == NULL)          if (fld == NULL)
                 return;                  return;
Line 726 
Line 729 
         if (len < 1)          if (len < 1)
                 return;                  return;
   
         tb_start();          if (humanreadable) {
         if (tbprintft("%llu", size) <= len)                  while (size >= 10000 && sizeof(mult) >= i + 1) {
                 goto ok;                          i++;
                           size /= d;
         tb_start();                  }
         size /= d;                  tb_start();
         if (tbprintft("%lluK", size) <= len)                  if (tbprintft("%llu%.1s", size, i == -1 ? "" : mult + i) <= len)
                 goto ok;                          goto ok;
         if (size == 0)  
                 goto err;                  goto err;
           }
         tb_start();          do {
         size /= d;                  tb_start();
         if (tbprintft("%lluM", size) <= len)                  if (tbprintft("%llu%.1s", size, i == -1 ? "" : mult + i) <= len)
                 goto ok;                          goto ok;
         if (size == 0)                  i++;
                 goto err;                  size /= d;
           } while (size != 0 && sizeof(mult) >= i);
         tb_start();  
         size /= d;  
         if (tbprintft("%lluG", size) <= len)  
                 goto ok;  
         if (size == 0)  
                 goto err;  
   
         tb_start();  
         size /= d;  
         if (tbprintft("%lluT", size) <= len)  
                 goto ok;  
   
 err:  err:
           tb_start();
         print_fld_str(fld, "*");          print_fld_str(fld, "*");
         tb_end();          tb_end();
         return;          return;

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25