/*
goredo -- djb's redo implementation on pure Go
-Copyright (C) 2020-2022 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2020-2023 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
}
func ifchange(tgts []string, forced, traced bool) (bool, error) {
+ // only unique elements
+ m := make(map[string]struct{})
+ for _, t := range tgts {
+ m[t] = struct{}{}
+ }
+ tgts = tgts[:0]
+ for t := range m {
+ tgts = append(tgts, t)
+ }
+ m = nil
+
jsInit()
if !IsTopRedo {
defer jsAcquire("ifchange exiting")