Module Name: src
Committed By: rillig
Date: Wed Jan 26 12:16:03 UTC 2022
Modified Files:
src/usr.bin/make: meta.c
Log Message:
make: clean up eat_dots for meta mode
No binary change.
To generate a diff of this commit:
cvs rdiff -u -r1.192 -r1.193 src/usr.bin/make/meta.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/meta.c
diff -u src/usr.bin/make/meta.c:1.192 src/usr.bin/make/meta.c:1.193
--- src/usr.bin/make/meta.c:1.192 Sat Jan 15 19:34:07 2022
+++ src/usr.bin/make/meta.c Wed Jan 26 12:16:03 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: meta.c,v 1.192 2022/01/15 19:34:07 rillig Exp $ */
+/* $NetBSD: meta.c,v 1.193 2022/01/26 12:16:03 rillig Exp $ */
/*
* Implement 'meta' mode.
@@ -205,31 +205,16 @@ filemon_read(FILE *mfp, int fd)
* we use this, to clean up ./ and ../
*/
static void
-eat_dots(char *buf, size_t bufsz, int dots)
+eat_dots(char *buf, size_t bufsz, const char *eat, size_t eatlen)
{
char *cp;
char *cp2;
- const char *eat;
- size_t eatlen;
-
- switch (dots) {
- case 1:
- eat = "/./";
- eatlen = 2;
- break;
- case 2:
- eat = "/../";
- eatlen = 3;
- break;
- default:
- return;
- }
do {
cp = strstr(buf, eat);
if (cp != NULL) {
cp2 = cp + eatlen;
- if (dots == 2 && cp > buf) {
+ if (eatlen == 3 && cp > buf) {
do {
cp--;
} while (cp > buf && *cp != '/');
@@ -284,8 +269,8 @@ meta_name(char *mname, size_t mnamelen,
} else {
snprintf(buf, sizeof buf, "%s/%s", cwd, tname);
}
- eat_dots(buf, sizeof buf, 1); /* ./ */
- eat_dots(buf, sizeof buf, 2); /* ../ */
+ eat_dots(buf, sizeof buf, "/./", 2);
+ eat_dots(buf, sizeof buf, "/../", 3);
tname = buf;
}
}