Module Name: src Committed By: rillig Date: Wed Aug 12 03:05:57 UTC 2020
Modified Files: src/usr.bin/make: dir.c Log Message: make(1): make Dir_MakeFlags simpler This avoids unnecessary string allocations, especially for long lists. There is no unit test to cover this code. Since this is an obscure, undocumented part of make, I wasn't able to come up with a unit test. Therefore I resorted to write a separate testing program to verify the expected results. $ cat <<'EOF' >dir_test.c #include <stdio.h> #include "make.h" #include "dir.h" int main(int argc, char **argv) { int i; Lst lst; char *flags; lst = Lst_Init(FALSE); for (i = 1; i < argc; i++) Dir_AddDir(lst, argv[i]); flags = Dir_MakeFlags("-I", lst); printf("%s\n", flags); free(flags); return 0; } EOF # Needs some trivial patches to Makefile and main.c $ make PROG=dir_test EXTRA_SRCS=dir_test.c EXTRA_CPPFLAGS=-DNO_MAIN \ COPTS.main.c=-Wno-unused-function NOMAN=1 $ ./dir_test a b c $ mkdir a b c $ ./dir_test a b c -Ia -Ib -Ic $ rmdir a b c To generate a diff of this commit: cvs rdiff -u -r1.87 -r1.88 src/usr.bin/make/dir.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.