Changeset 465 in openpam for trunk


Ignore:
Timestamp:
Nov 2, 2011, 8:34:26 PM (8 years ago)
Author:
Dag-Erling Smørgrav
Message:

Add support for bullet lists.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/misc/gendoc.pl

    r445 r465  
    135135    my $man;
    136136    my $inlist;
     137    my $intaglist;
    137138    my $inliteral;
    138139    my %xref;
     
    197198    $argnames =~ s/^\"(.*)\"$/($1)/;
    198199    # $argnames is now a regexp that matches argument names
    199     $inliteral = $inlist = 0;
     200    $inliteral = $inlist = $intaglist = 0;
    200201    foreach (split("\n", $source)) {
    201202        s/\s*$//;
     
    210211        s/\\(.)/$1/gs;
    211212        if (m/^$/) {
     213            # paragraph separator
    212214            if ($man ne "" && $man !~ m/\.Pp\n$/s) {
    213215                if ($inliteral) {
    214216                    $man .= "\0\n";
    215                 } elsif ($inlist) {
     217                } elsif ($inlist || $intaglist) {
    216218                    $man .= ".El\n.Pp\n";
    217                     $inlist = 0;
     219                    $inlist = $intaglist = 0;
    218220                } else {
    219221                    $man .= ".Pp\n";
     
    223225        }
    224226        if (m/^>(\w+)(\s+\d)?$/) {
     227            # "see also" cross-reference
    225228            my ($page, $sect) = ($1, $2 ? int($2) : 3);
    226229            ++$xref{$sect}->{$page};
    227230            next;
    228231        }
    229         if (s/^\s+([=%]?\w+):\s*/.It $1/) {
     232        if (s/^\s+-\s+//) {
     233            # item in bullet list
    230234            if ($inliteral) {
    231235                $man .= ".Ed\n";
    232236                $inliteral = 0;
    233237            }
     238            if ($intaglist) {
     239                $man .= ".El\n.Pp\n";
     240                $intaglist = 0;
     241            }
    234242            if (!$inlist) {
    235243                $man =~ s/\.Pp\n$//s;
     244                $man .= ".Bl -bullet\n";
     245                $inlist = 1;
     246            }
     247            $man .= ".It\n";
     248            # fall through
     249        } elsif (s/^\s+(\S+):\s*/.It $1/) {
     250            # item in tag list
     251            if ($inliteral) {
     252                $man .= ".Ed\n";
     253                $inliteral = 0;
     254            }
     255            if ($inlist) {
     256                $man .= ".El\n.Pp\n";
     257                $inlist = 0;
     258            }
     259            if (!$intaglist) {
     260                $man =~ s/\.Pp\n$//s;
    236261                $man .= ".Bl -tag -width 18n\n";
    237                 $inlist = 1;
     262                $intaglist = 1;
    238263            }
    239264            s/^\.It =([A-Z][A-Z_]+)$/.It Dv $1/gs;
    240265            $man .= "$_\n";
    241266            next;
    242         } elsif ($inlist && m/^\S/) {
     267        } elsif (($inlist || $intaglist) && m/^\S/) {
     268            # regular text after list
    243269            $man .= ".El\n.Pp\n";
    244             $inlist = 0;
     270            $inlist = $intaglist = 0;
    245271        } elsif ($inliteral && m/^\S/) {
     272            # regular text after literal section
    246273            $man .= ".Ed\n";
    247274            $inliteral = 0;
    248275        } elsif ($inliteral) {
     276            # additional text within literal section
    249277            $man .= "$_\n";
    250278            next;
    251         } elsif ($inlist) {
     279        } elsif ($inlist || $intaglist) {
     280            # additional text within list
    252281            s/^\s+//;
    253282        } elsif (m/^\s+/) {
     283            # new literal section
    254284            $man .= ".Bd -literal\n";
    255285            $inliteral = 1;
     
    273303    }
    274304    if (defined($man)) {
    275         if ($inlist) {
     305        if ($inlist || $intaglist) {
    276306            $man .= ".El\n";
     307            $inlist = $intaglist = 0;
    277308        }
    278309        if ($inliteral) {
    279310            $man .= ".Ed\n";
     311            $inliteral = 0;
    280312        }
    281313        $man =~ s/\%/\\&\%/gs;
Note: See TracChangeset for help on using the changeset viewer.