texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Patrice Dumas
Date: Sat, 28 Sep 2024 16:15:18 -0400 (EDT)

branch: master
commit 0b429b33b969e7cf82147fc316c35fa96b39571f
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sat Jun 1 15:53:25 2024 +0200

    * tp/Texinfo/XS/convert/convert_html.c (convert_sp_command)
    (convert_tab_command, convert_printindex_command),
    tp/Texinfo/XS/main/build_perl_info.c (build_additional_info),
    tp/Texinfo/XS/main/convert_to_text.c (convert_to_text_internal),
    tp/Texinfo/XS/main/debug.c (print_associate_info_debug),
    tp/Texinfo/XS/main/extra.c (add_extra_misc_args)
    (lookup_extra_misc_args), tp/Texinfo/XS/main/manipulate_tree.c
    (associate_info_references), tp/Texinfo/XS/main/tree.c
    (destroy_associated_info), tp/Texinfo/XS/main/utils.c
    (informative_command_value), tp/Texinfo/XS/parsetexi/end_line.c
    (parse_line_command_args, end_line_starting_block)
    (end_line_misc_line), tp/Texinfo/XS/parsetexi/handle_commands.c
    (handle_line_command), tp/Texinfo/XS/parsetexi/indices.c
    (enter_index_entry),
    tp/Texinfo/XS/structuring_transfo/transformations.c
    (lookup_index_entry, relate_index_entries_to_table_items_in):
    use an ELEMENT_LIST for extra_misc_args.  Add lookup_extra_misc_args.
---
 ChangeLog                                          | 20 ++++++++++++++++
 tp/Texinfo/XS/convert/convert_html.c               | 28 +++++++++++-----------
 tp/Texinfo/XS/main/build_perl_info.c               |  8 +++----
 tp/Texinfo/XS/main/convert_to_text.c               |  7 +++---
 tp/Texinfo/XS/main/debug.c                         |  6 ++---
 tp/Texinfo/XS/main/extra.c                         | 21 ++++++++++++++--
 tp/Texinfo/XS/main/extra.h                         |  3 ++-
 tp/Texinfo/XS/main/manipulate_tree.c               | 25 ++++++++++---------
 tp/Texinfo/XS/main/tree.c                          |  9 ++++++-
 tp/Texinfo/XS/main/utils.c                         |  8 +++----
 tp/Texinfo/XS/parsetexi/end_line.c                 | 23 +++++++++---------
 tp/Texinfo/XS/parsetexi/handle_commands.c          |  8 +++----
 tp/Texinfo/XS/parsetexi/indices.c                  |  8 +++----
 .../XS/structuring_transfo/transformations.c       | 16 ++++++-------
 14 files changed, 118 insertions(+), 72 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 227e250125..9cd8e87f45 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,26 @@
 
        * NEWS, doc/info-stnd.texi (Custom Key Bindings): update.
 
+2024-05-31  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/XS/convert/convert_html.c (convert_sp_command)
+       (convert_tab_command, convert_printindex_command),
+       tp/Texinfo/XS/main/build_perl_info.c (build_additional_info),
+       tp/Texinfo/XS/main/convert_to_text.c (convert_to_text_internal),
+       tp/Texinfo/XS/main/debug.c (print_associate_info_debug),
+       tp/Texinfo/XS/main/extra.c (add_extra_misc_args)
+       (lookup_extra_misc_args), tp/Texinfo/XS/main/manipulate_tree.c
+       (associate_info_references), tp/Texinfo/XS/main/tree.c
+       (destroy_associated_info), tp/Texinfo/XS/main/utils.c
+       (informative_command_value), tp/Texinfo/XS/parsetexi/end_line.c
+       (parse_line_command_args, end_line_starting_block)
+       (end_line_misc_line), tp/Texinfo/XS/parsetexi/handle_commands.c
+       (handle_line_command), tp/Texinfo/XS/parsetexi/indices.c
+       (enter_index_entry),
+       tp/Texinfo/XS/structuring_transfo/transformations.c
+       (lookup_index_entry, relate_index_entries_to_table_items_in):
+       use an ELEMENT_LIST for extra_misc_args.  Add lookup_extra_misc_args.
+
 2024-05-31  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry),
