summaryrefslogtreecommitdiff
path: root/usr.bin/cvs/file.c
diff options
context:
space:
mode:
authorJean-Francois Brousseau <jfb@cvs.openbsd.org>2005-03-05 17:19:51 +0000
committerJean-Francois Brousseau <jfb@cvs.openbsd.org>2005-03-05 17:19:51 +0000
commitde6908704e90d9203ed10495e1bb51a877bab833 (patch)
tree8d687c5b57e7a4863bed61dfafd141ecdf91af5c /usr.bin/cvs/file.c
parentd4078f7b52ee4eadadf5450cf77d907ed57473db (diff)
fix file loading when recursion is disabled. this should fix the
weird behaviour encountered when using the -l option to most commands ok joris@
Diffstat (limited to 'usr.bin/cvs/file.c')
-rw-r--r--usr.bin/cvs/file.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/usr.bin/cvs/file.c b/usr.bin/cvs/file.c
index ad0bbd30858..cf0b428d56a 100644
--- a/usr.bin/cvs/file.c
+++ b/usr.bin/cvs/file.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: file.c,v 1.55 2005/03/05 03:00:27 jfb Exp $ */
+/* $OpenBSD: file.c,v 1.56 2005/03/05 17:19:50 jfb Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -586,8 +586,7 @@ cvs_file_getdir(CVSFILE *cf, int flags)
}
}
- if (!(flags & CF_RECURSE) ||
- ((flags & CF_KNOWN) && (cf->cf_cvstat == CVS_FST_UNKNOWN)))
+ if ((flags & CF_KNOWN) && (cf->cf_cvstat == CVS_FST_UNKNOWN))
return (0);
fd = open(fpath, O_RDONLY);
@@ -628,6 +627,13 @@ cvs_file_getdir(CVSFILE *cf, int flags)
if ((flags & CF_NOSYMS) && (ent->d_type == DT_LNK))
continue;
+ if (!(flags & CF_RECURSE) && (ent->d_type == DT_DIR)) {
+ if (cdp->cd_ent != NULL)
+ (void)cvs_ent_remove(cdp->cd_ent,
+ ent->d_name);
+ continue;
+ }
+
snprintf(pbuf, sizeof(pbuf), "%s/%s", fpath,
ent->d_name);
cfp = cvs_file_lget(pbuf, flags, cf);