+ 'compressors=s@' => sub {
+ die "$0: can't parse compressors string `$_[1]'\n" unless $_[1] =~ /^[+=-]?\w+(?:[+=-]\w+)*$/;
+ while ($_[1] =~ /(?<act>[+=-])?(?<name>\w+)\b/g) {
+ die "$0: Unknown compressor $+{name}"
+ unless $context->{compressors}{$+{name}};
+ if (not defined $+{act} or $+{act} eq '=') {
+ $_->{use} = 0
+ for values %{$context->{compressors}};
+ $context->{compressors}{$+{name}}{use}++;
+ }
+ elsif ($+{act} eq '+') { $context->{compressors}{$+{name}}{use}++; }
+ elsif ($+{act} eq '-') { $context->{compressors}{$+{name}}{use}--; }
+ }
+ },