/*
-goredo -- redo implementation on pure Go
-Copyright (C) 2020-2021 Sergey Matveev <stargrave@stargrave.org>
+goredo -- djb's redo implementation on pure Go
+Copyright (C) 2020-2022 Sergey Matveev <stargrave@stargrave.org>
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
package main
import (
+ "errors"
"fmt"
"io"
"os"
for {
m, err := r.NextMap()
if err != nil {
- if err == io.EOF {
+ if errors.Is(err, io.EOF) {
break
}
return nil, err
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))