diff options
author | imp <imp@FreeBSD.org> | 2000-07-25 19:05:09 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2000-07-25 19:05:09 +0000 |
commit | 054be419e85a7a245c93d61488067c0cc308fa50 (patch) | |
tree | d14b98fb71dd3f0ea3f82ecb7e3a791b254f65a4 /usr.sbin/mtree/verify.c | |
parent | 044c01152e7b427b706e5e96b420adbdd2d806c8 (diff) | |
download | FreeBSD-src-054be419e85a7a245c93d61488067c0cc308fa50.zip FreeBSD-src-054be419e85a7a245c93d61488067c0cc308fa50.tar.gz |
Add -q. this will cause the warning messages about missing
directories to not be printed. This is from OpenBSD (and I think
NetBSD also) and makes our mtree more compatible with other BSDs.
This makes cross compilation easier than it was before. Other changes
will be needed to allow NetBSD or OpenBSD to cross build on FreeBSD,
but this is a start.
Reviewed by: andrey
Obtained from: OpenBSD
Concentric Red Circles by: My own stupidity
Diffstat (limited to 'usr.sbin/mtree/verify.c')
-rw-r--r-- | usr.sbin/mtree/verify.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/usr.sbin/mtree/verify.c b/usr.sbin/mtree/verify.c index d25797b..a599fad 100644 --- a/usr.sbin/mtree/verify.c +++ b/usr.sbin/mtree/verify.c @@ -53,7 +53,7 @@ static const char rcsid[] = extern long int crc_total; extern int ftsoptions; -extern int dflag, eflag, rflag, sflag, uflag; +extern int dflag, eflag, qflag, rflag, sflag, uflag; extern char fullpath[MAXPATHLEN]; extern int lineno; @@ -171,8 +171,16 @@ miss(p, tail) if (p->type != F_DIR && (dflag || p->flags & F_VISIT)) continue; (void)strcpy(tail, p->name); - if (!(p->flags & F_VISIT)) - (void)printf("missing: %s", path); + if (!(p->flags & F_VISIT)) { + /* Don't print missing message if file exists as a + symbolic link and the -q flag is set. */ + struct stat statbuf; + + if (qflag && stat(path, &statbuf) == 0) + p->flags |= F_VISIT; + else + (void)printf("missing: %s", path); + } if (p->type != F_DIR && p->type != F_LINK) { putchar('\n'); continue; |