home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume19 / df2 / patch01 / df2.p01
Encoding:
Text File  |  1991-04-29  |  2.7 KB  |  103 lines

  1. Index: df2.c
  2. ***************
  3. *** 13,16 ****
  4. --- 13,17 ----
  5.   #include <sys/stat.h>
  6.   #include <sys/statfs.h>
  7. + #include <sys/fstyp.h>
  8.   #include <mnttab.h>
  9.   
  10. ***************
  11. *** 21,25 ****
  12.   {
  13.   "                                   Size (kb)                  Inodes        ",
  14. ! "Filesystem|Mount Dir    | Total   Free    Used   Used| Total  Free  Used   Used",
  15.   (char *)0
  16.   };
  17. --- 22,26 ----
  18.   {
  19.   "                                   Size (kb)                  Inodes        ",
  20. ! "Filsys|Mount Dir      |  Total    Free    Used Used | Total   Free   Used Used",
  21.   (char *)0
  22.   };
  23. ***************
  24. *** 26,30 ****
  25.   
  26.   char *sep =
  27. ! "----------+-------------+----------------------------+-------------------------";
  28.   
  29.   /*+-------------------------------------------------------------------------
  30. --- 27,31 ----
  31.   
  32.   char *sep =
  33. ! "------+---------------+-----------------------------+-------------------------";
  34.   
  35.   /*+-------------------------------------------------------------------------
  36. ***************
  37. *** 42,45 ****
  38. --- 43,47 ----
  39.   struct statfs statf_buf;
  40.   struct statfs *fs = &statf_buf;
  41. + int fstyp_nfs = sysfs(GETFSIND, "NFS");
  42.   
  43.   long kb_size;
  44. ***************
  45. *** 71,74 ****
  46. --- 73,78 ----
  47.       while(fread((char *)mt,1,sizeof(*mt),fpmt) == sizeof(*mt))
  48.       {
  49. +         char *dev;
  50.           if(statfs(mt->mt_filsys,fs,sizeof(*fs),0))
  51.           {
  52. ***************
  53. *** 85,94 ****
  54.           ino_free = fs->f_ffree;
  55.           ino_used = ino_size - ino_free;
  56. !         ino_used_pct = (ino_used * 100) / ino_size;
  57.   
  58. !         printf("%-10.10s|%-13.13s|%7ld %7ld %7ld %3d%%|%6ld %6ld %6ld %3d%%\n",
  59. !             mt->mt_dev,mt->mt_filsys,
  60. !             kb_size,kb_free,kb_used,kb_used_pct,
  61. !             ino_size,ino_free,ino_used,ino_used_pct);
  62.   
  63.           kb_size_total  += kb_size;
  64. --- 89,111 ----
  65.           ino_free = fs->f_ffree;
  66.           ino_used = ino_size - ino_free;
  67. !         ino_used_pct = ino_size ? ((ino_used * 100) / ino_size) : 0;
  68.   
  69. !         dev = (fs->f_fstyp == fstyp_nfs) ? "NFS"
  70. !             : (strncmp(mt->mt_dev, "/dev/", 5) == 0) ? mt->mt_dev + 5
  71. !             : mt->mt_dev;
  72. !         printf("%-6.6s|%-15.15s|%7ld %7ld %7ld %3d%% |",
  73. !                dev, mt->mt_filsys,
  74. !                kb_size,kb_free,kb_used,kb_used_pct);
  75. !         if (fs->f_fstyp == fstyp_nfs)
  76. !         {
  77. !             printf(" [%s]", mt->mt_dev);
  78. !         }
  79. !         else if (ino_size)
  80. !         {
  81. !             printf("%6ld %6ld %6ld %3d%%",
  82. !                    ino_size,ino_free,ino_used,ino_used_pct);
  83. !         }
  84. !         printf("\n");
  85.   
  86.           kb_size_total  += kb_size;
  87. ***************
  88. *** 105,109 ****
  89.   
  90.       printf("%s\n",sep);
  91. !     printf("%-10.10s|%-13.13s|%7ld %7ld %7ld %3d%%|%6ld %6ld %6ld %3d%%\n",
  92.           "","total",
  93.           kb_size_total,kb_free_total,kb_used_total,kb_used_pct,
  94. --- 122,126 ----
  95.   
  96.       printf("%s\n",sep);
  97. !     printf("%-6.6s|%-15.15s|%7ld %7ld %7ld %3d%% |%6ld %6ld %6ld %3d%%\n",
  98.           "","total",
  99.           kb_size_total,kb_free_total,kb_used_total,kb_used_pct,
  100.  
  101.