pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc mk/subst.mk: omit ./ for sanely named files, quote fil...
details: https://anonhg.NetBSD.org/pkgsrc/rev/05c0aaf576ec
branches: trunk
changeset: 428041:05c0aaf576ec
user: rillig <rillig%pkgsrc.org@localhost>
date: Thu Apr 23 19:16:49 2020 +0000
description:
mk/subst.mk: omit ./ for sanely named files, quote filename patterns
diffstat:
mk/subst.mk | 6 ++--
regress/infra-unittests/subst.sh | 48 ++++++++++++++++++++--------------------
2 files changed, 27 insertions(+), 27 deletions(-)
diffs (179 lines):
diff -r 465ea6503524 -r 05c0aaf576ec mk/subst.mk
--- a/mk/subst.mk Thu Apr 23 19:15:01 2020 +0000
+++ b/mk/subst.mk Thu Apr 23 19:16:49 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: subst.mk,v 1.81 2020/04/23 19:06:09 rillig Exp $
+# $NetBSD: subst.mk,v 1.82 2020/04/23 19:16:49 rillig Exp $
#
# The subst framework replaces text in one or more files in the WRKSRC
# directory. Packages can define several ``classes'' of replacements.
@@ -167,7 +167,7 @@
set +f; \
changed=no; \
for file in $$pattern; do \
- case $$file in /*) ;; *) file="./$$file";; esac; \
+ case $$file in ([!A-Za-z0-9/]*) file="./$$file";; esac; \
tmpfile="$$file.subst.sav"; \
[ -d "$$file" ] && continue; \
[ -f "$$file" ] || { \
@@ -180,7 +180,7 @@
}; \
${SUBST_FILTER_CMD.${class}} < "$$file" > "$$tmpfile"; \
${CMP} -s "$$tmpfile" "$$file" && { \
- ${_SUBST_WARN.${class}} "Nothing changed in $$file."; \
+ ${_SUBST_WARN.${class}} "Nothing changed in \"$$file\"."; \
${RM} -f "$$tmpfile"; \
continue; \
}; \
diff -r 465ea6503524 -r 05c0aaf576ec regress/infra-unittests/subst.sh
--- a/regress/infra-unittests/subst.sh Thu Apr 23 19:15:01 2020 +0000
+++ b/regress/infra-unittests/subst.sh Thu Apr 23 19:16:49 2020 +0000
@@ -160,7 +160,7 @@
run_bmake "testcase.mk" > "$tmpdir/actual-output"
create_file_lines "expected-output" \
'=> Substituting "class" in pattern-*' \
- 'info: [subst.mk:class] Nothing changed in ./pattern-second.'
+ 'info: [subst.mk:class] Nothing changed in "pattern-second".'
assert_that "actual-output" --file-equals "expected-output"
assert_that "pattern-first" --file-contains-exactly "the first example"
@@ -192,7 +192,7 @@
create_file_lines "expected-output" \
'=> Substituting "class" in single' \
- 'info: [subst.mk:class] Nothing changed in ./single.'
+ 'info: [subst.mk:class] Nothing changed in "single".'
assert_that "actual-output" --file-equals "expected-output"
assert_that "single" --file-contains-exactly "already an example"
assert_that "$exitcode" --equals "0"
@@ -222,7 +222,7 @@
create_file_lines "expected-output" \
'=> Substituting "class" in single' \
- 'warning: [subst.mk:class] Nothing changed in ./single.' \
+ 'warning: [subst.mk:class] Nothing changed in "single".' \
'fail: [subst.mk:class] The filename pattern "single" has no effect.' \
'*** Error code 1' \
'' \
@@ -255,7 +255,7 @@
create_file_lines "expected-output" \
'=> Substituting "class" in nonexistent' \
- 'warning: [subst.mk:class] Ignoring non-existent file "./nonexistent".' \
+ 'warning: [subst.mk:class] Ignoring non-existent file "nonexistent".' \
'fail: [subst.mk:class] The filename pattern "nonexistent" has no effect.' \
'*** Error code 1' \
'' \
@@ -287,7 +287,7 @@
create_file_lines "expected-output" \
'=> Substituting "class" in nonexistent' \
- 'info: [subst.mk:class] Ignoring non-existent file "./nonexistent".'
+ 'info: [subst.mk:class] Ignoring non-existent file "nonexistent".'
assert_that "actual-output" --file-equals "expected-output"
assert_that "$exitcode" --equals "0"
@@ -340,9 +340,9 @@
create_file_lines "expected-output" \
'=> Substituting "class" in does not exist' \
- 'info: [subst.mk:class] Ignoring non-existent file "./does".' \
- 'info: [subst.mk:class] Ignoring non-existent file "./not".' \
- 'info: [subst.mk:class] Ignoring non-existent file "./exist".'
+ 'info: [subst.mk:class] Ignoring non-existent file "does".' \
+ 'info: [subst.mk:class] Ignoring non-existent file "not".' \
+ 'info: [subst.mk:class] Ignoring non-existent file "exist".'
assert_that "actual-output" --file-equals "expected-output"
assert_that "$exitcode" --equals "0"
@@ -369,9 +369,9 @@
create_file_lines "expected-output" \
'=> Substituting "class" in first second third' \
- 'info: [subst.mk:class] Nothing changed in ./first.' \
- 'info: [subst.mk:class] Nothing changed in ./second.' \
- 'info: [subst.mk:class] Nothing changed in ./third.'
+ 'info: [subst.mk:class] Nothing changed in "first".' \
+ 'info: [subst.mk:class] Nothing changed in "second".' \
+ 'info: [subst.mk:class] Nothing changed in "third".'
assert_that "actual-output" --file-equals "expected-output"
assert_that "$exitcode" --equals "0"
@@ -457,10 +457,10 @@
assert_that "stdout" --file-is-lines \
'=> Substituting "class" in *' \
- 'info: [subst.mk:class] Nothing changed in ./prepare-subst.mk.' \
- 'info: [subst.mk:class] Nothing changed in ./stderr.' \
- 'info: [subst.mk:class] Nothing changed in ./stdout.' \
- 'info: [subst.mk:class] Nothing changed in ./test.subr.main.mk.'
+ 'info: [subst.mk:class] Nothing changed in "prepare-subst.mk".' \
+ 'info: [subst.mk:class] Nothing changed in "stderr".' \
+ 'info: [subst.mk:class] Nothing changed in "stdout".' \
+ 'info: [subst.mk:class] Nothing changed in "test.subr.main.mk".'
assert_that "stderr" --file-is-empty
assert_that "$exitcode" --equals "0"
@@ -609,14 +609,14 @@
2> "$tmpdir/stderr" \
&& exitcode=0 || exitcode=$?
- awk '{ if (/^... \.\/.*/) { print $1 " " $2 " (filtered timestamp)" } else { print $0 } }' \
+ awk '{ if (/^(---|\+\+\+) /) { print $1 " " $2 " (filtered timestamp)" } else { print $0 } }' \
< "$tmpdir/stdout" > "$tmpdir/stdout-filtered"
assert_that "file" --file-is-lines "one" "II" "three"
assert_that "stdout-filtered" --file-is-lines \
"=> Substituting \"two\" in file" \
- "--- ./file (filtered timestamp)" \
- "+++ ./file.subst.sav (filtered timestamp)" \
+ "--- file (filtered timestamp)" \
+ "+++ file.subst.sav (filtered timestamp)" \
"@@ -1,3 +1,3 @@" \
" one" \
"-two" \
@@ -649,14 +649,14 @@
2> "$tmpdir/stderr" \
&& exitcode=0 || exitcode=$?
- awk '{ if (/^... \.\/.*/) { print $1 " " $2 " (filtered timestamp)" } else { print $0 } }' \
+ awk '{ if (/^(---|\+\+\+) /) { print $1 " " $2 " (filtered timestamp)" } else { print $0 } }' \
< "$tmpdir/stdout" > "$tmpdir/stdout-filtered"
assert_that "file" --file-is-lines "one" "II" "three"
assert_that "stdout-filtered" --file-is-lines \
"=> Substituting \"two\" in file" \
- "--- ./file (filtered timestamp)" \
- "+++ ./file.subst.sav (filtered timestamp)" \
+ "--- file (filtered timestamp)" \
+ "+++ file.subst.sav (filtered timestamp)" \
"@@ -1,3 +1,3 @@" \
" one" \
"-two" \
@@ -962,7 +962,7 @@
assert_that "out" --file-is-lines \
'=> Substituting "id" in file1 file2' \
- 'warning: [subst.mk:id] Nothing changed in ./file1.' \
+ 'warning: [subst.mk:id] Nothing changed in "file1".' \
'fail: [subst.mk:id] The filename pattern "file1" has no effect.' \
'*** Error code 1' \
'' \
@@ -1022,7 +1022,7 @@
assert_that "out" --file-is-lines \
'=> Substituting "id" in file' \
- 'warning: [subst.mk:id] Ignoring non-existent file "./file".' \
+ 'warning: [subst.mk:id] Ignoring non-existent file "file".' \
'fail: [subst.mk:id] The filename pattern "file" has no effect.' \
'*** Error code 1' \
'' \
@@ -1056,7 +1056,7 @@
assert_that "out" --file-is-lines \
'=> Substituting "id" in file' \
- 'warning: [subst.mk:id] Ignoring non-existent file "./file".' \
+ 'warning: [subst.mk:id] Ignoring non-existent file "file".' \
'fail: [subst.mk:id] The filename pattern "file" has no effect.' \
'*** Error code 1' \
'' \
Home |
Main Index |
Thread Index |
Old Index