my $line = 0;
while (<RCF>) {
chomp;
- ++$line;
if (/^; \(gtk_accel_path "<([A-Za-z]+)>([^"]+)" ([^\)]+)\)$/) {
- my %data = ('key' => $3, 'enabled' => FALSE);
+ my %data = ('key' => $3, 'enabled' => FALSE, 'line' => $line);
$groups{$1}{$2} = \%data;
# say "group -> $1 | path -> $2 | key -> $3";
- }
- if (/^\(gtk_accel_path "<([A-Za-z]+)>([^"]+)" ([^\)]+)\)$/) {
- my %data = ('key' => $3, 'enabled' => TRUE);
+ } elsif (/^\(gtk_accel_path "<([A-Za-z]+)>([^"]+)" ([^\)]+)\)$/) {
+ my %data = ('key' => $3, 'enabled' => TRUE, 'line' => $line);
$groups{$1}{$2} = \%data;
# say "group -> $1 | path -> $2 | key -> $3";
}
+ ++$line;
}
close (RCF);
return \%groups;
sub save_menurc {
my ($rc, $groups) = @_;
- open (RCF, '>:utf8', $rc)
- or die _("Error: opening '{file}' for writing", file => $rc) . ": $!\n";
- say RCF '; claws-mail GtkAccelMap rc-file -*- scheme -*-';
- say RCF '; this file is an automated accelerator map dump';
- say RCF ';';
- foreach my $gkey (sort keys %$groups) {
+ my @lines = ();
+ foreach my $gkey (keys %$groups) {
my $group = $groups->{$gkey};
- foreach my $akey (sort keys %$group) {
+ foreach my $akey (keys %$group) {
my $data = $group->{$akey};
my $key = $data->{'key'};
- print RCF '; ' unless ($data->{'enabled'});
- say RCF '(gtk_accel_path "<'
+ my $line = $data->{'line'};
+ $lines[$line] = ($data->{'enabled'})? '': '; ';
+ $lines[$line] .= '(gtk_accel_path "<'
. $gkey . '>' . $akey . '" ' . $key . ')';
}
}
+ open (RCF, '>:utf8', $rc)
+ or die _("Error: opening '{file}' for writing", file => $rc) . ": $!\n";
+ say RCF '; claws-mail GtkAccelMap rc-file -*- scheme -*-';
+ say RCF '; this file is an automated accelerator map dump';
+ say RCF ';';
+ foreach (@lines) { say RCF $_ if $_ }
close (RCF);
}