summaryrefslogtreecommitdiffstats
path: root/kmail/kmail-3.4.1-update-status-filters.pl
diff options
context:
space:
mode:
Diffstat (limited to 'kmail/kmail-3.4.1-update-status-filters.pl')
-rw-r--r--kmail/kmail-3.4.1-update-status-filters.pl42
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";
+ }
+ }
+ }
+}