summaryrefslogtreecommitdiffstats
path: root/usr.bin/make/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/make/dir.c')
-rw-r--r--usr.bin/make/dir.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.bin/make/dir.c b/usr.bin/make/dir.c
index 57d1687..137a21e 100644
--- a/usr.bin/make/dir.c
+++ b/usr.bin/make/dir.c
@@ -680,7 +680,7 @@ Dir_FindFile (char *name, Lst path)
LstNode ln; /* a list element */
char *file; /* the current filename to check */
Path *p; /* current path member */
- char *cp; /* index of first slash, if any */
+ char *cp; /* final component of the name */
Boolean hasSlash; /* true if 'name' contains a / */
struct stat stb; /* Buffer for stat, if necessary */
Hash_Entry *entry; /* Entry for mtimes table */
@@ -767,9 +767,14 @@ Dir_FindFile (char *name, Lst path)
continue;
}
if (*p1 == '\0' && p2 == cp - 1) {
- DEBUGF(DIR, ("must be here but isn't -- returing NULL\n"));
Lst_Close (path);
- return ((char *) NULL);
+ if (*cp == '\0' || ISDOT(cp) || ISDOTDOT(cp)) {
+ DEBUGF(DIR, ("returning %s\n", name));
+ return (estrdup(name));
+ } else {
+ DEBUGF(DIR, ("must be here but isn't -- returning NULL\n"));
+ return ((char *) NULL);
+ }
}
}
}
OpenPOWER on IntegriCloud