summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2011-01-27 13:02:28 -0500
committerSteve Dickson <steved@redhat.com>2014-06-18 08:32:45 -0400
commit07b8339eb1ddf03233a5ac5169109812c0287269 (patch)
tree2bd01937c42b9bd0171cd30ba4c0578d6c770f82
parent9dbff73f6ea178111277f070b15f75390cc67e54 (diff)
downloadcthon04-07b8339eb1ddf03233a5ac5169109812c0287269.tar.gz
cthon04-07b8339eb1ddf03233a5ac5169109812c0287269.tar.xz
cthon04-07b8339eb1ddf03233a5ac5169109812c0287269.zip
Make the stat command ignore lines that it is not looking for.
Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--general/stat.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/general/stat.c b/general/stat.c
index c4e4fc0..2ce604e 100644
--- a/general/stat.c
+++ b/general/stat.c
@@ -30,7 +30,7 @@ main(argc, argv)
{
FILE *fp;
int i, n;
- char c, *fmt;
+ char c, *fmt, buf[BUFSIZ];
int attfmt = 0; /* set if using att time format */
Prog = argv[0];
@@ -45,6 +45,7 @@ main(argc, argv)
Prog, File);
exit(1);
}
+getnewch:
if ((i = fgetc(fp)) == EOF) {
fprintf(stderr, "%s: %s is empty\n",
Prog, File);
@@ -53,8 +54,12 @@ main(argc, argv)
c = i & 0x7f;
if (c == '\n' || c == '\r' || c == 'r')
attfmt = 1;
- else
+ else if (isdigit(c))
fmt = "%lf %*s %lf %*s %lf %*s"; /* BSD fmt */
+ else { /* skip the line */
+ fgets(buf, BUFSIZ, fp);
+ goto getnewch;
+ }
if (ungetc(c, fp) == EOF) {
fprintf(stderr, "%s: can't push char back to %s\n",
Prog, File);