X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=ood.go;h=b46ea63ee8d6a076090c6255caf2c311795397a3;hb=b4eefdd675c9aef9ff8bd1089d031ee05733195b;hp=6e9043cc0762e0962a8c28df2c82d9238a56f5fb;hpb=b2b1d51fb5968a6cfa86bf17c9f7d1d0b8a1cb2a;p=goredo.git diff --git a/ood.go b/ood.go index 6e9043c..b46ea63 100644 --- a/ood.go +++ b/ood.go @@ -1,6 +1,6 @@ /* goredo -- djb's redo implementation on pure Go -Copyright (C) 2020-2022 Sergey Matveev +Copyright (C) 2020-2023 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -137,9 +137,15 @@ func isOOD(cwd, tgtOrig string, level int, seen map[string]struct{}) (bool, erro depPath := path.Join(cwd, RedoDir, tgt+DepSuffix) fdDep, err := os.Open(depPath) if err != nil { - tracef(CDebug, "ood: %s%s -> no dep: %s", indent, tgtOrig, depPath) - OODCache[path.Join(cwd, tgt)] = true - return true, nil + if isSrc(cwd, tgt) { + ood = false + tracef(CDebug, "ood: %s%s -> is source", indent, tgtOrig) + } else { + ood = true + tracef(CDebug, "ood: %s%s -> no dep: %s", indent, tgtOrig, depPath) + } + OODCache[path.Join(cwd, tgt)] = ood + return ood, nil } depInfo, err := depRead(fdDep) fdDep.Close()