[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Patrice Dumas |
Date: |
Tue, 24 Dec 2024 11:25:08 -0500 (EST) |
branch: master
commit 9b78905ae596236b85fc6174d065040c54ec9e08
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Nov 24 20:54:10 2024 +0100
* tp/Texinfo/Convert/HTML.pm (_convert),
tp/Texinfo/XS/convert/convert_html.c (html_convert_tree_append): check
only that brace command is not empty when determining if there are
arguments, as other commands cannot be empty.
* tp/Texinfo/Convert/Text.pm: change in comments.
---
ChangeLog | 9 +++++++++
tp/Texinfo/Convert/HTML.pm | 6 +++---
tp/Texinfo/Convert/Text.pm | 6 +-----
tp/Texinfo/XS/convert/convert_html.c | 24 +++++++++---------------
4 files changed, 22 insertions(+), 23 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4995971a36..a8a6614e91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2024-11-24 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/Convert/HTML.pm (_convert),
+ tp/Texinfo/XS/convert/convert_html.c (html_convert_tree_append): check
+ only that brace command is not empty when determining if there are
+ arguments, as other commands cannot be empty.
+
+ * tp/Texinfo/Convert/Text.pm: change in comments.
+
2024-11-24 Patrice Dumas <pertusus@free.fr>
always use arguments being line_arg to determine if item in table
diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm
index 1c094646c3..6c0fe97f44 100644
--- a/tp/Texinfo/Convert/HTML.pm
+++ b/tp/Texinfo/Convert/HTML.pm
@@ -13594,7 +13594,8 @@ sub _convert($$;$)
}
}
my $args_formatted;
- if ($brace_commands{$command_name}
+ # contents could be not set for brace commands without braces
+ if (($brace_commands{$command_name} and $element->{'contents'})
or ($line_commands{$command_name}
and $line_commands{$command_name} eq 'line')
or (($command_name eq 'item' or $command_name eq 'itemx')
@@ -13606,8 +13607,7 @@ sub _convert($$;$)
or $command_name eq 'float'
or $command_name eq 'cartouche') {
my $arguments_list;
- if ($element->{'contents'}
- and $element->{'contents'}->[0]->{'type'}
+ if ($element->{'contents'}->[0]->{'type'}
and $element->{'contents'}->[0]->{'type'} eq 'arguments_line') {
$arguments_list = $element->{'contents'}->[0]->{'contents'};
} else {
diff --git a/tp/Texinfo/Convert/Text.pm b/tp/Texinfo/Convert/Text.pm
index 5a62fe7a2d..2de601196b 100644
--- a/tp/Texinfo/Convert/Text.pm
+++ b/tp/Texinfo/Convert/Text.pm
@@ -77,12 +77,8 @@ sub import {
}
-# this may not be needed for 'footnote', 'shortcaption', 'caption'
-# as they have no brace_container, see below.
-# FIXME check that the above sentence is still true now that the brace
-# commands have contents and not args
my %ignored_brace_commands;
-foreach my $ignored_brace_command (#'xref','ref','pxref','inforef',
+foreach my $ignored_brace_command (
'anchor', 'sortas', 'seealso', 'seeentry',
'footnote', 'shortcaption', 'caption', 'hyphenation', 'errormsg') {
$ignored_brace_commands{$ignored_brace_command} = 1;
diff --git a/tp/Texinfo/XS/convert/convert_html.c
b/tp/Texinfo/XS/convert/convert_html.c
index fae25b8f45..e08d202f69 100644
--- a/tp/Texinfo/XS/convert/convert_html.c
+++ b/tp/Texinfo/XS/convert/convert_html.c
@@ -1332,7 +1332,9 @@ html_convert_tree_append (CONVERTER *self, const ELEMENT
*element,
}
}
- if ((builtin_command_data[data_cmd].flags & CF_brace)
+ if ((builtin_command_data[data_cmd].flags & CF_brace
+ /* could be 0 for brace commands without braces */
+ && element->e.c->contents.number > 0)
|| (builtin_command_data[data_cmd].flags & CF_line
&& builtin_command_data[data_cmd].data == LINE_line)
|| ((cmd == CM_item || cmd == CM_itemx)
@@ -1342,21 +1344,13 @@ html_convert_tree_append (CONVERTER *self, const
ELEMENT *element,
|| cmd == CM_float
|| cmd == CM_cartouche)
{
- const ELEMENT_LIST *arguments_list = 0;
+ const ELEMENT_LIST *arguments_list;
- if (element->e.c->contents.number > 0
- && element->e.c->contents.list[0]->type == ET_arguments_line)
- {
- const ELEMENT *argument = element->e.c->contents.list[0];
- /* TODO most likely always true */
- if (argument->e.c->contents.number > 0)
- arguments_list = &argument->e.c->contents;
- }
+ if (element->e.c->contents.list[0]->type == ET_arguments_line)
+ arguments_list
+ = &element->e.c->contents.list[0]->e.c->contents;
else
- {
- if (element->e.c->contents.number > 0)
- arguments_list = &element->e.c->contents;
- }
+ arguments_list = &element->e.c->contents;
if (arguments_list)
{
@@ -1369,7 +1363,7 @@ html_convert_tree_append (CONVERTER *self, const ELEMENT
*element,
malloc (sizeof (HTML_ARGS_FORMATTED));
args_formatted->number = arguments_list->number;
args_formatted->args = (HTML_ARG_FORMATTED *)
- malloc (args_formatted->number * sizeof (HTML_ARG_FORMATTED));
+ malloc (args_formatted->number * sizeof
(HTML_ARG_FORMATTED));
memset (args_formatted->args, 0,
args_formatted->number * sizeof (HTML_ARG_FORMATTED));