diff --git a/minimal/do b/minimal/do index 61889d9..3091fae 100755 --- a/minimal/do +++ b/minimal/do @@ -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 diff --git a/t/260-whichdo/all.do b/t/260-whichdo/all.do index 1beaa06..d4d93b6 100644 --- a/t/260-whichdo/all.do +++ b/t/260-whichdo/all.do @@ -1 +1 @@ -redo exists nonexists +redo exists nonexists defaults diff --git a/t/260-whichdo/defaults.do b/t/260-whichdo/defaults.do new file mode 100644 index 0000000..0fe3214 --- /dev/null +++ b/t/260-whichdo/defaults.do @@ -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 <