260607.1.2 · ae25a78b0b16394dfdf817aa5a319e4b81e51e4b
Fix inclusion of excluded type with multiple filters
reading declarations
@@ -124,8 +124,9 @@ sub _uninvert_filter { for ( my $i = 0; $i < @{ $opt->{filters} }; $i++ ) { my $opt_filter = @{ $opt->{filters} }[$i]; - # XXX Do a real list comparison? This just checks string equivalence.- if ( $opt_filter->is_inverted() && "$opt_filter->{filter}" eq "@filters" ) {+ if ( $opt_filter->is_inverted()+ && grep { $_ == $opt_filter->{filter} } @filters )+ { splice @{ $opt->{filters} }, $i, 1; $i--; }
@@ -18,3 +18,27 @@ args: >- -t cmake -f t/swamp stdout: | t/swamp/CMakeLists.txt++---+name: --type-set, --type-add, and exclude+args: >-+ --ignore-ack-defaults+ --type-set=cmake:is:CMakeLists.txt+ --type-add=cmake:ext:cmake+ --type=nocmake+ -k -f t/swamp+exitcode: 1+stderr: ''+stdout: ''++---+name: --type-set, --type-add, and override exclusion+args: >-+ --ignore-ack-defaults+ --type-set=cmake:is:CMakeLists.txt+ --type-add=cmake:ext:cmake+ --type=nocmake+ -t cmake -f t/swamp+stdout: |+ t/swamp/CMakeLists.txt+ t/swamp/stuff.cmake