if FileExists(path.Join(cwd, pth)) {
return true, nil
}
+ if w == nil {
+ return false, nil
+ }
return false, ifcreate(w, fdDepName, pth)
}
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
. $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 <<EOF
+mkdir -p a/b/c/d a/e
+echo whatever >a/b/dep
+cat >a/b/c/default.do <<EOF
echo called \$1
-redo-ifcreate ../c/dep
-redo-ifchange c/dep
+redo-ifcreate ../../e/dep
+redo-ifchange ../dep
EOF
-redo-ifchange a/b/c/file
-stat1=`stat a/b/c/file`
+redo-ifchange a/b/c/d/file
+stat1=`stat a/b/c/d/file`
sleep 1 # stat does not output fractions of seconds
-redo-ifchange a/b/c/file
-stat2=`stat a/b/c/file`
+redo-ifchange a/b/c/d/file
+stat2=`stat a/b/c/d/file`
test_expect_success "file stays same" '[ "$stat1" = "$stat2" ]'
-touch a/c/dep
-redo-ifchange a/b/c/file
-stat3=`stat a/b/c/file`
+touch a/e/dep
+redo-ifchange a/b/c/d/file
+stat3=`stat a/b/c/d/file`
test_expect_success "ifcreate target works" '[ "$stat1" != "$stat3" ]'