X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=dot.go;h=8f5673108de3450848bdfad3370ed26958a1488b;hb=b69d2ab11a495413ecc16a9bfea0d105b030c606;hp=39c90194f8bf1bdf63394e528a9fa015d27f2f1a;hpb=cd29a67e26ef05f0ffadd83448f09886edef4111;p=goredo.git diff --git a/dot.go b/dot.go index 39c9019..8f56731 100644 --- a/dot.go +++ b/dot.go @@ -1,6 +1,6 @@ /* goredo -- djb's redo implementation on pure Go -Copyright (C) 2020-2021 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 @@ -20,6 +20,7 @@ along with this program. If not, see . package main import ( + "errors" "fmt" "io" "os" @@ -46,7 +47,7 @@ func dotWalker(data map[DotNodes]bool, tgtOrig string) (map[DotNodes]bool, error for { m, err := r.NextMap() if err != nil { - if err == io.EOF { + if errors.Is(err, io.EOF) { break } return nil, err @@ -56,8 +57,11 @@ func dotWalker(data map[DotNodes]bool, tgtOrig string) (map[DotNodes]bool, error data[DotNodes{tgtOrig, cwdMustRel(cwd, m["Target"])}] = true case DepTypeIfchange: dep = m["Target"] + if dep == tgt { + continue + } data[DotNodes{tgtOrig, cwdMustRel(cwd, dep)}] = false - if isSrc(cwd, dep) || dep == tgt { + if isSrc(cwd, dep) { continue } data, err = dotWalker(data, cwdMustRel(cwd, dep))