Fix @multitable handling in texi2pod.pl

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.

2019-12-07  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.

From-SVN: r279074
This commit is contained in:
Richard Sandiford 2019-12-07 09:57:04 +00:00 committed by Richard Sandiford
parent ae169f9e4c
commit b01d215df1
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2019-12-07 Richard Sandiford <richard.sandiford@arm.com>
* texi2pod.pl: Handle @headitems in @multitables, printing them
in italics. Push an empty item code onto the stack.
2019-11-13 Janne Blomqvist <jb@gcc.gnu.org>
* download_prerequisites: Use http instead of ftp for downloading.

View File

@ -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";