minimal/do whichdo: should print ../default.do if ../$1.do exists.
It would be incorrect to print ../$1.do (we only use $1.do in the *current* directly, not prefix dirs; we only use default*.do in those). However, when we found ../default.do, we forgot to print it, because of a silly logic error.
This commit is contained in:
parent
7b8fda5e18
commit
a14aa4c86d
5 changed files with 21 additions and 2 deletions
|
|
@ -208,10 +208,11 @@ _find_dofiles()
|
|||
_dirsplit "$dofile"
|
||||
dodir=$_dirsplit_dir
|
||||
dofile=$_dirsplit_base
|
||||
[ -n "$dodir" ] && dodir=${dodir%/}/
|
||||
[ -e "$dodir$dofile" ] && return 0
|
||||
for i in $(seq 100); do
|
||||
[ -n "$dodir" ] && dodir=${dodir%/}/
|
||||
#echo "_find_dofiles: '$dodir' '$dofile'" >&2
|
||||
[ -e "$dodir$dofile" ] && return 0
|
||||
_find_dofiles_pwd "$dodir" "$dofile" && return 0
|
||||
newdir=$(_normpath "${dodir}..")
|
||||
[ "$newdir" = "$dodir" ] && break
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
redo exists nonexists
|
||||
redo exists nonexists defaults
|
||||
|
|
|
|||
16
t/260-whichdo/defaults.do
Normal file
16
t/260-whichdo/defaults.do
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
exec >&2
|
||||
|
||||
a=$(cd fakesub2 && redo-whichdo d/snork)
|
||||
# if sh doesn't abort after the above, then it found a .do file as expected
|
||||
|
||||
b=$(cat <<EOF
|
||||
d/snork.do
|
||||
d/default.do
|
||||
default.do
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ "$a" != "$b" ]; then
|
||||
printf 'redo-whichdo mismatch.\n\ngot:\n%s\n\nexpected:\n%s\n' "$a" "$b"
|
||||
exit 11
|
||||
fi
|
||||
1
t/260-whichdo/fakesub2/default.do
Normal file
1
t/260-whichdo/fakesub2/default.do
Normal file
|
|
@ -0,0 +1 @@
|
|||
:
|
||||
1
t/260-whichdo/fakesub2/snork.do
Normal file
1
t/260-whichdo/fakesub2/snork.do
Normal file
|
|
@ -0,0 +1 @@
|
|||
:
|
||||
Loading…
Add table
Add a link
Reference in a new issue