diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2000-11-24 14:27:21 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2000-11-24 14:27:21 +0000 |
commit | e5ab92938083a6aa61fa10053610274794fb5f91 (patch) | |
tree | 68690d4e4dc69a1769e515f76058cf7faf1a5dc7 /usr.bin/make/dir.c | |
parent | 037e831b215b1948c5b99e6d813f47fb6ca0deeb (diff) |
Clean-ups:
* Buf_Destroy can be a macro
* X_ instead of _X for struct names, to avoid infringing on the system's
namespace.
* better wildcard detection heuristics
* fix #ifdef CLEANUP code
* a few comments
Diffstat (limited to 'usr.bin/make/dir.c')
-rw-r--r-- | usr.bin/make/dir.c | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/usr.bin/make/dir.c b/usr.bin/make/dir.c index 645e1ab2bdf..18140e01047 100644 --- a/usr.bin/make/dir.c +++ b/usr.bin/make/dir.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dir.c,v 1.27 2000/09/14 13:52:41 espie Exp $ */ +/* $OpenBSD: dir.c,v 1.28 2000/11/24 14:27:19 espie Exp $ */ /* $NetBSD: dir.c,v 1.14 1997/03/29 16:51:26 christos Exp $ */ /* @@ -96,7 +96,7 @@ static char sccsid[] = "@(#)dir.c 8.2 (Berkeley) 1/2/94"; #else UNUSED -static char rcsid[] = "$OpenBSD: dir.c,v 1.27 2000/09/14 13:52:41 espie Exp $"; +static char rcsid[] = "$OpenBSD: dir.c,v 1.28 2000/11/24 14:27:19 espie Exp $"; #endif #endif /* not lint */ @@ -346,7 +346,7 @@ Dir_End() p = hash_next(&openDirectories, &i)) Dir_Destroy(p); hash_delete(&openDirectories); - Hash_DeleteTable(&mtimes); + free_hash(&mtimes); #endif } @@ -356,49 +356,45 @@ Dir_End() * see if the given name has any wildcard characters in it * be careful not to expand unmatching brackets or braces. * XXX: This code is not 100% correct. ([^]] fails etc.) - * I really don't think that make(1) should be expanding - * patterns, because then you have to set a mechanism for - * escaping the expansion! - * - * Results: - * returns TRUE if the word should be expanded, FALSE otherwise - * - * Side Effects: - * none *----------------------------------------------------------------------- */ Boolean Dir_HasWildcards (name) - char *name; /* name to check */ + const char *name; /* name to check */ { - register char *cp; - int wild = 0, brace = 0, bracket = 0; + const char *cp; + Boolean wild = FALSE; + unsigned long brace = 0, bracket = 0; - for (cp = name; *cp; cp++) { - switch(*cp) { + for (cp = name; *cp != '\0' ; cp++) { + switch (*cp) { case '{': brace++; - wild = 1; + wild = TRUE; break; case '}': + if (brace == 0) + return FALSE; brace--; break; case '[': bracket++; - wild = 1; + wild = TRUE; break; case ']': + if (bracket == 0) + return FALSE; bracket--; break; case '?': case '*': - wild = 1; + wild = TRUE; break; default: break; } } - return (wild && bracket == 0 && brace == 0); + return wild && bracket == 0 && brace == 0; } /*- |