* fix b0rked GetOptions call
[pgp-tools.git] / gpgsigs / gpgsigs
index 38db0ec686b37ec134d90fe2c989d1594336d58c..7da3c1f1606f156c43a92241cd8bd9f79f8e05ef 100755 (executable)
@@ -59,9 +59,10 @@ EOF
 
 
 my ($fromcharset, $charset, $recv_keys);
+Getopt::Long::config('bundling');
 GetOptions(
-       f => \$fromcharset,
-       t => \$charset,
+       '-f=s' => \$fromcharset,
+       '-t=s' => \$charset,
        r => \$recv_keys,
        help => sub { usage(*STDOUT, 0); },
        version => sub { version(*STDOUT); exit 0;},
@@ -142,8 +143,8 @@ map { s/^0x//i; } @mykeys;
 if (!@mykeys || scalar @ARGV) {
        usage(*STDERR, 1);
 }
-if (!grep { /^([0-9A-F]{16,16}|[0-9A-F]{8,8})$/ } @mykeys) {
-       print STDERR "Invalid keyid given\n";
+foreach my $falsekey (grep { $_ !~ /^([0-9A-F]{16,16}|[0-9A-F]{8,8})$/ } @mykeys) {
+       print STDERR "Invalid keyid $falsekey given\n";
        usage(*STDERR, 1);
 }
 
@@ -182,9 +183,21 @@ while (<SIGS>) {
                $uid = myrecode($1);
                next;
        }
-       if ( m/^sig:(?:.*?:){3,3}([0-9A-F]{8})([0-9A-F]{8}):(?:.*?:){3,3}(.*):.*?:/ ) {
-               $sigs->{$key}->{$uid}->{$1.$2} = $3;
-               $sigs->{$key}->{$uid}->{$2} = $3;
+       if ( m/^sig:(?:.*?:){3,3}([0-9A-F]{8})([0-9A-F]{8}):(?:.*?:){5,5}(.*?):/ ) {
+               my $class = $3;
+               if ($class eq '10x') {
+                       $class = 'S';
+               } elsif ($class eq '11x') {
+                       $class = '1';
+               } elsif ($class eq '12x') {
+                       $class = '2';
+               } elsif ($class eq '13x') {
+                       $class = '3';
+               } else {
+                       $class = 's';
+               };
+               $sigs->{$key}->{$uid}->{$1.$2} = $class;
+               $sigs->{$key}->{$uid}->{$2} = $class;
                next;
        }
        if ( m/^uat:/ ) {
@@ -229,7 +242,7 @@ sub print_tag
        }
        my $r = '(';
        foreach my $mykey (@mykeys) {
-               $r .= defined $sigs->{$key}->{$uid}->{$mykey} ? "S" : " ";
+               $r .= defined $sigs->{$key}->{$uid}->{$mykey} ? $sigs->{$key}->{$uid}->{$mykey} : ' ';
        }
        $r .= ')';
        return $r;