Add:Script:Script to check itemgra definitions
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 25 Oct 2009 12:43:09 +0000 (12:43 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 25 Oct 2009 12:43:09 +0000 (12:43 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@2687 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/script/itemgra.pl [new file with mode: 0755]

diff --git a/navit/navit/script/itemgra.pl b/navit/navit/script/itemgra.pl
new file mode 100755 (executable)
index 0000000..bbe02b0
--- /dev/null
@@ -0,0 +1,57 @@
+#! /usr/bin/perl
+my $layout;
+my $type,$types;
+my $order,$orders,@orders;
+my @layouts;
+open(IN,"../navit.xml");
+while (<IN>) {
+       if (/<layout name="([^"]*)"/) {
+               $layout=$1;
+               push(@layouts,$layout);
+       }
+       if (/<itemgra item_types="([^"]*)"/) {
+               $types=$1;
+               if (/order="([^"]*)"/) {
+                       $order=$1;
+                       foreach $type (split(",",$types)) {
+                               $result->{$type}->{$layout}->{$order}=1;
+                       }
+               }
+       }
+}
+close(IN);
+open(IN,"../item_def.h");
+while (<IN>) {
+       if (/^ITEM2\([^,]*,(.*)\)/) {
+               $type=$1;
+               $result->{$type}->{"none"}=1;
+       }
+       if (/^ITEM\((.*)\)/) {
+               $type=$1;
+               $result->{$type}->{"none"}=1;
+       }
+}
+close(IN);
+my $typefmt="%-30s";
+my $layoutfmt="%10s";
+printf($typefmt,"");
+foreach $layout (@layouts) {
+       printf($layoutfmt,$layout);
+}
+printf("\n");
+foreach $type (sort keys %$result) {
+       $marker="";
+       if (!$result->{$type}->{"none"}) {
+               $marker="#";
+       }
+       printf($typefmt,$marker.$type);
+       foreach $layout (@layouts) {
+               @orders=sort keys %{$result->{$type}->{$layout}};
+               $order="";
+               if ($#orders >= 0) {
+                       $order="*";
+               }
+               printf($layoutfmt,$order);
+       }
+       printf("\n");
+}