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.