my $docs;
while(defined($_ = <>)) {
chomp;
- if(!defined $name and m,^/\* (\@([a-z\-]+).*),) {
+ if(!defined $name and m,^/\*\$ (\@?([a-z\-]+).*),) {
$name = $2;
my $heading = $1;
$docs = [$heading];
}
# Generate docs in name order
+my $indented = 0;
for my $m (sort keys %macros) {
my @docs = @{$macros{$m}};
my $heading = shift @docs;
print ".TP\n";
print ".B $heading\n";
for my $d (@docs) {
+ if($d =~ /^-\s*([^:]+):\s+(.*)/) {
+ if(!$indented) {
+ print ".RS\n";
+ $indented = 1;
+ }
+ print ".TP 8\n";
+ print ".B $1\n";
+ $d = $2;
+ }
+ if($d =~ /^- /) {
+ $d = $';
+ if(!$indented) {
+ print ".RS\n";
+ $indented = 1;
+ }
+ print ".TP\n";
+ print ".B .\n";
+ }
if($d eq '') {
- print ".PP\n";
+ if($indented) {
+ print ".RE\n";
+ $indented = 0;
+ }
+ print ".IP\n";
} else {
# Keep sentence-ending full stops at end of line
$d =~ s/\. /\.\n/g;
print "$d\n";
}
}
+ if($indented) {
+ print ".RE\n";
+ $indented = 0;
+ }
}