diff --git a/tp/Texinfo/XS/convert/convert_html.c 
b/tp/Texinfo/XS/convert/convert_html.c
index 93b56e27d3..f4c3c3cbed 100644
--- a/tp/Texinfo/XS/convert/convert_html.c
+++ b/tp/Texinfo/XS/convert/convert_html.c
@@ -11027,11 +11027,11 @@ convert_sp_command (CONVERTER *self, const enum 
command_id cmd,
                     const HTML_ARGS_FORMATTED *args_formatted,
                     const char *content, TEXT *result)
 {
-  const ELEMENT *misc_args = lookup_extra_element (element, "misc_args");
-  if (misc_args && misc_args->contents.number > 0)
+  const ELEMENT_LIST *misc_args = lookup_extra_misc_args (element, 
"misc_args");
+  if (misc_args && misc_args->number > 0)
     {
       int i;
-      const ELEMENT *element_with_number = misc_args->contents.list[0];
+      const ELEMENT *element_with_number = misc_args->list[0];
       unsigned int sp_nr = strtoul (element_with_number->text.text, NULL, 10);
 
       if (html_in_preformatted_context (self) || html_in_string (self))
@@ -12268,12 +12268,12 @@ convert_tab_command (CONVERTER *self, const enum 
command_id cmd,
 
   if (columnfractions)
     {
-      const ELEMENT *cf_misc_args = lookup_extra_element (columnfractions,
-                                                          "misc_args");
-      if (cf_misc_args->contents.number >= cell_nr)
+      const ELEMENT_LIST *cf_misc_args
+         = lookup_extra_misc_args (columnfractions, "misc_args");
+      if (cf_misc_args->number >= cell_nr)
         {
           const char *fraction_str
-            = cf_misc_args->contents.list[cell_nr -1]->text.text;
+            = cf_misc_args->list[cell_nr -1]->text.text;
           double fraction = strtod (fraction_str, NULL);
           if (self->conf->_INLINE_STYLE_WIDTH.o.integer > 0)
             text_printf (result, " style=\"width: %0.f%%\"", 100 * fraction);
@@ -12860,7 +12860,7 @@ convert_printindex_command (CONVERTER *self, const enum 
command_id cmd,
                     const HTML_ARGS_FORMATTED *args_formatted,
                     const char *content, TEXT *result)
 {
-  const ELEMENT *misc_args;
+  const ELEMENT_LIST *misc_args;
   const char *index_name;
   const INDEX_SORTED_BY_LETTER *idx;
   const INDEX_SORTED_BY_LETTER *index_sorted = 0;
@@ -12897,9 +12897,9 @@ convert_printindex_command (CONVERTER *self, const enum 
command_id cmd,
   if (html_in_string (self))
     return;
 
-  misc_args = lookup_extra_element (element, "misc_args");
-  if (misc_args && misc_args->contents.number > 0)
-    index_name = misc_args->contents.list[0]->text.text;
+  misc_args = lookup_extra_misc_args (element, "misc_args");
+  if (misc_args && misc_args->number > 0)
+    index_name = misc_args->list[0]->text.text;
   else
     return;
 
@@ -13050,10 +13050,10 @@ convert_printindex_command (CONVERTER *self, const 
enum command_id cmd,
           ELEMENT *entry_ref_tree;
           INDEX_ENTRY *index_entry_ref = letter_entry->entries[j];
           ELEMENT *main_entry_element = index_entry_ref->entry_element;
-          ELEMENT *index_entry_info = lookup_extra_element (main_entry_element,
-                                                            "index_entry");
+          const ELEMENT_LIST *index_entry_info
+             = lookup_extra_misc_args (main_entry_element, "index_entry");
           int entry_number
-             = lookup_extra_integer (index_entry_info->contents.list[1],
+             = lookup_extra_integer (index_entry_info->list[1],
                                      "integer", &status);
           entry_nr++;
 
diff --git a/tp/Texinfo/XS/main/build_perl_info.c 
b/tp/Texinfo/XS/main/build_perl_info.c
index e2c44af7e8..83aa14a242 100644
--- a/tp/Texinfo/XS/main/build_perl_info.c
+++ b/tp/Texinfo/XS/main/build_perl_info.c
@@ -388,15 +388,15 @@ build_additional_info (HV *extra, const ASSOCIATED_INFO 
*a,
             case extra_misc_args:
               {
               size_t j;
-              const ELEMENT *f = k->k.element;
+              const ELEMENT_LIST *l = k->k.list;
               AV *av = newAV ();
-              av_unshift (av, f->contents.number);
+              av_unshift (av, l->number);
 
               STORE(newRV_inc ((SV *)av));
               /* An array of strings or integers. */
-              for (j = 0; j < f->contents.number; j++)
+              for (j = 0; j < l->number; j++)
                 {
-                  const ELEMENT *e = f->contents.list[j];
+                  const ELEMENT *e = l->list[j];
                   if (e->type == ET_other_text)
                     {
                       if (e->text.end > 0)
diff --git a/tp/Texinfo/XS/main/convert_to_text.c 
b/tp/Texinfo/XS/main/convert_to_text.c
index bbe510f7ab..87837668f7 100644
--- a/tp/Texinfo/XS/main/convert_to_text.c
+++ b/tp/Texinfo/XS/main/convert_to_text.c
@@ -872,11 +872,12 @@ convert_to_text_internal (const ELEMENT *element, 
TEXT_OPTIONS *text_options,
         }
       else if (element->cmd == CM_sp)
         {
-          const ELEMENT *misc_args = lookup_extra_element (element, 
"misc_args");
+          const ELEMENT_LIST *misc_args
+             = lookup_extra_misc_args (element, "misc_args");
           /* misc_args can be 0 with invalid args */
-          if (misc_args && misc_args->contents.number > 0)
+          if (misc_args && misc_args->number > 0)
             {
-              char *sp_arg = misc_args->contents.list[0]->text.text;
+              const char *sp_arg = misc_args->list[0]->text.text;
               int sp_nr = strtoul (sp_arg, NULL, 10);
               int i;
               if (sp_nr > 0)
diff --git a/tp/Texinfo/XS/main/debug.c b/tp/Texinfo/XS/main/debug.c
index 61461c29ea..6f51076443 100644
--- a/tp/Texinfo/XS/main/debug.c
+++ b/tp/Texinfo/XS/main/debug.c
@@ -156,11 +156,11 @@ print_associate_info_debug (const ASSOCIATED_INFO *info)
         case extra_misc_args:
           {
             int j;
-            const ELEMENT *f = k->k.element;
+            const ELEMENT_LIST *l = k->k.list;
             text_append (&text, "array: ");
-            for (j = 0; j < f->contents.number; j++)
+            for (j = 0; j < l->number; j++)
               {
-                const ELEMENT *e = f->contents.list[j];
+                const ELEMENT *e = l->list[j];
                 if (e->type == ET_other_text)
                   text_printf (&text, "%s|", e->text.text);
                 else
diff --git a/tp/Texinfo/XS/main/extra.c b/tp/Texinfo/XS/main/extra.c
index ca62129dd4..01d8f68a58 100644
--- a/tp/Texinfo/XS/main/extra.c
+++ b/tp/Texinfo/XS/main/extra.c
@@ -148,11 +148,11 @@ add_extra_directions (ELEMENT *e, const char *key)
 }
 
 void
-add_extra_misc_args (ELEMENT *e, char *key, ELEMENT *value)
+add_extra_misc_args (ELEMENT *e, char *key, ELEMENT_LIST *value)
 {
   if (!value) return;
   KEY_PAIR *k = get_associated_info_key (&e->extra_info, key, extra_misc_args);
-  k->k.element = value;
+  k->k.list = value;
 }
 
 void
@@ -348,6 +348,23 @@ lookup_extra_directions (const ELEMENT *e, const char *key)
   return k->k.list;
 }
 
+const ELEMENT_LIST *
+lookup_extra_misc_args (const ELEMENT *e, const char *key)
+{
+  KEY_PAIR *k = lookup_extra (e, key);
+  if (!k)
+    return 0;
+  else if (k->type != extra_misc_args)
+    {
+      char *msg;
+      xasprintf (&msg, "Bad type for lookup_extra_misc_args: %s: %d",
+                 key, k->type);
+      fatal (msg);
+      free (msg);
+    }
+  return k->list;
+}
+
 ELEMENT *
 lookup_info_element (const ELEMENT *e, const char *key)
 {
diff --git a/tp/Texinfo/XS/main/extra.h b/tp/Texinfo/XS/main/extra.h
index 1ec9f61cea..a7a9c74ed1 100644
--- a/tp/Texinfo/XS/main/extra.h
+++ b/tp/Texinfo/XS/main/extra.h
@@ -26,7 +26,7 @@ ELEMENT_LIST *add_extra_contents (ELEMENT *e, const char *key,
 void add_extra_container (ELEMENT *e, char *key, ELEMENT *value);
 const ELEMENT_LIST *add_extra_directions (ELEMENT *e, const char *key);
 void add_extra_text (ELEMENT *e, char *key, ELEMENT *value);
-void add_extra_misc_args (ELEMENT *e, char *key, ELEMENT *value);
+void add_extra_misc_args (ELEMENT *e, char *key, ELEMENT_LIST *value);
 void add_extra_string (ELEMENT *e, const char *key, char *value);
 void add_extra_string_dup (ELEMENT *e, const char *key, const char *value);
 void add_extra_integer (ELEMENT *e, char *key, long value);
@@ -43,6 +43,7 @@ KEY_PAIR *lookup_info (const ELEMENT *e, const char *key);
 ELEMENT *lookup_extra_element (const ELEMENT *e, const char *key);
 ELEMENT *lookup_info_element (const ELEMENT *e, const char *key);
 ELEMENT_LIST *lookup_extra_contents (const ELEMENT *e, const char *key);
+const ELEMENT_LIST *lookup_extra_misc_args (const ELEMENT *e, const char *key);
 const ELEMENT_LIST *lookup_extra_directions (const ELEMENT *e, const char 
*key);
 int lookup_extra_integer (const ELEMENT *e, const char *key, int *ret);
 int lookup_info_integer (const ELEMENT *e, const char *key, int *ret);
diff --git a/tp/Texinfo/XS/main/manipulate_tree.c 
b/tp/Texinfo/XS/main/manipulate_tree.c
index 0a53759be3..6890f08183 100644
--- a/tp/Texinfo/XS/main/manipulate_tree.c
+++ b/tp/Texinfo/XS/main/manipulate_tree.c
@@ -63,7 +63,6 @@ copy_associated_info (ASSOCIATED_INFO *info, ASSOCIATED_INFO* 
new_info)
       KEY_PAIR *k_ref = &info->info[i];
       const char *key = k_ref->key;
       ELEMENT *f = k_ref->k.element;
-      ELEMENT *new_extra_element;
       ELEMENT_LIST *new_extra_contents;
       KEY_PAIR *k_copy = 0;
       int j;
@@ -122,7 +121,7 @@ copy_associated_info (ASSOCIATED_INFO *info, 
ASSOCIATED_INFO* new_info)
         case extra_container:
           {
           KEY_PAIR *k = get_associated_info_key (new_info, key, k_ref->type);
-          new_extra_element = new_element (ET_NONE);
+          ELEMENT *new_extra_element = new_element (ET_NONE);
           k->k.element = new_extra_element;
           for (j = 0; j < f->contents.number; j++)
             {
@@ -227,10 +226,8 @@ associate_info_references (ASSOCIATED_INFO *info, 
ASSOCIATED_INFO *new_info)
 
   for (i = 0; i < info->info_number; i++)
     {
-      KEY_PAIR *k_ref = &info->info[i];
+      const KEY_PAIR *k_ref = &info->info[i];
       const char *key = k_ref->key;
-      ELEMENT *f = k_ref->k.element;
-      ELEMENT *new_extra_element;
       int j;
 
       if (k_ref->type == extra_deleted)
@@ -243,14 +240,15 @@ associate_info_references (ASSOCIATED_INFO *info, 
ASSOCIATED_INFO *new_info)
           if (!strcmp (key, "_copy"))
             break;
           {
+            ELEMENT *f = k_ref->k.element;
             KEY_PAIR *k;
-            KEY_PAIR *k_copy;
+            const KEY_PAIR *k_copy;
             k = lookup_associated_info (new_info, key);
             if (!k)
               {
                 ELEMENT *e = get_copy_ref (f);
                 k = get_associated_info_key (new_info, key,
-                                             info->info[i].type);
+                                             k_ref->type);
                 k->k.element = e;
               }
             k_copy = lookup_extra_by_index (f, "_copy", -1);
@@ -287,8 +285,9 @@ associate_info_references (ASSOCIATED_INFO *info, 
ASSOCIATED_INFO *new_info)
           }
         case extra_container:
           {
+            const ELEMENT *f = k_ref->element;
             KEY_PAIR *k = lookup_associated_info (new_info, key);
-            new_extra_element = k->k.element;
+            ELEMENT *new_extra_element = k->k.element;
             for (j = 0; j < f->contents.number; j++)
               {
                 KEY_PAIR *k_copy;
@@ -324,12 +323,12 @@ associate_info_references (ASSOCIATED_INFO *info, 
ASSOCIATED_INFO *new_info)
         case extra_misc_args:
           {
           int j;
-          new_extra_element = new_element (ET_NONE);
           KEY_PAIR *k = get_associated_info_key (new_info, key, k_ref->type);
-          k->k.element = new_extra_element;
-          for (j = 0; j < f->contents.number; j++)
+          ELEMENT_LIST *new_extra_misc_args = new_list();
+          k->k.list = new_extra_mk.isc_args;
+          for (j = 0; j < k_ref->list->number; j++)
             {
-              const ELEMENT *e = f->contents.list[j];
+              const ELEMENT *e = k_ref->k.list->list[j];
               ELEMENT *new_e;
               if (e->type == ET_other_text)
                 {
@@ -346,7 +345,7 @@ associate_info_references (ASSOCIATED_INFO *info, 
ASSOCIATED_INFO *new_info)
                       add_extra_integer (new_e, "integer", 
k_integer->k.integer);
                     }
                 }
-              add_to_contents_as_array (new_extra_element, new_e);
+              add_to_element_list (new_extra_misc_args, new_e);
             }
           break;
           }
diff --git a/tp/Texinfo/XS/main/tree.c b/tp/Texinfo/XS/main/tree.c
index eb13742840..6566a88da3 100644
--- a/tp/Texinfo/XS/main/tree.c
+++ b/tp/Texinfo/XS/main/tree.c
@@ -156,7 +156,14 @@ destroy_associated_info (ASSOCIATED_INFO *a)
             destroy_element (k_pair->k.element);
           break;
         case extra_misc_args:
-          destroy_element_and_children (k_pair->k.element);
+          {
+          int j;
+          ELEMENT_LIST *l = a->info[i].k.list;
+          for (j = 0; j < l->number; j++)
+            destroy_element (l->list[j]);
+
+          destroy_list (a->info[i].list);
+          }
           break;
 
         default:
diff --git a/tp/Texinfo/XS/main/utils.c b/tp/Texinfo/XS/main/utils.c
index 763385d9f1..9e33a4d0b8 100644
--- a/tp/Texinfo/XS/main/utils.c
+++ b/tp/Texinfo/XS/main/utils.c
@@ -1156,7 +1156,7 @@ get_cmd_global_uniq_command (const GLOBAL_COMMANDS 
*global_commands_ref,
 char *
 informative_command_value (const ELEMENT *element)
 {
-  ELEMENT *misc_args;
+  const ELEMENT_LIST *misc_args;
   char *text_arg;
 
   enum command_id cmd = element_builtin_data_cmd (element);
@@ -1202,9 +1202,9 @@ informative_command_value (const ELEMENT *element)
   text_arg = lookup_extra_string (element, "text_arg");
   if (text_arg)
     return text_arg;
-  misc_args = lookup_extra_element (element, "misc_args");
-  if (misc_args && misc_args->contents.number > 0)
-    return misc_args->contents.list[0]->text.text;
+  misc_args = lookup_extra_misc_args (element, "misc_args");
+  if (misc_args && misc_args->number > 0)
+    return misc_args->list[0]->text.text;
   if (builtin_command_data[cmd].flags & CF_line
       && builtin_command_data[cmd].data == LINE_line
       && element->args.number >= 1
diff --git a/tp/Texinfo/XS/parsetexi/end_line.c 
b/tp/Texinfo/XS/parsetexi/end_line.c
index 321efd7a78..02047c85a5 100644
--- a/tp/Texinfo/XS/parsetexi/end_line.c
+++ b/tp/Texinfo/XS/parsetexi/end_line.c
@@ -100,17 +100,17 @@ is_whole_number (const char *string)
    is an array of the arguments.  For some commands, there is further
    processing of the arguments (for example, for an @alias, remember the
    alias.) */
-ELEMENT *
+ELEMENT_LIST *
 parse_line_command_args (ELEMENT *line_command)
 {
 #define ADD_ARG(string) do { \
     ELEMENT *E = new_element (ET_other_text); \
     text_append (&E->text, string); \
-    add_to_element_contents (line_args, E); \
+    add_to_element_list (line_args, E); \
 } while (0)
 
   ELEMENT *arg = line_command->args.list[0];
-  ELEMENT *line_args;
+  ELEMENT_LIST *line_args;
   enum command_id cmd;
   const char *line;
 
@@ -128,8 +128,8 @@ parse_line_command_args (ELEMENT *line_command)
   if (arg->contents.list[0]->text.end == 0)
     return 0;
 
-  /* element without type put in extra "misc_args" */
-  line_args = new_element (ET_NONE);
+  /* put in extra "misc_args" */
+  line_args = new_list ();
   line = arg->contents.list[0]->text.text;
 
   switch (cmd)
@@ -318,7 +318,7 @@ parse_line_command_args (ELEMENT *line_command)
               {
                 new = new_element (ET_other_text);
                 text_append_n (&new->text, p, q - p);
-                add_to_element_contents (line_args, new);
+                add_to_element_list (line_args, new);
               }
             free (arg);
             p = q;
@@ -662,9 +662,9 @@ parse_line_command_args (ELEMENT *line_command)
     default:
       ;
     }
-  if (line_args->contents.number == 0)
+  if (line_args->number == 0)
     {
-      destroy_element (line_args);
+      destroy_list (line_args);
       return 0;
     }
   else
@@ -810,12 +810,13 @@ end_line_starting_block (ELEMENT *current)
       && (k = lookup_extra (current->parent, "columnfractions")))
     {
       ELEMENT *misc_cmd = k->k.element;
-      ELEMENT *misc_args = lookup_extra_element (misc_cmd, "misc_args");
+      const ELEMENT_LIST *misc_args
+          = lookup_extra_misc_args (misc_cmd, "misc_args");
 
       if (misc_args)
         {
           add_extra_integer (current->parent, "max_columns",
-                             misc_args->contents.number);
+                             misc_args->number);
         }
       else
         {
@@ -1249,7 +1250,7 @@ end_line_misc_line (ELEMENT *current)
 
   if (arg_spec == LINE_specific)
     {
-      ELEMENT *args = parse_line_command_args (current);
+      ELEMENT_LIST *args = parse_line_command_args (current);
       if (args)
         add_extra_misc_args (current, "misc_args", args);
     }
diff --git a/tp/Texinfo/XS/parsetexi/handle_commands.c 
b/tp/Texinfo/XS/parsetexi/handle_commands.c
index d5f92fb38e..82cb26e66c 100644
--- a/tp/Texinfo/XS/parsetexi/handle_commands.c
+++ b/tp/Texinfo/XS/parsetexi/handle_commands.c
@@ -650,6 +650,8 @@ handle_line_command (ELEMENT *current, const char 
**line_inout,
           ELEMENT *e;
           ELEMENT *spaces_before = new_element (ET_other_text);
           ELEMENT *spaces_after = new_element (ET_other_text);
+          /* put in extra "misc_args" */
+          ELEMENT_LIST *args_list = new_list ();
 
           if (cmd == CM_set)
             arg = "on";
@@ -660,11 +662,9 @@ handle_line_command (ELEMENT *current, const char 
**line_inout,
              command and add it to the tree. */
 
           destroy_element_and_children (args);
-          /* element without type put in extra "misc_args" */
-          args = new_element (ET_NONE);
           e = new_element (ET_other_text);
           text_append (&e->text, arg);
-          add_to_element_contents (args, e);
+          add_to_element_list (args_list, e);
 
           destroy_element_and_children (command_e);
           command_e = new_element (ET_NONE);
@@ -673,7 +673,7 @@ handle_line_command (ELEMENT *current, const char 
**line_inout,
 
           line_args = new_element (ET_line_arg);
           add_to_element_args (command_e, line_args);
-          add_extra_misc_args (command_e, "misc_args", args);
+          add_extra_misc_args (command_e, "misc_args", args_list);
           text_append (&spaces_before->text, " ");
           add_info_element_oot (command_e, "spaces_before_argument", 
spaces_before);
 
diff --git a/tp/Texinfo/XS/parsetexi/indices.c 
b/tp/Texinfo/XS/parsetexi/indices.c
index 8110c13fd2..1b20615519 100644
--- a/tp/Texinfo/XS/parsetexi/indices.c
+++ b/tp/Texinfo/XS/parsetexi/indices.c
@@ -287,15 +287,15 @@ enter_index_entry (enum command_id index_type_cmd,
   /* index_entry is an array with two elements.  Use
      extra_misc_args to pass that information as an array */
   {
-    /* element without type put in extra "misc_args" */
-    ELEMENT *index_entry = new_element (ET_NONE);
+    /* put in extra "misc_args" */
+    ELEMENT_LIST *index_entry = new_list ();
     /* index name put as text in extra "misc_args" */
     ELEMENT *e = new_element (ET_other_text);
     text_append (&e->text, idx->name);
-    add_to_element_contents (index_entry, e);
+    add_to_element_list (index_entry, e);
     e = new_element (ET_NONE);
     add_extra_integer (e, "integer", idx->entries_number);
-    add_to_element_contents (index_entry, e);
+    add_to_element_list (index_entry, e);
     add_extra_misc_args (element, "index_entry", index_entry);
   }
 
diff --git a/tp/Texinfo/XS/structuring_transfo/transformations.c 
b/tp/Texinfo/XS/structuring_transfo/transformations.c
index 29714ba8c7..f2eb59f41c 100644
--- a/tp/Texinfo/XS/structuring_transfo/transformations.c
+++ b/tp/Texinfo/XS/structuring_transfo/transformations.c
@@ -51,14 +51,14 @@
 
 /* in Common.pm */
 INDEX_ENTRY_AND_INDEX *
-lookup_index_entry (ELEMENT *index_entry_info, INDEX_LIST *indices_info)
+lookup_index_entry (ELEMENT_LIST *index_entry_info, INDEX_LIST *indices_info)
 {
   INDEX_ENTRY_AND_INDEX *result = 0;
   int status;
   int entry_number
-    = lookup_extra_integer (index_entry_info->contents.list[1], "integer",
+    = lookup_extra_integer (index_entry_info->list[1], "integer",
                             &status);
-  char *entry_index_name = index_entry_info->contents.list[0]->text.text;
+  char *entry_index_name = index_entry_info->list[0]->text.text;
   INDEX *index_info;
 
   index_info = indices_info_index_by_name (indices_info,
@@ -383,8 +383,8 @@ relate_index_entries_to_table_items_in (ELEMENT *table,
                   if (!entry_idx_info)
                     {
                       INDEX_ENTRY_AND_INDEX *idx_info;
-                      ELEMENT *index_entry_info = lookup_extra_element 
(content,
-                                                                 
"index_entry");
+                      ELEMENT_LIST *index_entry_info
+                        = lookup_extra_misc_args (content, "index_entry");
                       idx_info = lookup_index_entry (index_entry_info,
                                                      indices_info);
                       if (idx_info->index_entry)
@@ -401,7 +401,7 @@ relate_index_entries_to_table_items_in (ELEMENT *table,
                 }
               if (item && entry_idx_info)
                 {
-                  ELEMENT *index_entry_command = new_element (ET_NONE);
+                  ELEMENT_LIST *index_entry_command = new_list ();
                   ELEMENT *e = new_element (ET_other_text);
                  /*
                   This is better than overwriting 'entry_element', which
@@ -410,11 +410,11 @@ relate_index_entries_to_table_items_in (ELEMENT *table,
                   entry_idx_info->index_entry->entry_associated_element = item;
               /* also add a reference from element to index entry in index */
                   text_append (&e->text, entry_idx_info->index->name);
-                  add_to_element_contents (index_entry_command, e);
+                  add_to_element_list (index_entry_command, e);
                   e = new_element (ET_NONE);
                   add_extra_integer (e, "integer",
                                      entry_idx_info->entry_number);
-                  add_to_element_contents (index_entry_command, e);
+                  add_to_element_list (index_entry_command, e);
                   add_extra_misc_args (item, "associated_index_entry",
                                        index_entry_command);
                   free (entry_idx_info);



reply via email to

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