Message ID | mptfthxbvwq.fsf@arm.com |
---|---|
State | New |
Headers | show |
Series | Fix @multitable handling in texi2pod.pl | expand |
On Fri, 2019-12-06 at 10:17 +0000, Richard Sandiford wrote: > While trying out Dennis's Armv8.6-A patch, I noticed that texi2pod.pl > didn't handle the new @multitable correctly. There were two > problems: > > (1) @multitables nested in other @tables inherited the @item type > from > the enclosing @table. Since the new @multitable is in a @table > @samp, > we applied @samp markup to the @multitable @items. This in turn > meant that it captured the @tab separator in the @item markup. > > Fixed by pushing an empty item code onto the stack. > > (2) We didn't handle @headitem. Fixed by enclosing it in italics, > like we do for section headings. This causes it to be underlined > in the man output. > > Tested by making sure that it doesn't change the current gcc.pod > output, > but fixes the problems mentioned above when the new @multitable is > added. > OK to install? > > Richard > > > 2019-12-05 Richard Sandiford <richard.sandiford@arm.com> > > contrib/ > * texi2pod.pl: Handle @headitems in @multitables, printing them > in italics. Push an empty item code onto the stack. OK jeff >
Index: contrib/texi2pod.pl =================================================================== --- contrib/texi2pod.pl 2019-03-08 18:14:23.345019203 +0000 +++ contrib/texi2pod.pl 2019-12-06 10:15:24.968809478 +0000 @@ -164,6 +164,7 @@ while(<$inf>) { $ic = pop @icstack; } elsif ($ended eq "multitable") { $_ = "\n=back\n"; + $ic = pop @icstack; } else { die "unknown command \@end $ended at line $.\n"; } @@ -288,7 +289,9 @@ while(<$inf>) { /^\@multitable\s.*/ and do { push @endwstack, $endw; + push @icstack, $ic; $endw = "multitable"; + $ic = ""; $_ = "\n=over 4\n"; }; @@ -312,11 +315,13 @@ while(<$inf>) { $_ = ""; # need a paragraph break }; - /^\@item\s+(.*\S)\s*$/ and $endw eq "multitable" and do { + /^\@(headitem|item)\s+(.*\S)\s*$/ and $endw eq "multitable" and do { @columns = (); - for $column (split (/\s*\@tab\s*/, $1)) { + $item = $1; + for $column (split (/\s*\@tab\s*/, $2)) { # @strong{...} is used a @headitem work-alike $column =~ s/^\@strong\{(.*)\}$/$1/; + $column = "I<$column>" if $item eq "headitem"; push @columns, $column; } $_ = "\n=item ".join (" : ", @columns)."\n";