diff --git a/CHANGELOG.md b/CHANGELOG.md index 780a159..a9157fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - Pre-flight errors are now displayed also after the usage text to prevent the need to scroll through backlog. - Cancelling via SIGINT (Ctrl-C) is now more responsive - Fixed issue where a thread would hang due to TCP errors + - Fixed the issue where the option -ac was overwriting existing filters. Now auto-calibration will add them where needed. - The `-w` flag now accepts comma delimited values in the form of `file1:W1,file2:W2`. - v1.1.0 diff --git a/pkg/filter/filter.go b/pkg/filter/filter.go index e4570aa..8f266b4 100644 --- a/pkg/filter/filter.go +++ b/pkg/filter/filter.go @@ -30,11 +30,21 @@ func NewFilterByName(name string, value string) (ffuf.FilterProvider, error) { //AddFilter adds a new filter to Config func AddFilter(conf *ffuf.Config, name string, option string) error { - newf, err := NewFilterByName(name, option) - if err == nil { - conf.Filters[name] = newf - } - return err + newf, err := NewFilterByName(name, option) + if err == nil { + // valid filter create or append + if conf.Filters[name] == nil { + conf.Filters[name] = newf + } else { + currentfilter := conf.Filters[name].Repr() + newoption := strings.TrimSpace(strings.Split(currentfilter, ":")[1]) + "," + option + newerf, err := NewFilterByName(name, newoption) + if err == nil { + conf.Filters[name] = newerf + } + } + } + return err } //AddMatcher adds a new matcher to Config