From d8a3da12be085fbc92e3d4d4d084c328fc37485a Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Thu, 27 Nov 2014 16:21:54 +0100 Subject: [PATCH] let doxyparse output manpage generation issues [Backport from upstream commit 168ee09a4bf184947798c3ee3ac99b6651470d64, fixes the build with Perl 5.22.] Signed-off-by: Bernd Kuhls --- doc/doxyparse.pl | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/doc/doxyparse.pl b/doc/doxyparse.pl index 96a1732..a09b2e8 100755 --- a/doc/doxyparse.pl +++ b/doc/doxyparse.pl @@ -57,10 +57,15 @@ This manpage was automaticly generated from the ldns source code by use of Doxygen and some perl. "; -getopts("m:",\%options); +getopts("em:",\%options); # if -m manpage file is given process that file # parse the file which tells us what manpages go together my $functions, $see_also; +my $i = -1; +my $report_errors = defined $options{'e'}; +my $errors = 0; +my %unique; + if (defined $options{'m'}) { # process open(MAN, "<$options{'m'}") or die "Cannot open $options{'m'}"; @@ -68,18 +73,35 @@ if (defined $options{'m'}) { # func1, func2, .. | see_also1, see_also2, ... while() { chomp; + $i += 1; if (/^#/) { next; } if (/^$/) { next; } - ($functions, $see_also) = split /[\t ]*\|[\t ]*/, $_; - #print "{$functions}\n"; - #print "{$see_also}\n"; + my @parts = split /[\t ]*\|[\t ]*/, $_; + $functions = shift @parts; + $see_also = join ', ', @parts; + print "{$functions}\n"; + print "{$see_also}\n"; my @funcs = split /[\t ]*,[\t ]*/, $functions; my @also = split /[\t ]*,[\t ]*/, $see_also; $manpages{$funcs[0]} = \@funcs; $see_also{$funcs[0]} = \@also; + foreach (@funcs) { + if ($unique{$_}) { + push $unique{$_}, ($i,); + } else { + $unique{$_} = [$i]; + } + } #print "[", $funcs[0], "]\n"; } close(MAN); + while (($func, $lines) = each %unique ) { + if (scalar @$lines > 1) { + print STDERR "$func in function_manpages on lines: " + . join(", ",@$lines) . "\n" if $report_errors; + $errors += 1; + } + } } else { print "Need -m file to process the .h files\n"; exit 1; @@ -95,7 +117,7 @@ mkdir "doc/man"; mkdir "doc/man/man$MAN_SECTION"; $state = 0; -my $i; +$i = 0; my @lines = ; my $max = @lines; @@ -273,7 +295,7 @@ foreach (keys %manpages) { print MAN $MAN_MIDDLE; - if (defined(@$also)) { + if (@$also) { print MAN "\n.SH SEE ALSO\n\\fI"; print MAN join "\\fR, \\fI", @$also; print MAN "\\fR.\nAnd "; @@ -290,7 +312,7 @@ foreach (keys %manpages) { # create symlinks chdir("$BASE/man$MAN_SECTION"); foreach (@$name) { - print STDERR $_,"\n"; + print STDOUT $_,"\n"; my $new_file = $_ . "." . $MAN_SECTION; if ($new_file eq $symlink_file) { next; @@ -301,3 +323,12 @@ foreach (keys %manpages) { chdir("../../.."); # and back, tricky and fragile... close(MAN); } +foreach (keys %api) { + next if (/ / || /^$/); + if (not $unique{$_}) { + print STDERR "no man page for $_\n" if $report_errors; + $errors += 1; + } +} + +exit ($report_errors and $errors != 0); -- 2.6.4