summaryrefslogtreecommitdiff
path: root/etc/texi2pod.pl
diff options
context:
space:
mode:
Diffstat (limited to 'etc/texi2pod.pl')
-rw-r--r--etc/texi2pod.pl25
1 files changed, 24 insertions, 1 deletions
diff --git a/etc/texi2pod.pl b/etc/texi2pod.pl
index ed0d102a1a5..cd0ffd9435f 100644
--- a/etc/texi2pod.pl
+++ b/etc/texi2pod.pl
@@ -162,6 +162,8 @@ while(<$inf>) {
} elsif ($ended =~ /^(?:itemize|enumerate|[fv]?table)$/) {
$_ = "\n=back\n";
$ic = pop @icstack;
+ } elsif ($ended eq "multitable") {
+ $_ = "\n=back\n";
} else {
die "unknown command \@end $ended at line $.\n";
}
@@ -252,6 +254,8 @@ while(<$inf>) {
and $_ = "\n=head2 $1\n";
/^\@subsection\s+(.+)$/
and $_ = "\n=head3 $1\n";
+ /^\@subsubsection\s+(.+)$/
+ and $_ = "\n=head4 $1\n";
# Block command handlers:
/^\@itemize(?:\s+(\@[a-z]+|\*|-))?/ and do {
@@ -260,7 +264,7 @@ while(<$inf>) {
if (defined $1) {
$ic = $1;
} else {
- $ic = '@bullet';
+ $ic = '*';
}
$_ = "\n=over 4\n";
$endw = "itemize";
@@ -278,6 +282,12 @@ while(<$inf>) {
$endw = "enumerate";
};
+ /^\@multitable\s.*/ and do {
+ push @endwstack, $endw;
+ $endw = "multitable";
+ $_ = "\n=over 4\n";
+ };
+
/^\@([fv]?table)\s+(\@[a-z]+)/ and do {
push @endwstack, $endw;
push @icstack, $ic;
@@ -297,6 +307,16 @@ while(<$inf>) {
$_ = ""; # need a paragraph break
};
+ /^\@item\s+(.*\S)\s*$/ and $endw eq "multitable" and do {
+ @columns = ();
+ for $column (split (/\s*\@tab\s*/, $1)) {
+ # @strong{...} is used a @headitem work-alike
+ $column =~ s/^\@strong{(.*)}$/$1/;
+ push @columns, $column;
+ }
+ $_ = "\n=item ".join (" : ", @columns)."\n";
+ };
+
/^\@itemx?\s*(.+)?$/ and do {
if (defined $1) {
# Entity escapes prevent munging by the <> processing below.
@@ -382,6 +402,9 @@ sub postprocess
s/\@gol//g;
s/\@\*\s*\n?//g;
+ # Anchors are thrown away
+ s/\@anchor\{(?:[^\}]*)\}//g;
+
# @uref can take one, two, or three arguments, with different
# semantics each time. @url and @email are just like @uref with
# one argument, for our purposes.