diff options
Diffstat (limited to 'kmail/kmail-3.4.1-update-status-filters.pl')
-rw-r--r-- | kmail/kmail-3.4.1-update-status-filters.pl | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/kmail/kmail-3.4.1-update-status-filters.pl b/kmail/kmail-3.4.1-update-status-filters.pl new file mode 100644 index 000000000..735daf774 --- /dev/null +++ b/kmail/kmail-3.4.1-update-status-filters.pl @@ -0,0 +1,42 @@ +#!/usr/bin/perl -w + +use strict; + +# This script converts lower case status filter rules to upper case. + +# read the whole config file +my $currentGroup = ""; +my %configFile; +while ( <> ) { + chomp; + next if ( /^$/ ); # skip empty lines + next if ( /^\#/ ); # skip comments + if ( /^\[/ ) { # group begin + $currentGroup = $_; + next; + } elsif ( $currentGroup ne "" ) { # normal entry + my ($key,$value) = split /=/; + $configFile{$currentGroup}{$key}=$value; + } +} + +# go through all filters and check for rules which are no longer valid +my @filterGroups = grep { /^\[Filter \#\d+\]/ } keys %configFile; +foreach my $filterGroup (@filterGroups) { + my $numRules = $configFile{$filterGroup}{'rules'}; + # go through all rules: + for ( my $i = 0; $i < $numRules; ++$i ) { + my $c = chr( ord("A") + $i ); + my $fieldKey = "field$c"; + my $field = $configFile{$filterGroup}{$fieldKey}; + if ( $field eq "<status>" ) { + my $contentsKey = "contents$c"; + my $contents = $configFile{$filterGroup}{$contentsKey}; + if ( $contents =~ /^[a-z]/ ) { + $contents = ucfirst( $contents ); + print "# DELETE $filterGroup$contentsKey\n"; + print "$filterGroup\n$contentsKey=$contents\n"; + } + } + } +} |