From 2a6c34c8adfef4d2fcd5857d65b152a49d7af857 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sun, 1 May 2016 23:07:06 +0200 Subject: [PATCH] nroff-scan.pl: verify the .BR references as well --- tests/nroff-scan.pl | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/tests/nroff-scan.pl b/tests/nroff-scan.pl index 55ff24897..a70c16b86 100644 --- a/tests/nroff-scan.pl +++ b/tests/nroff-scan.pl @@ -22,7 +22,7 @@ ########################################################################### # # scan nroff pages to find basic syntactic problems such as unbalanced \f -# codes +# codes or references to non-existing curl man pages. my $docsroot = $ARGV[0]; @@ -38,6 +38,20 @@ my @f = @ARGV; my %manp; +sub manpresent { + my ($man) = @_; + if($manp{$man}) { + return 1; + } + elsif(-r "$docsroot/$man" || + -r "$docsroot/libcurl/$man" || + -r "$docsroot/libcurl/opts/$man") { + $manp{$man}=1; + return 1; + } + return 0; +} + sub file { my ($f) = @_; open(F, "<$f") || @@ -50,24 +64,29 @@ sub file { my ($pre, $str, $post)=($1, $2, $3); if($post ne "P") { print STDERR "error: $f:$line: missing \\fP after $str\n"; + $errrors++; } - if($str =~ /(curl([^ ]*))\(3\)/i) { + if($str =~ /((libcurl|curl)([^ ]*))\(3\)/i) { my $man = "$1.3"; - if($manp{$man}) { - ; - } - elsif(-r "$docsroot/$man" || - -r "$docsroot/libcurl/$man" || - -r "$docsroot/libcurl/opts/$man") { - $manp{$man}=1; - } - else { + if(!manpresent($man)) { print STDERR "error: $f:$line: refering to non-existing man page $man\n"; + $errors++; } } } if($l =~ /(curl([^ ]*)\(3\))/i) { print STDERR "error: $f:$line: non-referencing $1\n"; + $errors++; + } + if($l =~ /^\.BR (.*)/) { + my $i= $1; + while($i =~ s/((lib|)curl([^ ]*)) *\"\(3\)(,|) *\" *//i ) { + my $man = "$1.3"; + if(!manpresent($man)) { + print STDERR "error: $f:$line: refering to non-existing man page $man\n"; + $errors++; + } + } } $line++; } @@ -77,3 +96,5 @@ sub file { foreach my $f (@f) { file($f); } + + exit $errors?1:0;