Changeset 542 in openpam


Ignore:
Timestamp:
Mar 31, 2012, 9:16:40 PM (3 years ago)
Author:
des
Message:

Add support for custom sections, including a custom RETURN VALUES
section which suppresses the auto-generated one.

Allow blank lines between list items.

If the name of a cross-referenced function is preceded by an
exclamation mark, leave it out of the SEE ALSO section.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/misc/gendoc.pl

    r541 r542  
    137137    my $intaglist; 
    138138    my $inliteral; 
     139    my $customrv; 
    139140    my %xref; 
    140141    my @errors; 
     
    212213        if (m/^$/) { 
    213214            # paragraph separator 
     215            if ($inlist || $intaglist) { 
     216                # either a blank line between list items, or a blank 
     217                # line after the final list item.  The latter case 
     218                # will be handled further down. 
     219                next; 
     220            } 
     221            if ($man =~ m/\n\.Sh [^\n]+\n$/s) { 
     222                # a blank line after a section header 
     223                next; 
     224            } 
    214225            if ($man ne "" && $man !~ m/\.Pp\n$/s) { 
    215226                if ($inliteral) { 
    216227                    $man .= "\0\n"; 
    217                 } elsif ($inlist || $intaglist) { 
    218                     $man .= ".El\n.Pp\n"; 
    219                     $inlist = $intaglist = 0; 
    220228                } else { 
    221229                    $man .= ".Pp\n"; 
     
    228236            my ($page, $sect) = ($1, $2 ? int($2) : 3); 
    229237            ++$xref{$sect}->{$page}; 
     238            next; 
     239        } 
     240        if (s/^([A-Z][0-9A-Z -]+)$/.Sh $1/) { 
     241            if ($1 eq "RETURN VALUES") { 
     242                $customrv = $1; 
     243            } 
     244            $man =~ s/\n\.Pp$/\n/s; 
     245            $man .= "$_\n"; 
    230246            next; 
    231247        } 
     
    292308        s/\s*:([a-z_]+)\b\s*/\n.Va $1\n/gs; 
    293309        s/\s*;([a-z_]+)\b\s*/\n.Dv $1\n/gs; 
     310        s/\s*=!([a-z_]+)\b\s*/\n.Xr $1 3\n/gs; 
    294311        while (s/\s*=([a-z_]+)\b\s*/\n.Xr $1 3\n/s) { 
    295312            ++$xref{3}->{$1}; 
     
    332349        'errors'        => \@errors, 
    333350        'author'        => $author, 
     351        'customrv'      => $customrv, 
    334352    }; 
    335353    if ($source =~ m/^ \* NODOC\s*$/m) { 
     
    452470"; 
    453471    my @errors = @{$func->{'errors'}}; 
    454     if ($func->{'type'} eq "int" && @errors) { 
     472    if ($func->{'customrv'}) { 
     473        # leave it 
     474    } elsif ($func->{'type'} eq "int" && @errors) { 
    455475        $mdoc .= ".Sh RETURN VALUES 
    456476The 
Note: See TracChangeset for help on using the changeset viewer.