From 806c7273b79a99e55a1c7dc923137efa8998c63d Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 12 Dec 2025 16:20:02 +0300 Subject: [PATCH] Properly search for .do during source file determination --- do.go | 3 +++ doc/news.texi | 7 ++++++ ood.go | 6 ++---- t/apenwarr-120-defaults-flat.t | 1 - t/apenwarr/120-defaults-flat/.gitignore | 6 ------ t/apenwarr/120-defaults-flat/all.do | 1 - t/apenwarr/120-defaults-flat/c.c.c.b.b.a | 1 - t/apenwarr/120-defaults-flat/c.do | 3 --- t/apenwarr/120-defaults-flat/clean.do | 2 -- t/apenwarr/120-defaults-flat/default.b.do | 10 --------- t/apenwarr/120-defaults-flat/default.c.c.do | 4 ---- t/apenwarr/120-defaults-flat/default.c.do | 4 ---- t/apenwarr/120-defaults-flat/default.do | 4 ---- t/goredo-rel-ifcreate.t | 24 ++++++++++----------- usage.go | 2 +- 15 files changed, 25 insertions(+), 53 deletions(-) delete mode 120000 t/apenwarr-120-defaults-flat.t delete mode 100644 t/apenwarr/120-defaults-flat/.gitignore delete mode 100644 t/apenwarr/120-defaults-flat/all.do delete mode 100644 t/apenwarr/120-defaults-flat/c.c.c.b.b.a delete mode 100644 t/apenwarr/120-defaults-flat/c.do delete mode 100644 t/apenwarr/120-defaults-flat/clean.do delete mode 100644 t/apenwarr/120-defaults-flat/default.b.do delete mode 100644 t/apenwarr/120-defaults-flat/default.c.c.do delete mode 100644 t/apenwarr/120-defaults-flat/default.c.do delete mode 100644 t/apenwarr/120-defaults-flat/default.do diff --git a/do.go b/do.go index 0d078ae..a05dea8 100644 --- a/do.go +++ b/do.go @@ -34,6 +34,9 @@ func existsDo(w io.Writer, fdDepName, cwd, pth string) (bool, error) { if FileExists(path.Join(cwd, pth)) { return true, nil } + if w == nil { + return false, nil + } return false, ifcreate(w, fdDepName, pth) } diff --git a/doc/news.texi b/doc/news.texi index 726f185..f01a56a 100644 --- a/doc/news.texi +++ b/doc/news.texi @@ -2,6 +2,13 @@ @cindex news @unnumbered News +@anchor{Release 2_7_0} +@section Release 2.7.0 +@itemize +@item + Proper @file{.do} file searching during source file determination. +@end itemize + @anchor{Release 2_6_5} @section Release 2.6.5 @itemize diff --git a/ood.go b/ood.go index cecec68..0e00ba9 100644 --- a/ood.go +++ b/ood.go @@ -74,10 +74,8 @@ func isSrc(tgt *Tgt) bool { if !FileExists(tgt.a) { return false } - if FileExists(tgt.a + ".do") { - return false - } - if FileExists(tgt.dep) { + tgtH, tgtT := pathSplit(tgt.a) + if do, _, _ := findDo(nil, tgt.a, tgtH, tgtT); do != "" { return false } return true diff --git a/t/apenwarr-120-defaults-flat.t b/t/apenwarr-120-defaults-flat.t deleted file mode 120000 index 5f1044b..0000000 --- a/t/apenwarr-120-defaults-flat.t +++ /dev/null @@ -1 +0,0 @@ -apenwarr/wrapper.rc \ No newline at end of file diff --git a/t/apenwarr/120-defaults-flat/.gitignore b/t/apenwarr/120-defaults-flat/.gitignore deleted file mode 100644 index 580e8c9..0000000 --- a/t/apenwarr/120-defaults-flat/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -c -c.c -c.c.c -c.c.c.b -c.c.c.b.b -d diff --git a/t/apenwarr/120-defaults-flat/all.do b/t/apenwarr/120-defaults-flat/all.do deleted file mode 100644 index f5753c3..0000000 --- a/t/apenwarr/120-defaults-flat/all.do +++ /dev/null @@ -1 +0,0 @@ -redo-ifchange c d diff --git a/t/apenwarr/120-defaults-flat/c.c.c.b.b.a b/t/apenwarr/120-defaults-flat/c.c.c.b.b.a deleted file mode 100644 index 4768c08..0000000 --- a/t/apenwarr/120-defaults-flat/c.c.c.b.b.a +++ /dev/null @@ -1 +0,0 @@ -chicken diff --git a/t/apenwarr/120-defaults-flat/c.do b/t/apenwarr/120-defaults-flat/c.do deleted file mode 100644 index 3d6bd11..0000000 --- a/t/apenwarr/120-defaults-flat/c.do +++ /dev/null @@ -1,3 +0,0 @@ -redo-ifchange $1.c -echo c.do -cat $1.c diff --git a/t/apenwarr/120-defaults-flat/clean.do b/t/apenwarr/120-defaults-flat/clean.do deleted file mode 100644 index 37c32b0..0000000 --- a/t/apenwarr/120-defaults-flat/clean.do +++ /dev/null @@ -1,2 +0,0 @@ -rm -f c c.c c.c.c c.c.c.b c.c.c.b.b d \ - *~ .*~ diff --git a/t/apenwarr/120-defaults-flat/default.b.do b/t/apenwarr/120-defaults-flat/default.b.do deleted file mode 100644 index b8c9b1e..0000000 --- a/t/apenwarr/120-defaults-flat/default.b.do +++ /dev/null @@ -1,10 +0,0 @@ -if [ -e "$1.a" -o -e "default${1#$2}.a" ]; then - redo-ifchange "$1.a" - echo a-to-b - cat "$1.a" -else - redo-ifchange "$1.b" - echo b-to-b - cat "$1.b" -fi -../sleep 1.1 diff --git a/t/apenwarr/120-defaults-flat/default.c.c.do b/t/apenwarr/120-defaults-flat/default.c.c.do deleted file mode 100644 index 12798b4..0000000 --- a/t/apenwarr/120-defaults-flat/default.c.c.do +++ /dev/null @@ -1,4 +0,0 @@ -redo-ifchange $1.b -echo b-to-cc -cat $1.b -../sleep 1.2 diff --git a/t/apenwarr/120-defaults-flat/default.c.do b/t/apenwarr/120-defaults-flat/default.c.do deleted file mode 100644 index 9fc8bd7..0000000 --- a/t/apenwarr/120-defaults-flat/default.c.do +++ /dev/null @@ -1,4 +0,0 @@ -redo-ifchange $1.c -echo c-to-c -cat $1.c -../sleep 1.3 diff --git a/t/apenwarr/120-defaults-flat/default.do b/t/apenwarr/120-defaults-flat/default.do deleted file mode 100644 index 44aecf7..0000000 --- a/t/apenwarr/120-defaults-flat/default.do +++ /dev/null @@ -1,4 +0,0 @@ -redo-ifchange c -echo default-rule -cat c -../sleep 1.4 diff --git a/t/goredo-rel-ifcreate.t b/t/goredo-rel-ifcreate.t index 74bc4a5..42f57b0 100755 --- a/t/goredo-rel-ifcreate.t +++ b/t/goredo-rel-ifcreate.t @@ -4,24 +4,24 @@ test_description="Proper relative to DirPrefix ifcreate paths" . $SHARNESS_TEST_SRCDIR/sharness.sh export REDO_TOP_DIR="`pwd`" REDO_NO_PROGRESS=1 -mkdir -p a/b/c a/c -echo whatever >a/b/c/dep -cat >a/b/default.do <a/b/dep +cat >a/b/c/default.do <