]> granicus.if.org Git - curl/commitdiff
gen: support 'protos'
authorDaniel Stenberg <daniel@haxx.se>
Wed, 16 Nov 2016 13:20:13 +0000 (14:20 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 16 Nov 2016 14:13:17 +0000 (15:13 +0100)
and warn on unrecognized lines

docs/cmdline-opts/gen.pl

index e39f380a331937c2e8cab4ec4e5df774adfe1f78..cd9e3cf58f88bdb3d51f4ffe074c6bac8559f8f3 100755 (executable)
@@ -11,6 +11,7 @@ my %optlong;
 my %helplong;
 my %arglong;
 my %redirlong;
+my %protolong;
 
 # get the long name version, return the man page string
 sub manpageify {
@@ -98,42 +99,52 @@ sub single {
     my $seealso;
     my $magic; # cmdline special option
     while(<F>) {
-        if(/^Short: (.)/i) {
+        if(/^Short: *(.)/i) {
             $short=$1;
         }
-        elsif(/^Long: (.*)/i) {
+        elsif(/^Long: *(.*)/i) {
             $long=$1;
         }
-        elsif(/^Added: (.*)/i) {
+        elsif(/^Added: *(.*)/i) {
             $added=$1;
         }
-        elsif(/^Tags: (.*)/i) {
+        elsif(/^Tags: *(.*)/i) {
             $tags=$1;
         }
-        elsif(/^Arg: (.*)/i) {
+        elsif(/^Arg: *(.*)/i) {
             $arg=$1;
         }
-        elsif(/^Magic: (.*)/i) {
+        elsif(/^Magic: *(.*)/i) {
             $magic=$1;
         }
-        elsif(/^Mutexed: (.*)/i) {
+        elsif(/^Mutexed: *(.*)/i) {
             $mutexed=$1;
         }
-        elsif(/^Protocols: (.*)/i) {
+        elsif(/^Protocols: *(.*)/i) {
             $protocols=$1;
         }
-        elsif(/^See-also: (.*)/i) {
+        elsif(/^See-also: *(.*)/i) {
             $seealso=$1;
         }
-        elsif(/^Requires: (.*)/i) {
+        elsif(/^Requires: *(.*)/i) {
             $requires=$1;
         }
-        elsif(/^Redirect: (.*)/i) {
+        elsif(/^Redirect: *(.*)/i) {
             $redirect=$1;
         }
+        elsif(/^Help: *(.*)/i) {
+            ;
+        }
         elsif(/^---/) {
+            if(!$long) {
+                print STDERR "WARN: no 'Long:' in $f\n";
+            }
             last;
         }
+        else {
+            chomp;
+            print STDERR "WARN: unrecognized line in $f, ignoring:\n:'$_';"
+        }
     }
     my @dest;
     while(<F>) {
@@ -222,6 +233,7 @@ sub getshortlong {
     my $long;
     my $help;
     my $arg;
+    my $protocols;
     while(<F>) {
         if(/^Short: (.)/i) {
             $short=$1;
@@ -235,6 +247,9 @@ sub getshortlong {
         elsif(/^Arg: (.*)/i) {
             $arg=$1;
         }
+        elsif(/^Protocols: (.*)/i) {
+            $protocols=$1;
+        }
         elsif(/^---/) {
             last;
         }
@@ -247,6 +262,7 @@ sub getshortlong {
         $optlong{$long}=$short;
         $helplong{$long}=$help;
         $arglong{$long}=$arg;
+        $protolong{$long}=$protocols;
     }
 }
 
@@ -311,6 +327,19 @@ sub showonly {
     }
 }
 
+sub showprotocols {
+    my %prots;
+    foreach my $f (keys %optlong) {
+        my @p = split(/ /, $protolong{$f});
+        for my $p (@p) {
+            $prots{$p}++;
+        }
+    }
+    for(sort keys %prots) {
+        printf "$_ (%d options)\n", $prots{$_};
+    }
+}
+
 sub getargs {
     my $f;
     do {
@@ -327,9 +356,13 @@ sub getargs {
             showonly(shift @ARGV);
             return;
         }
+        elsif($f eq "protos") {
+            showprotocols();
+            return;
+        }
     } while($f);
 
-    print "Usage: gen.pl <mainpage/listhelp/single FILE>\n";
+    print "Usage: gen.pl <mainpage/listhelp/single FILE/protos>\n";
 }
 
 #------------------------------------------------------------------------