X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/f4b4d9ef73b60400712b671f60f2b01784f36646..31b8be0ed97ae4e155172d2cb18ea697be8649f5:/doc/check-docs diff --git a/doc/check-docs b/doc/check-docs index 06bb539..c721da2 100755 --- a/doc/check-docs +++ b/doc/check-docs @@ -14,7 +14,7 @@ sub scansyms (\%$) { chomp; if (/^---/) { $st = NEWPKG; } elsif ($st eq NEWPKG && /^Package `[-\w]+'/) { $st = LIST; } - elsif ($st eq LIST && /^Classes:/) { $st = LIMBO; } + elsif ($st eq LIST && /^(Classes|Leaked slot names):/) { $st = LIMBO; } elsif ($st eq LIMBO && /^Methods:/) { $st = METHODS; } elsif (/^\s*$/) { } elsif ($st eq LIMBO) { } @@ -78,6 +78,14 @@ sub scanaux (\%$) { scansyms %LABEL, "doc/SYMBOLS"; scanaux %DEF, "sod.aux"; +my $BAD = 0; + +sub bad ($) { + my ($what) = @_; + print STDERR "$0: $what\n"; + $BAD = 2; +} + SYM: for my $sym (sort keys %LABEL) { if ($DEF{$sym}) { next SYM; } my ($tag, $name) = $sym =~ /^([^:]+):(.*)$/; @@ -92,7 +100,7 @@ SYM: for my $sym (sort keys %LABEL) { $DEF{"fun:sod-frontend:augment-options"}) { } elsif ($sym eq "gf:setf/generic-function-methods") { } elsif ($tag eq "cty") { } - else { print ";; missing $tag:$name (defined in $LABEL{$sym})\n"; } + else { bad "missing $tag:$name (defined in $LABEL{$sym})"; } } SYM: for my $sym (sort keys %DEF) { @@ -115,5 +123,7 @@ SYM: for my $sym (sort keys %DEF) { elsif ($sym eq "plug:class-item" || $sym eq "plug:module") { } elsif ($sym eq "sym:int") { } elsif ($name =~ /^sod-frontend:(.*)$/ && $LABEL{"$tag:$1"}) { } - else { print ";; unexpected $tag:$name (described in $DEF{$sym})\n"; } + else { bad "unexpected $tag:$name (described in $DEF{$sym})"; } } + +exit $BAD;