my %helplong;
my %arglong;
my %redirlong;
+my %protolong;
# get the long name version, return the man page string
sub manpageify {
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>) {
my $long;
my $help;
my $arg;
+ my $protocols;
while(<F>) {
if(/^Short: (.)/i) {
$short=$1;
elsif(/^Arg: (.*)/i) {
$arg=$1;
}
+ elsif(/^Protocols: (.*)/i) {
+ $protocols=$1;
+ }
elsif(/^---/) {
last;
}
$optlong{$long}=$short;
$helplong{$long}=$help;
$arglong{$long}=$arg;
+ $protolong{$long}=$protocols;
}
}
}
}
+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 {
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";
}
#------------------------------------------------------------------------