1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 16:18:48 -05:00

gen: support 'protos'

and warn on unrecognized lines
This commit is contained in:
Daniel Stenberg 2016-11-16 14:20:13 +01:00
parent 5781e3653e
commit c3c1e96185

View File

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