X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=do.go;h=c4a569665b51f029aa9161d2cf03238fa6ce20e0;hb=bf96757828d2ae663f5f54147c0e229f74fc9357;hp=1846414f7e979f14a7f1b725bca9da31e4b156c0;hpb=edb601644735972fac3efcdc27849b5b9b1f5fb7;p=goredo.git diff --git a/do.go b/do.go index 1846414..c4a5696 100644 --- a/do.go +++ b/do.go @@ -1,5 +1,5 @@ /* -goredo -- redo implementation on pure Go +goredo -- djb's redo implementation on pure Go Copyright (C) 2020-2021 Sergey Matveev This program is free software: you can redistribute it and/or modify @@ -60,7 +60,7 @@ func findDo(fdDep *os.File, cwd, tgt string) (string, int, error) { doFile = strings.Join(append( []string{"default"}, append(exts, "do")..., ), ".") - if len(levels) > 0 || doFile != doFileOrig { + if len(levels) > 0 || (doFile != doFileOrig && doFile != tgt) { exists, err = existsDo(fdDep, cwd, path.Join(updir, doFile)) if err != nil { return "", 0, err @@ -72,7 +72,7 @@ func findDo(fdDep *os.File, cwd, tgt string) (string, int, error) { exts = exts[1:] } doFile = "default.do" - if len(levels) > 0 || doFile != doFileOrig { + if len(levels) > 0 || (doFile != doFileOrig && doFile != tgt) { exists, err = existsDo(fdDep, cwd, path.Join(updir, doFile)) if err != nil { return "", 0, err @@ -82,7 +82,7 @@ func findDo(fdDep *os.File, cwd, tgt string) (string, int, error) { } } levels = append(levels, "..") - dirAbs, err := filepath.Abs(updir) + dirAbs, err := filepath.Abs(path.Join(cwd, updir)) if err != nil { panic(err) }