Enable parsing menurc
authorRicardo Mones <ricardo@mones.org>
Thu, 9 Mar 2017 23:11:57 +0000 (00:11 +0100)
committerRicardo Mones <ricardo@mones.org>
Thu, 9 Mar 2017 23:11:57 +0000 (00:11 +0100)
clawsker

index 9ecb797..5735635 100755 (executable)
--- a/clawsker
+++ b/clawsker
@@ -401,6 +401,10 @@ sub get_ac_rc_filename {
     return $CONFIGDIR . $ACCOUNTRC;
 }
 
+sub get_menurc_filename {
+    return $CONFIGDIR . "menurc";
+}
+
 sub set_rc_filename {
     my ($fullname) = @_;
     my @parts = split ('/', $fullname);
@@ -2362,6 +2366,31 @@ sub save_resource {
     close (RCF);
 }
 
+# specific loaders
+sub load_menurc {
+    my $rc = shift;
+    open (RCF, '<:encoding(utf8)', $rc)
+        or die _("Error: opening '{file}' for reading", file => $rc) . ": $!\n";
+    my %groups = ();
+    my $line = 0;
+    while (<RCF>) {
+        chomp;
+        ++$line;
+        if (/^; \(gtk_accel_path "<([A-Za-z]+)>([^"]+)" ([^\)]+)\)$/) {
+            my %data = ('key' => $3, 'enabled' => FALSE);
+            $groups{$1}{$2} = \%data;
+            # say "group -> $1 | path -> $2 | key -> $3";
+        }
+        if (/^\(gtk_accel_path "<([A-Za-z]+)>([^"]+)" ([^\)]+)\)$/) {
+            my %data = ('key' => $3, 'enabled' => TRUE);
+            $groups{$1}{$2} = \%data;
+            # say "group -> $1 | path -> $2 | key -> $3";
+        }
+    }
+    close (RCF);
+    return \%groups;
+}
+
 # load current status from disc
 sub load_rc_preferences {
     my $rc = get_rc_filename ();