view keymap/keymap.pl @ 1742:368a7e7cc695

Fix bug 2917164. g_utf8_collate_key_for_filename() don't give sort order one may expect. Using g_utf8_collate_key() make things closer to many other programs output (ie. ls and gqview). Thanks to Michael pointing this out.
author zas_
date Sat, 19 Dec 2009 12:53:20 +0000
parents 113d8329cbd6
children
line wrap: on
line source

#!/usr/bin/perl
use strict;

my %funcs;

open(ACCELS, "<$ENV{HOME}/.geeqie/accels") or die "No accel file";
while (<ACCELS>)
	{
	if (/gtk_accel_path "([^"]*)" *"([^"]*)"/) 
		{
		my $name = $1;
		my $key = $2;
		$name =~ s/.*\///;
		$key =~ s/</&lt;/g;
		$key =~ s/>/&gt;/g;
		$funcs{uc($key)} = $name;
		}
		
	}
close(ACCELS);

open(ACCELS, "<hardcoded_keys") or die "No hardcoded_keys file";
while (<ACCELS>)
	{
	if (/"([^"]*)" *"([^"]*)"/) 
		{
		my $name = $1;
		my $key = $2;
		$name =~ s/.*\///;
		$key =~ s/</&lt;/g;
		$key =~ s/>/&gt;/g;
		$funcs{uc($key)} = $name;
		}
		
	}
close(ACCELS);

open(IN, "<keymap_template.svg") or die "No svg file";
open(OUT, ">keymap.svg") or die "Can't write output file";

while (<IN>)
	{
	if (/>key:([^<]*)</) 
		{
		my $key = uc($1);
		my $name = $funcs{$key};
		s/>key:([^<]*)</>$name</;
		delete $funcs{$key};
		}
	print OUT;
	}

close(IN);
close(OUT);

for my $key (keys %funcs)
	{
	if ($key)
		{
		print STDERR "not found: '$key'\n";
		}
	}