texinfo-commits
[Top][All Lists]
Advanced

[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));
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]