texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: * tp/Texinfo/XS/convert/converter.c (new_text_ele


From: Patrice Dumas
Subject: branch master updated: * tp/Texinfo/XS/convert/converter.c (new_text_element_added), tp/Texinfo/XS/main/tree.c (new_text_element): add a new function to setup a text element, to prepare for a different initialization and different struct union field use. Update calls.
Date: Sat, 28 Sep 2024 16:33:49 -0400

This is an automated email from the git hooks/post-receive script.

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new ec8f52d31f * tp/Texinfo/XS/convert/converter.c 
(new_text_element_added), tp/Texinfo/XS/main/tree.c (new_text_element): add a 
new function to setup a text element, to prepare for a different initialization 
and different struct union field use.  Update calls.
ec8f52d31f is described below

commit ec8f52d31f779227865550e303ee9d7c27a88c68
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sat Jun 1 17:12:20 2024 +0200

    * tp/Texinfo/XS/convert/converter.c (new_text_element_added),
    tp/Texinfo/XS/main/tree.c (new_text_element): add a new function to
    setup a text element, to prepare for a different initialization and
    different struct union field use.  Update calls.
---
 ChangeLog                                          |  7 ++++
 tp/Texinfo/XS/convert/convert_html.c               | 38 ++++++++---------
 tp/Texinfo/XS/convert/converter.c                  | 14 +++++--
 tp/Texinfo/XS/convert/converter.h                  |  2 +
 tp/Texinfo/XS/main/convert_to_text.c               |  8 ++--
 tp/Texinfo/XS/main/convert_utils.c                 | 12 +++---
 tp/Texinfo/XS/main/extra.c                         |  2 +-
 tp/Texinfo/XS/main/manipulate_tree.c               | 27 ++++++------
 tp/Texinfo/XS/main/tree.c                          | 11 +++++
 tp/Texinfo/XS/main/tree.h                          |  1 +
 tp/Texinfo/XS/parsetexi/close.c                    |  2 +-
 tp/Texinfo/XS/parsetexi/def.c                      | 12 +++---
 tp/Texinfo/XS/parsetexi/end_line.c                 |  6 +--
 tp/Texinfo/XS/parsetexi/handle_commands.c          | 10 ++---
 tp/Texinfo/XS/parsetexi/indices.c                  |  4 +-
 tp/Texinfo/XS/parsetexi/macro.c                    | 28 ++++++-------
 tp/Texinfo/XS/parsetexi/menus.c                    |  6 +--
 tp/Texinfo/XS/parsetexi/parser.c                   | 48 +++++++++++-----------
 tp/Texinfo/XS/parsetexi/separator.c                | 16 ++++----
 tp/Texinfo/XS/parsetexi/source_marks.c             |  2 +-
 tp/Texinfo/XS/structuring_transfo/structuring.c    | 30 +++++++-------
 .../XS/structuring_transfo/transformations.c       | 33 ++++++++-------
 22 files changed, 177 insertions(+), 142 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index fc06844dcc..e13d4f5a64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,13 @@
 
        Reorder ChangeLog to correspond to commits order.
 
+2024-05-31  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/XS/convert/converter.c (new_text_element_added),
+       tp/Texinfo/XS/main/tree.c (new_text_element): add a new function to
+       setup a text element, to prepare for a different initialization and
+       different struct union field use.  Update calls.
+
 2024-05-31  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/XS/main/element_types.awk,
diff --git a/tp/Texinfo/XS/convert/convert_html.c 
b/tp/Texinfo/XS/convert/convert_html.c
index c874df251d..c6eab48cdb 100644
--- a/tp/Texinfo/XS/convert/convert_html.c
+++ b/tp/Texinfo/XS/convert/convert_html.c
@@ -3878,7 +3878,7 @@ html_internal_command_tree (CONVERTER *self, const 
ELEMENT *command,
                 {
                   NAMED_STRING_ELEMENT_LIST *replaced_substrings
                     = new_named_string_element_list ();
-                  ELEMENT *e_number = new_element (ET_normal_text);
+                  ELEMENT *e_number = new_text_element (ET_normal_text);
                   ELEMENT *section_title_copy
                      = copy_tree (command->args.list[0]);
 
@@ -3947,8 +3947,8 @@ html_external_command_tree (CONVERTER *self, const 
ELEMENT *command,
   tree = new_tree_added_elements (tree_added_status_elements_added);
 
   root_code = new_element_added (tree, ET__code);
-  open_p = new_element_added (tree, ET_normal_text);
-  close_p = new_element_added (tree, ET_normal_text);
+  open_p = new_text_element_added (tree, ET_normal_text);
+  close_p = new_text_element_added (tree, ET_normal_text);
 
   text_append_n (&open_p->text, "(", 1);
   text_append_n (&close_p->text, ")", 1);
@@ -6833,8 +6833,8 @@ html_default_format_program_string (CONVERTER *self, TEXT 
*result)
   if (self->conf->PROGRAM.o.string && strlen (self->conf->PROGRAM.o.string)
       && self->conf->PACKAGE_URL.o.string)
     {
-      ELEMENT *program_homepage = new_element (ET_normal_text);
-      ELEMENT *program = new_element (ET_normal_text);
+      ELEMENT *program_homepage = new_text_element (ET_normal_text);
+      ELEMENT *program = new_text_element (ET_normal_text);
       NAMED_STRING_ELEMENT_LIST *substrings
                                    = new_named_string_element_list ();
 
@@ -8586,7 +8586,7 @@ html_default_format_node_redirection_page (CONVERTER 
*self,
   const char *package_url;
   char *href = html_command_href (self, element, filename, 0, 0);
   char *name = html_command_text (self, element, 0);
-  ELEMENT *direction_element = new_element (ET__converted);
+  ELEMENT *direction_element = new_text_element (ET__converted);
   NAMED_STRING_ELEMENT_LIST *substrings = new_named_string_element_list ();
 
   text_printf (&direction_element->text, "<a href=\"%s\">%s</a>", href, name);
@@ -8953,7 +8953,7 @@ convert_value_command (CONVERTER *self, const enum 
command_id cmd,
                     const char *content, TEXT *result)
 {
   ELEMENT *tree;
-  ELEMENT *value_text = new_element (ET_normal_text);
+  ELEMENT *value_text = new_text_element (ET_normal_text);
   NAMED_STRING_ELEMENT_LIST *substrings = new_named_string_element_list ();
 
   text_append (&value_text->text,
@@ -9175,8 +9175,8 @@ convert_explained_command (CONVERTER *self, const enum 
command_id cmd,
       char *context_str;
       NAMED_STRING_ELEMENT_LIST *substrings
                                        = new_named_string_element_list ();
-      ELEMENT *explained_string_element = new_element (ET__converted);
-      ELEMENT *explanation_result_element = new_element (ET__converted);
+      ELEMENT *explained_string_element = new_text_element (ET__converted);
+      ELEMENT *explanation_result_element = new_text_element (ET__converted);
       ELEMENT *tree;
 
       text_append (&explained_string_element->text, text_result->text);
@@ -12366,7 +12366,7 @@ convert_xref_commands (CONVERTER *self, const enum 
command_id cmd,
              = html_command_root_element_command (self, target_node);
       const ELEMENT *associated_section = lookup_extra_element (target_node,
                                                        "associated_section");
-      reference_element = new_element (ET__converted);
+      reference_element = new_text_element (ET__converted);
       NAMED_STRING_ELEMENT_LIST *substrings
                                        = new_named_string_element_list ();
 
@@ -12618,9 +12618,9 @@ convert_xref_commands (CONVERTER *self, const enum 
command_id cmd,
 
       if (book && reference)
         {
-          book_element = new_element (ET__converted);
+          book_element = new_text_element (ET__converted);
           text_append (&book_element->text, book);
-          reference_element = new_element (ET__converted);
+          reference_element = new_text_element (ET__converted);
           text_append (&reference_element->text, reference);
 
           add_element_to_named_string_element_list (substrings,
@@ -12645,7 +12645,7 @@ convert_xref_commands (CONVERTER *self, const enum 
command_id cmd,
         }
       else if (book_reference)
         {
-          book_element = new_element (ET__converted);
+          book_element = new_text_element (ET__converted);
           text_append (&book_element->text, book_reference);
 
           add_element_to_named_string_element_list (substrings,
@@ -12668,9 +12668,9 @@ convert_xref_commands (CONVERTER *self, const enum 
command_id cmd,
         }
       else if (book && name)
         {
-          book_element = new_element (ET__converted);
+          book_element = new_text_element (ET__converted);
           text_append (&book_element->text, book);
-          reference_element = new_element (ET__converted);
+          reference_element = new_text_element (ET__converted);
           text_append (&reference_element->text, name);
 
           add_element_to_named_string_element_list (substrings,
@@ -12695,7 +12695,7 @@ convert_xref_commands (CONVERTER *self, const enum 
command_id cmd,
         }
       else if (book)
         {
-          book_element = new_element (ET__converted);
+          book_element = new_text_element (ET__converted);
           text_append (&book_element->text, book);
 
           add_element_to_named_string_element_list (substrings,
@@ -12718,7 +12718,7 @@ convert_xref_commands (CONVERTER *self, const enum 
command_id cmd,
         }
       else if (reference)
         {
-          reference_element = new_element (ET__converted);
+          reference_element = new_text_element (ET__converted);
           text_append (&reference_element->text, reference);
 
           add_element_to_named_string_element_list (substrings,
@@ -12741,7 +12741,7 @@ convert_xref_commands (CONVERTER *self, const enum 
command_id cmd,
         }
       else if (name)
         {
-          reference_element = new_element (ET__converted);
+          reference_element = new_text_element (ET__converted);
           text_append (&reference_element->text, name);
 
           add_element_to_named_string_element_list (substrings,
@@ -12962,7 +12962,7 @@ convert_printindex_command (CONVERTER *self, const enum 
command_id cmd,
       else
         {
           char *normalized_letter;
-          ELEMENT *letter_text = new_element (ET_normal_text);
+          ELEMENT *letter_text = new_text_element (ET_normal_text);
           text_append (&letter_text->text, letter);
           normalized_letter = normalize_transliterate_texinfo (letter_text,
                                              (self->conf->TEST.o.integer > 0));
diff --git a/tp/Texinfo/XS/convert/converter.c 
b/tp/Texinfo/XS/convert/converter.c
index ec77026533..3454d5a845 100644
--- a/tp/Texinfo/XS/convert/converter.c
+++ b/tp/Texinfo/XS/convert/converter.c
@@ -339,7 +339,7 @@ float_type_number (CONVERTER *self, const ELEMENT *float_e)
 
   if (float_number)
     {
-      ELEMENT *e_number = new_element (ET_normal_text);
+      ELEMENT *e_number = new_text_element (ET_normal_text);
       text_append (&e_number->text, float_number);
       add_element_to_named_string_element_list (replaced_substrings,
                                      "float_number", e_number);
@@ -386,7 +386,7 @@ float_name_caption (CONVERTER *self, const ELEMENT *float_e)
 
   if (float_number)
     {
-      ELEMENT *e_number = new_element (ET_normal_text);
+      ELEMENT *e_number = new_text_element (ET_normal_text);
       text_append (&e_number->text, float_number);
       add_element_to_named_string_element_list (replaced_substrings,
                                      "float_number", e_number);
@@ -508,6 +508,14 @@ new_element_added (TREE_ADDED_ELEMENTS *added_elements, 
enum element_type type)
   return new;
 }
 
+ELEMENT *
+new_text_element_added (TREE_ADDED_ELEMENTS *added_elements, enum element_type 
type)
+{
+  ELEMENT *new = new_text_element (type);
+  add_to_element_list (&added_elements->added, new);
+  return new;
+}
+
 TREE_ADDED_ELEMENTS *
 table_item_content_tree (CONVERTER *self, const ELEMENT *element)
 {
@@ -623,7 +631,7 @@ comma_index_subentries_tree (const ELEMENT *current_entry,
         = lookup_extra_element (current_entry, "subentry");
       if (subentry)
         {
-          ELEMENT *separator = new_element (ET_normal_text);
+          ELEMENT *separator = new_text_element (ET_normal_text);
           text_append (&separator->text, subentry_separator);
           current_entry = subentry;
           add_to_element_list (result, separator);
diff --git a/tp/Texinfo/XS/convert/converter.h 
b/tp/Texinfo/XS/convert/converter.h
index 8c0ad8b864..44c8517c28 100644
--- a/tp/Texinfo/XS/convert/converter.h
+++ b/tp/Texinfo/XS/convert/converter.h
@@ -88,6 +88,8 @@ TREE_ADDED_ELEMENTS *new_tree_added_elements
                       (enum tree_added_elements_status status);
 ELEMENT *new_element_added (TREE_ADDED_ELEMENTS *added_elements,
                             enum element_type type);
+ELEMENT *new_text_element_added (TREE_ADDED_ELEMENTS *added_elements,
+                                 enum element_type type);
 void clear_tree_added_elements (CONVERTER *self,
                                 TREE_ADDED_ELEMENTS *tree_elements);
 void free_tree_added_elements (CONVERTER *self,
diff --git a/tp/Texinfo/XS/main/convert_to_text.c 
b/tp/Texinfo/XS/main/convert_to_text.c
index 87837668f7..0c0248d235 100644
--- a/tp/Texinfo/XS/main/convert_to_text.c
+++ b/tp/Texinfo/XS/main/convert_to_text.c
@@ -940,8 +940,8 @@ convert_to_text_internal (const ELEMENT *element, 
TEXT_OPTIONS *text_options,
       if (parsed_definition_category)
         {
           ELEMENT *converted_element = new_element (ET_NONE);
-          ELEMENT *text_colon = new_element (ET_normal_text);
-          ELEMENT *text_eol = new_element (ET_normal_text);
+          ELEMENT *text_colon = new_text_element (ET_normal_text);
+          ELEMENT *text_eol = new_text_element (ET_normal_text);
           ELEMENT *type_text_space;
           ELEMENT *args_text_space;
           add_to_contents_as_array (converted_element,
@@ -950,7 +950,7 @@ convert_to_text_internal (const ELEMENT *element, 
TEXT_OPTIONS *text_options,
           add_to_contents_as_array (converted_element, text_colon);
           if (parsed_def->type)
             {
-              type_text_space = new_element (ET_normal_text);
+              type_text_space = new_text_element (ET_normal_text);
               add_to_contents_as_array (converted_element, parsed_def->type);
               text_append (&type_text_space->text, " ");
               add_to_contents_as_array (converted_element, type_text_space);
@@ -959,7 +959,7 @@ convert_to_text_internal (const ELEMENT *element, 
TEXT_OPTIONS *text_options,
             add_to_contents_as_array (converted_element, parsed_def->name);
           if (parsed_def->args)
             {
-              args_text_space = new_element (ET_normal_text);
+              args_text_space = new_text_element (ET_normal_text);
               text_append (&args_text_space->text, " ");
               add_to_contents_as_array (converted_element, args_text_space);
               add_to_contents_as_array (converted_element, parsed_def->args);
diff --git a/tp/Texinfo/XS/main/convert_utils.c 
b/tp/Texinfo/XS/main/convert_utils.c
index af043ac45d..cdd7775e82 100644
--- a/tp/Texinfo/XS/main/convert_utils.c
+++ b/tp/Texinfo/XS/main/convert_utils.c
@@ -70,7 +70,7 @@ expand_today (OPTIONS *options)
 
   if (options->TEST.o.integer > 0)
     {
-      result = new_element (ET_normal_text);
+      result = new_text_element (ET_normal_text);
       text_append (&result->text, "a sunny day");
       return result;
     }
@@ -96,8 +96,8 @@ expand_today (OPTIONS *options)
   month_tree = gdt_tree (convert_utils_month_name[time_tm->tm_mon], 0,
                          options->documentlanguage.o.string, 0,
                          options->DEBUG.o.integer, 0);
-  day_element = new_element (ET_normal_text);
-  year_element = new_element (ET_normal_text);
+  day_element = new_text_element (ET_normal_text);
+  year_element = new_text_element (ET_normal_text);
   text_printf (&day_element->text, "%d", time_tm->tm_mday);
   text_printf (&year_element->text, "%d", year);
 
@@ -410,7 +410,7 @@ expand_verbatiminclude (ERROR_MESSAGE_LIST *error_messages,
               text = convert_to_utf8_verbatiminclude
                        (line, conversion, &current->source_info);
               free (line);
-              raw = new_element (ET_raw);
+              raw = new_text_element (ET_raw);
               text_append (&raw->text, text);
               add_to_element_contents (verbatiminclude, raw);
               free (text);
@@ -587,7 +587,7 @@ definition_category_tree (OPTIONS * options, const ELEMENT 
*current)
                              documentlanguage, substrings, 0, 0);
           /*
           result = new_element (ET_NONE);
-          ELEMENT *text_element = new_element (ET_normal_text);
+          ELEMENT *text_element = new_text_element (ET_normal_text);
           add_to_element_contents (result, category_copy);
           text_append (&text_element->text, " on ");
           add_to_element_contents (result, text_element);
@@ -626,7 +626,7 @@ definition_category_tree (OPTIONS * options, const ELEMENT 
*current)
                              documentlanguage, substrings, 0, 0);
           /*
           result = new_element (ET_NONE);
-          ELEMENT *text_element = new_element (ET_normal_text);
+          ELEMENT *text_element = new_text_element (ET_normal_text);
           add_to_element_contents (result, category_copy);
           text_append (&text_element->text, " of ");
           add_to_element_contents (result, text_element);
diff --git a/tp/Texinfo/XS/main/extra.c b/tp/Texinfo/XS/main/extra.c
index a9499ad3b6..d999d86422 100644
--- a/tp/Texinfo/XS/main/extra.c
+++ b/tp/Texinfo/XS/main/extra.c
@@ -19,7 +19,7 @@
 #include <stdio.h>
 
 #include "tree_types.h"
-/* for new_element */
+/* for new_list list_set_empty_contents */
 #include "tree.h"
 /* for fatal and directions_length */
 #include "utils.h"
diff --git a/tp/Texinfo/XS/main/manipulate_tree.c 
b/tp/Texinfo/XS/main/manipulate_tree.c
index 58ccfe6c19..ea9d16948f 100644
--- a/tp/Texinfo/XS/main/manipulate_tree.c
+++ b/tp/Texinfo/XS/main/manipulate_tree.c
@@ -161,9 +161,10 @@ copy_tree_internal (ELEMENT* current, ELEMENT *parent)
       return new;
     }
 
-  new = new_element (ET_NONE);
-  if (current->type)
-    new->type = current->type;
+  if (type_data[current->type].flags & TF_text)
+    new = new_text_element (current->type);
+  else
+    new = new_element (current->type);
 
   increase_ref_counter (current);
   add_extra_element (current, "_copy", new);
@@ -332,7 +333,7 @@ associate_info_references (ASSOCIATED_INFO *info, 
ASSOCIATED_INFO *new_info)
               ELEMENT *new_e;
               if (e->type == ET_other_text)
                 {
-                  new_e = new_element (ET_other_text);
+                  new_e = new_text_element (ET_other_text);
                   if (e->text.end > 0)
                     text_append_n (&new_e->text, e->text.text, e->text.end);
                 }
@@ -574,10 +575,10 @@ parse_node_manual (ELEMENT *node, int modify_node)
         {
           if (modify_node)
             {
-              opening_brace = new_element (ET_normal_text);
+              opening_brace = new_text_element (ET_normal_text);
               text_append_n (&opening_brace->text, "(", 1);
             }
-          new_first = new_element (ET_normal_text);
+          new_first = new_text_element (ET_normal_text);
           text_append_n (&new_first->text, first->text.text +1, 
first->text.end -1);
         }
       else
@@ -681,7 +682,8 @@ parse_node_manual (ELEMENT *node, int modify_node)
               if (p > e->text.text)
                 {
                   /* text before ), part of the manual name */
-                  ELEMENT *last_manual_element = new_element (ET_normal_text);
+                  ELEMENT *last_manual_element
+                                      = new_text_element (ET_normal_text);
                   text_append_n (&last_manual_element->text, e->text.text,
                                  p - e->text.text);
                   add_to_contents_as_array (manual, last_manual_element);
@@ -700,7 +702,7 @@ parse_node_manual (ELEMENT *node, int modify_node)
 
               if (modify_node)
                 {
-                  ELEMENT *closing_brace = new_element (ET_normal_text);
+                  ELEMENT *closing_brace = new_text_element (ET_normal_text);
                   text_append_n (&closing_brace->text, ")", 1);
                   insert_into_contents (node, closing_brace, idx++);
                   current_position
@@ -717,7 +719,7 @@ parse_node_manual (ELEMENT *node, int modify_node)
               q = p + strspn (p, whitespace_chars);
               if (q > p && modify_node)
                 {
-                  ELEMENT *spaces_element = new_element (ET_normal_text);
+                  ELEMENT *spaces_element = new_text_element (ET_normal_text);
                   text_append_n (&spaces_element->text, p, q - p);
                   insert_into_contents (node, spaces_element, idx++);
                   current_position
@@ -731,7 +733,8 @@ parse_node_manual (ELEMENT *node, int modify_node)
               if (*p)
                 {
                   /* text after ), part of the node name. */
-                  ELEMENT *leading_node_content = new_element (ET_normal_text);
+                  ELEMENT *leading_node_content
+                      = new_text_element (ET_normal_text);
                   text_append_n (&leading_node_content->text, p,
                                  e->text.text + e->text.end - p);
                   /* start node_content */
@@ -869,7 +872,7 @@ new_asis_command_with_text (const char *text, ELEMENT 
*parent,
 {
   ELEMENT *new_command = new_element (ET_NONE);
   ELEMENT *brace_command_arg = new_element (ET_brace_command_arg);
-  ELEMENT *text_elt = new_element (type);
+  ELEMENT *text_elt = new_text_element (type);
   new_command->cmd = CM_asis;
   new_command->parent = parent;
   add_to_element_args (new_command, brace_command_arg);
@@ -907,7 +910,7 @@ protect_text (ELEMENT *current, const char *to_protect)
       while (*p)
         {
           size_t leading_nr = strcspn (p, to_protect);
-          ELEMENT *text_elt = new_element (current->type);
+          ELEMENT *text_elt = new_text_element (current->type);
           text_elt->parent = current->parent;
           if (leading_nr)
             {
diff --git a/tp/Texinfo/XS/main/tree.c b/tp/Texinfo/XS/main/tree.c
index 06bef2872f..cd74289e8b 100644
--- a/tp/Texinfo/XS/main/tree.c
+++ b/tp/Texinfo/XS/main/tree.c
@@ -42,6 +42,7 @@ static int *obs_element_first = 0;
  */
 
 #include "tree_types.h"
+#include "types_data.h"
 /* for fatal */
 #include "utils.h"
 /* for debug
@@ -116,6 +117,16 @@ new_element (enum element_type type)
   return e;
 }
 
+ELEMENT *
+new_text_element (enum element_type type)
+{
+  ELEMENT *e;
+  e = alloc_element ();
+  e->type = type;
+
+  return e;
+}
+
 ELEMENT_LIST *
 new_list (void)
 {
diff --git a/tp/Texinfo/XS/main/tree.h b/tp/Texinfo/XS/main/tree.h
index 4f99b3794f..511c8f73d9 100644
--- a/tp/Texinfo/XS/main/tree.h
+++ b/tp/Texinfo/XS/main/tree.h
@@ -8,6 +8,7 @@ void reset_obstacks (void);
 
 ASSOCIATED_INFO *new_associated_info (void);
 ELEMENT *new_element (enum element_type type);
+ELEMENT *new_text_element (enum element_type type);
 ELEMENT_LIST *new_list (void);
 void add_to_element_list (ELEMENT_LIST *list, ELEMENT *e);
 void add_to_element_contents (ELEMENT *parent, ELEMENT *e);
diff --git a/tp/Texinfo/XS/parsetexi/close.c b/tp/Texinfo/XS/parsetexi/close.c
index 868f429bbe..e4dbb284aa 100644
--- a/tp/Texinfo/XS/parsetexi/close.c
+++ b/tp/Texinfo/XS/parsetexi/close.c
@@ -460,7 +460,7 @@ close_current (ELEMENT *current,
       switch (current->type)
         {
         case ET_balanced_braces:
-          close_brace = new_element (ET_normal_text);
+          close_brace = new_text_element (ET_normal_text);
           command_error (current, "misplaced {");
           /* We prefer adding an element to merging because we may
              be at the end of the document after an empty line we
diff --git a/tp/Texinfo/XS/parsetexi/def.c b/tp/Texinfo/XS/parsetexi/def.c
index fc1a87213d..b0c2dbdedd 100644
--- a/tp/Texinfo/XS/parsetexi/def.c
+++ b/tp/Texinfo/XS/parsetexi/def.c
@@ -233,7 +233,7 @@ split_delimiters (ELEMENT *current, int starting_idx)
         {
           if (strchr (chars, *p))
             {
-              new = new_element (ET_delimiter);
+              new = new_text_element (ET_delimiter);
               text_append_n (&new->text, p, 1);
 
               if (u8_text)
@@ -252,7 +252,7 @@ split_delimiters (ELEMENT *current, int starting_idx)
               continue;
             }
 
-          ELEMENT *new_text = new_element (ET_normal_text);
+          ELEMENT *new_text = new_text_element (ET_normal_text);
           len = strcspn (p, chars);
           text_append_n (&new_text->text, p, len);
 
@@ -329,12 +329,12 @@ split_def_args (ELEMENT *current, int starting_idx)
           len = strspn (p, whitespace_chars);
           if (len)
             {
-              new = new_element (ET_spaces);
+              new = new_text_element (ET_spaces);
             }
           else
             {
               len = strcspn (p, whitespace_chars);
-              new = new_element (ET_normal_text);
+              new = new_text_element (ET_normal_text);
             }
 
           text_append_n (&new->text, p, len);
@@ -392,7 +392,7 @@ parse_def (enum command_id command, ELEMENT *current)
       inserted_category = 1;
       e = new_element (ET_def_line_arg);
       insert_into_contents (current, e, contents_idx);
-      e1 = new_element (ET_normal_text);
+      e1 = new_text_element (ET_normal_text);
       text_append_n (&e1->text, category, strlen (category));
       add_to_element_contents (e, e1);
       if (global_documentlanguage && *global_documentlanguage)
@@ -406,7 +406,7 @@ parse_def (enum command_id command, ELEMENT *current)
                                   def_aliases[i].translation_context);
         }
 
-      e = new_element (ET_spaces);
+      e = new_text_element (ET_spaces);
       text_append_n (&e->text, " ", 1);
       add_info_integer (e, "inserted", 1);
       insert_into_contents (current, e, contents_idx + 1);
diff --git a/tp/Texinfo/XS/parsetexi/end_line.c 
b/tp/Texinfo/XS/parsetexi/end_line.c
index 02047c85a5..e33cf014d9 100644
--- a/tp/Texinfo/XS/parsetexi/end_line.c
+++ b/tp/Texinfo/XS/parsetexi/end_line.c
@@ -104,7 +104,7 @@ ELEMENT_LIST *
 parse_line_command_args (ELEMENT *line_command)
 {
 #define ADD_ARG(string) do { \
-    ELEMENT *E = new_element (ET_other_text); \
+    ELEMENT *E = new_text_element (ET_other_text); \
     text_append (&E->text, string); \
     add_to_element_list (line_args, E); \
 } while (0)
@@ -316,7 +316,7 @@ parse_line_command_args (ELEMENT *line_command)
               }
             else
               {
-                new = new_element (ET_other_text);
+                new = new_text_element (ET_other_text);
                 text_append_n (&new->text, p, q - p);
                 add_to_element_list (line_args, new);
               }
@@ -1875,7 +1875,7 @@ end_line (ELEMENT *current)
           add_to_element_contents (current, e);
 
           current = e;
-          e = new_element (ET_after_menu_description_line);
+          e = new_text_element (ET_after_menu_description_line);
           text_append (&e->text, empty_line->text.text);
           transfer_source_marks (empty_line, e);
           destroy_element (empty_line);
diff --git a/tp/Texinfo/XS/parsetexi/handle_commands.c 
b/tp/Texinfo/XS/parsetexi/handle_commands.c
index c92ec3db1e..02049a55e3 100644
--- a/tp/Texinfo/XS/parsetexi/handle_commands.c
+++ b/tp/Texinfo/XS/parsetexi/handle_commands.c
@@ -182,7 +182,7 @@ parse_rawline_command (const char *line, enum command_id 
cmd,
                        int *has_comment, int *special_arg)
 {
 #define ADD_ARG(string, len) do { \
-  ELEMENT *E = new_element (ET_other_text); \
+  ELEMENT *E = new_text_element (ET_other_text); \
   text_append_n (&E->text, string, len); \
   add_to_element_contents (args, E); \
 } while (0)
@@ -649,8 +649,8 @@ handle_line_command (ELEMENT *current, const char 
**line_inout,
           char *arg = 0;
           ELEMENT *line_args;
           ELEMENT *e;
-          ELEMENT *spaces_before = new_element (ET_other_text);
-          ELEMENT *spaces_after = new_element (ET_other_text);
+          ELEMENT *spaces_before = new_text_element (ET_other_text);
+          ELEMENT *spaces_after = new_text_element (ET_other_text);
           /* put in extra "misc_args" */
           ELEMENT_LIST *args_list = new_list ();
 
@@ -663,7 +663,7 @@ handle_line_command (ELEMENT *current, const char 
**line_inout,
              command and add it to the tree. */
 
           destroy_element_and_children (args);
-          e = new_element (ET_other_text);
+          e = new_text_element (ET_other_text);
           text_append (&e->text, arg);
           add_to_element_list (args_list, e);
 
@@ -682,7 +682,7 @@ handle_line_command (ELEMENT *current, const char 
**line_inout,
           add_info_element_oot (line_args, "spaces_after_argument",
                                 spaces_after);
 
-          e = new_element (ET_normal_text);
+          e = new_text_element (ET_normal_text);
           text_append (&e->text, arg);
           add_to_element_contents (line_args, e);
 
diff --git a/tp/Texinfo/XS/parsetexi/indices.c 
b/tp/Texinfo/XS/parsetexi/indices.c
index 1b20615519..a7eb7c5585 100644
--- a/tp/Texinfo/XS/parsetexi/indices.c
+++ b/tp/Texinfo/XS/parsetexi/indices.c
@@ -290,7 +290,7 @@ enter_index_entry (enum command_id index_type_cmd,
     /* 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);
+    ELEMENT *e = new_text_element (ET_other_text);
     text_append (&e->text, idx->name);
     add_to_element_list (index_entry, e);
     e = new_element (ET_NONE);
@@ -431,7 +431,7 @@ complete_indices (DOCUMENT *document, int debug_level)
                       ELEMENT *index_entry;
                   /* container without type in extra "def_index_ref_element" */
                       ELEMENT *index_entry_normalized = new_element (ET_NONE);
-                      ELEMENT *text_element = new_element (ET_normal_text);
+                      ELEMENT *text_element = new_text_element 
(ET_normal_text);
                       enum command_id def_command
                         = lookup_command (def_cmdname);
                       NAMED_STRING_ELEMENT_LIST *substrings
diff --git a/tp/Texinfo/XS/parsetexi/macro.c b/tp/Texinfo/XS/parsetexi/macro.c
index e354371e60..6bf2a44c66 100644
--- a/tp/Texinfo/XS/parsetexi/macro.c
+++ b/tp/Texinfo/XS/parsetexi/macro.c
@@ -162,7 +162,7 @@ parse_macro_command_line (enum command_id cmd, const char 
**line_inout,
 
   debug ("MACRO @%s %s", command_name (cmd), name);
 
-  macro_name = new_element (ET_macro_name);
+  macro_name = new_text_element (ET_macro_name);
   text_append (&macro_name->text, name);
   free (name);
   add_to_element_args (macro, macro_name);
@@ -211,7 +211,7 @@ parse_macro_command_line (enum command_id cmd, const char 
**line_inout,
             {
               line_error ("bad or empty @%s formal argument: ",
                           command_name(cmd));
-              arg = new_element (ET_macro_arg);
+              arg = new_text_element (ET_macro_arg);
               add_to_element_args (macro, arg);
               text_append_n (&arg->text, "", 0);
               add_extra_integer (macro, "invalid_syntax", 1);
@@ -219,7 +219,7 @@ parse_macro_command_line (enum command_id cmd, const char 
**line_inout,
         }
       else
         {
-          arg = new_element (ET_macro_arg);
+          arg = new_text_element (ET_macro_arg);
           text_append_n (&arg->text, args_ptr, q2 - args_ptr);
           add_to_element_args (macro, arg);
 
@@ -312,7 +312,7 @@ expand_macro_arguments (const ELEMENT *macro, const char 
**line_inout,
   int args_total;
   int whitespaces_len;
   ELEMENT *argument = new_element (ET_brace_command_arg);
-  ELEMENT *argument_content = new_element (ET_other_text);
+  ELEMENT *argument_content = new_text_element (ET_other_text);
 
   add_to_element_args (current, argument);
   text_append_n (&argument_content->text, "", 0);
@@ -326,7 +326,7 @@ expand_macro_arguments (const ELEMENT *macro, const char 
**line_inout,
   whitespaces_len = strspn (pline, whitespace_chars);
   if (whitespaces_len > 0)
     {
-      ELEMENT *spaces_element = new_element (ET_other_text);
+      ELEMENT *spaces_element = new_text_element (ET_other_text);
       text_append_n (&spaces_element->text, pline, whitespaces_len);
       add_info_element_oot (current, "spaces_before_argument",
                             spaces_element);
@@ -401,8 +401,8 @@ expand_macro_arguments (const ELEMENT *macro, const char 
**line_inout,
                   remove_empty_content (argument);
 
                   /* new argument */
-                  argument = new_element (ET_brace_command_arg);
-                  argument_content = new_element (ET_other_text);
+                  argument = new_text_element (ET_brace_command_arg);
+                  argument_content = new_text_element (ET_other_text);
                   add_to_element_args (current, argument);
                   text_append_n (&argument_content->text, "", 0);
                   add_to_element_contents (argument, argument_content);
@@ -410,7 +410,7 @@ expand_macro_arguments (const ELEMENT *macro, const char 
**line_inout,
                   pline += strspn (pline, whitespace_chars);
                   if (pline - p)
                     {
-                      ELEMENT *spaces_element = new_element (ET_other_text);
+                      ELEMENT *spaces_element = new_text_element 
(ET_other_text);
                       text_append_n (&spaces_element->text, p, pline - p);
                       add_info_element_oot (argument, "spaces_before_argument",
                                             spaces_element);
@@ -467,7 +467,7 @@ expand_linemacro_arguments (const ELEMENT *macro, const 
char **line_inout,
   int spaces_nr;
   int i;
   ELEMENT *argument = new_element (ET_NONE);
-  ELEMENT *argument_content = new_element (ET_other_text);
+  ELEMENT *argument_content = new_text_element (ET_other_text);
   counter_reset (&count_toplevel_braces, 0);
   counter_push (&count_toplevel_braces, argument_content, 0);
 
@@ -479,7 +479,7 @@ expand_linemacro_arguments (const ELEMENT *macro, const 
char **line_inout,
   spaces_nr = strspn (pline, whitespace_chars_except_newline);
   if (spaces_nr)
     {
-      ELEMENT *spaces_element = new_element (ET_other_text);
+      ELEMENT *spaces_element = new_text_element (ET_other_text);
       text_append_n (&spaces_element->text, line, spaces_nr);
       add_info_element_oot (argument, "spaces_before_argument",
                             spaces_element);
@@ -599,13 +599,13 @@ expand_linemacro_arguments (const ELEMENT *macro, const 
char **line_inout,
             }
           else
             {
-              ELEMENT *spaces_element = new_element (ET_other_text);
+              ELEMENT *spaces_element = new_text_element (ET_other_text);
 
               set_toplevel_braces_nr (&count_toplevel_braces,
                                       argument_content);
 
               argument = new_element (ET_NONE);
-              argument_content = new_element (ET_other_text);
+              argument_content = new_text_element (ET_other_text);
               counter_push (&count_toplevel_braces, argument_content, 0);
 
               add_to_element_args (current, argument);
@@ -857,7 +857,7 @@ handle_macro (ELEMENT *current, const char **line_inout, 
enum command_id cmd)
         {
           if (p - line > 0)
             {
-              ELEMENT *spaces_element = new_element (ET_other_text);
+              ELEMENT *spaces_element = new_text_element (ET_other_text);
               text_append_n (&spaces_element->text, line, p - line);
               add_info_element_oot (macro_call_element, 
"spaces_after_cmd_before_arg",
                                     spaces_element);
@@ -904,7 +904,7 @@ handle_macro (ELEMENT *current, const char **line_inout, 
enum command_id cmd)
                       if (leading_spaces_nr)
                         {
                           ELEMENT *internal_space
-                            = new_element (ET_internal_spaces_before_argument);
+                            = new_text_element 
(ET_internal_spaces_before_argument);
                           text_append_n (&internal_space->text, line,
                                          leading_spaces_nr);
                           internal_space_holder = macro_call_element;
diff --git a/tp/Texinfo/XS/parsetexi/menus.c b/tp/Texinfo/XS/parsetexi/menus.c
index e8bd762b08..45acee1edd 100644
--- a/tp/Texinfo/XS/parsetexi/menus.c
+++ b/tp/Texinfo/XS/parsetexi/menus.c
@@ -134,7 +134,7 @@ handle_menu_entry_separators (ELEMENT **current_inout, 
const char **line_inout)
       abort_empty_line (&current);
       line++; /* Past the '*'. */
 
-      star = new_element (ET_internal_menu_star);
+      star = new_text_element (ET_internal_menu_star);
       text_append (&star->text, "*");
       add_to_element_contents (current, star);
 
@@ -176,7 +176,7 @@ handle_menu_entry_separators (ELEMENT **current_inout, 
const char **line_inout)
         }
 
       menu_entry = new_element (ET_menu_entry);
-      leading_text = new_element (ET_menu_entry_leading_text);
+      leading_text = new_text_element (ET_menu_entry_leading_text);
       /* transfer source marks from removed menu star to leading text */
       transfer_source_marks (menu_star_element, leading_text);
       destroy_element (menu_star_element);
@@ -211,7 +211,7 @@ handle_menu_entry_separators (ELEMENT **current_inout, 
const char **line_inout)
       line++;
 
       current = current->parent;
-      e = new_element (ET_menu_entry_separator);
+      e = new_text_element (ET_menu_entry_separator);
       text_append_n (&e->text, &menu_separator, 1);
       add_to_element_contents (current, e);
 
diff --git a/tp/Texinfo/XS/parsetexi/parser.c b/tp/Texinfo/XS/parsetexi/parser.c
index 3980fc27ec..4b1671de19 100644
--- a/tp/Texinfo/XS/parsetexi/parser.c
+++ b/tp/Texinfo/XS/parsetexi/parser.c
@@ -525,7 +525,7 @@ parse_texi_document (void)
       if (!preamble_before_beginning)
         preamble_before_beginning = new_element (ET_preamble_before_beginning);
 
-      l = new_element (ET_text_before_beginning);
+      l = new_text_element (ET_text_before_beginning);
       text_append (&l->text, line);
       add_to_element_contents (preamble_before_beginning, l);
     }
@@ -771,7 +771,7 @@ merge_text (ELEMENT *current, const char *text, size_t 
len_text,
   else
     {
      new_text:
-      ELEMENT *e = new_element (ET_normal_text);
+      ELEMENT *e = new_text_element (ET_normal_text);
       if (transfer_marks_element)
         transfer_source_marks (transfer_marks_element, e);
       text_append_n (&e->text, text, len_text);
@@ -882,7 +882,7 @@ isolate_last_space_internal (ELEMENT *current, ELEMENT 
*last_elt)
   else
     {
       int i, trailing_spaces;
-      ELEMENT *spaces_element = new_element (ET_other_text);
+      ELEMENT *spaces_element = new_text_element (ET_other_text);
 
       trailing_spaces = 0;
       for (i = text_len - 1;
@@ -936,7 +936,7 @@ isolate_trailing_space (ELEMENT *current, ELEMENT *last_elt,
 
       if (trailing_spaces)
         {
-          new_spaces = new_element (spaces_type);
+          new_spaces = new_text_element (spaces_type);
           text_append_n (&new_spaces->text,
                          text + text_len - trailing_spaces,
                          trailing_spaces);
@@ -1021,7 +1021,7 @@ start_empty_line_after_command (ELEMENT *current, const 
char **line_inout,
   int len;
 
   len = strspn (line, whitespace_chars_except_newline);
-  e = new_element (ET_ignorable_spaces_after_command);
+  e = new_text_element (ET_ignorable_spaces_after_command);
   add_to_element_contents (current, e);
   text_append_n (&e->text, line, len);
   line += len;
@@ -1101,7 +1101,7 @@ new_value_element (enum command_id cmd, const char *flag,
   ELEMENT *value_elt = new_element (ET_NONE);
   ELEMENT *brace_command_arg = new_element (ET_brace_command_arg);
   /* occasionnally considered as text in conversion, so make it normal text */
-  ELEMENT *value_text = new_element (ET_normal_text);
+  ELEMENT *value_text = new_text_element (ET_normal_text);
 
   value_elt->cmd = cmd;
 
@@ -1464,7 +1464,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
                     {
                       ELEMENT *e;
                       int n = strspn (line, whitespace_chars);
-                      e = new_element (ET_raw);
+                      e = new_text_element (ET_raw);
                       text_append_n (&e->text, line, n);
                       add_to_element_contents (current, e);
                       line += n;
@@ -1518,7 +1518,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
               an empty line will not appear in the output, but it is needed to
               avoid a duplicate warning on @end not appearing at the beginning
               of the line */
-                  e = new_element (ET_empty_line);
+                  e = new_text_element (ET_empty_line);
                   add_to_element_contents (current, e);
 
                   closed_nested_raw = 1;
@@ -1534,7 +1534,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
       if (! closed_nested_raw)
         {
           ELEMENT *e;
-          e = new_element (ET_raw);
+          e = new_text_element (ET_raw);
           text_append (&e->text, line);
           add_to_element_contents (current, e);
 
@@ -1588,7 +1588,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
             {
               ELEMENT *e;
               int n = strspn (line, whitespace_chars);
-              e = new_element (ET_raw);
+              e = new_text_element (ET_raw);
               text_append_n (&e->text, line, n);
               add_to_element_contents (current, e);
               line += n;
@@ -1598,12 +1598,12 @@ process_remaining_on_line (ELEMENT **current_inout, 
const char **line_inout)
 
           debug ("CLOSED conditional %s", command_name(end_cmd));
 
-          e = new_element (ET_empty_line);
+          e = new_text_element (ET_empty_line);
           add_to_element_contents (current, e);
         }
       else
         {
-          ELEMENT *e = new_element (ET_raw);
+          ELEMENT *e = new_text_element (ET_raw);
           text_append (&(e->text), line);
           add_to_element_contents (current, e);
           retval = GET_A_NEW_LINE;
@@ -1642,7 +1642,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
           /* Save up to the delimiter character. */
           if (q != line)
             {
-              ELEMENT *e = new_element (ET_raw);
+              ELEMENT *e = new_text_element (ET_raw);
               text_append_n (&e->text, line, q - line);
               add_to_element_contents (current, e);
             }
@@ -1653,7 +1653,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
       else
         {
           /* Save the rest of line. */
-          ELEMENT *e = new_element (ET_raw);
+          ELEMENT *e = new_text_element (ET_raw);
           text_append (&e->text, line);
           add_to_element_contents (current, e);
 
@@ -1694,7 +1694,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
                 }
               else
                 {
-                  ELEMENT *raw_text = new_element (ET_raw);
+                  ELEMENT *raw_text = new_text_element (ET_raw);
                   text_append (&(raw_text->text), line);
                   add_to_element_contents (e_elided_rawpreformatted, raw_text);
                 }
@@ -1705,7 +1705,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
       /* start a new line for the @end line, this is normally done
          at the beginning of a line, but not here, as we directly
          got the lines. */
-      e_empty_line = new_element (ET_empty_line);
+      e_empty_line = new_text_element (ET_empty_line);
       add_to_element_contents (current, e_empty_line);
 
       n = strspn (line, whitespace_chars_except_newline);
@@ -1815,7 +1815,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
           if (whitespaces_len > 0)
             {
               /* special text in "spaces_after_cmd_before_arg" */
-              spaces_element = new_element (ET_other_text);
+              spaces_element = new_text_element (ET_other_text);
               text_append_n (&(spaces_element->text),
                              remaining_line, whitespaces_len);
               remaining_line += whitespaces_len;
@@ -2028,7 +2028,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
            if (current->contents.number == 0)
              {
                ELEMENT *e_spaces_after_cmd_before_arg
-                 = new_element (ET_internal_spaces_after_cmd_before_arg);
+                 = new_text_element (ET_internal_spaces_after_cmd_before_arg);
                text_append_n (&(e_spaces_after_cmd_before_arg->text),
                               line, whitespaces_len);
                add_to_element_contents (current, 
e_spaces_after_cmd_before_arg);
@@ -2084,7 +2084,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
           while ((line[char_len] & 0xC0) == 0x80)
             char_len++;
 
-          e2 = new_element (ET_normal_text);
+          e2 = new_text_element (ET_normal_text);
           text_append_n (&e2->text, line, char_len);
           debug ("ACCENT @%s following_arg: %s", command_name(current->cmd),
                  e2->text.text);
@@ -2136,7 +2136,7 @@ process_remaining_on_line (ELEMENT **current_inout, const 
char **line_inout)
               if (whitespaces_len > 0)
                 {
                   /* special text in "spaces_after_cmd_before_arg" */
-                  spaces_element = new_element (ET_other_text);
+                  spaces_element = new_text_element (ET_other_text);
                   text_append_n (&(spaces_element->text),
                                  line, whitespaces_len);
                   line += whitespaces_len;
@@ -2414,10 +2414,10 @@ process_remaining_on_line (ELEMENT **current_inout, 
const char **line_inout)
 
           /* A form feed stops and restarts a paragraph. */
           current = end_paragraph (current, 0, 0);
-          e = new_element (ET_empty_line);
+          e = new_text_element (ET_empty_line);
           text_append_n (&e->text, "\f", 1);
           add_to_element_contents (current, e);
-          e = new_element (ET_empty_line);
+          e = new_text_element (ET_empty_line);
           add_to_element_contents (current, e);
         }
       else
@@ -2543,7 +2543,7 @@ parse_texi (ELEMENT *root_elt, ELEMENT *current_elt)
               abort_empty_line (&current);
             }
 
-          e = new_element (ET_empty_line);
+          e = new_text_element (ET_empty_line);
           add_to_element_contents (current, e);
 
           n = strspn (line, whitespace_chars_except_newline);
@@ -2622,7 +2622,7 @@ parse_texi (ELEMENT *root_elt, ELEMENT *current_elt)
         if (!allocated_line)
           break; /* Out of input. */
 
-        e = new_element (ET_text_after_end);
+        e = new_text_element (ET_text_after_end);
         text_append (&e->text, line);
         add_to_element_contents (element_after_bye, e);
       }
diff --git a/tp/Texinfo/XS/parsetexi/separator.c 
b/tp/Texinfo/XS/parsetexi/separator.c
index c0576f888d..f15c0b4bd2 100644
--- a/tp/Texinfo/XS/parsetexi/separator.c
+++ b/tp/Texinfo/XS/parsetexi/separator.c
@@ -167,7 +167,7 @@ handle_open_brace (ELEMENT *current, const char 
**line_inout)
             ELEMENT *e;
             int n;
             n = strspn (line, whitespace_chars_except_newline);
-            e = new_element (ET_internal_spaces_before_argument);
+            e = new_text_element (ET_internal_spaces_before_argument);
             text_append_n (&e->text, line, n);
             add_to_element_contents (current, e);
             internal_space_holder = current->parent;
@@ -185,7 +185,7 @@ handle_open_brace (ELEMENT *current, const char 
**line_inout)
               || command_data(command).data == BRACE_inline)
             {
               ELEMENT *e;
-              e = new_element (ET_internal_spaces_before_argument);
+              e = new_text_element (ET_internal_spaces_before_argument);
               /* See comment in parser.c:merge_text */
               text_append (&e->text, "");
               add_to_element_contents (current, e);
@@ -215,7 +215,7 @@ handle_open_brace (ELEMENT *current, const char 
**line_inout)
          end of the line and also for misplaced { errors.  */
       current->source_info = current_source_info;
 
-      e = new_element (ET_internal_spaces_before_argument);
+      e = new_text_element (ET_internal_spaces_before_argument);
       text_append (&e->text, ""); /* See comment in parser.c:merge_text */
       add_to_element_contents (current, e);
       debug ("BRACKETED in def/multitable");
@@ -235,7 +235,7 @@ handle_open_brace (ELEMENT *current, const char 
**line_inout)
            || current_context () == ct_inlineraw)
     {
       ELEMENT *b = new_element (ET_balanced_braces);
-      ELEMENT *open_brace = new_element (ET_normal_text);
+      ELEMENT *open_brace = new_text_element (ET_normal_text);
       abort_empty_line (&current);
       b->source_info = current_source_info;
       add_to_element_contents (current, b);
@@ -583,7 +583,7 @@ handle_close_brace (ELEMENT *current, const char 
**line_inout)
           || current->parent->cmd == CM_seealso)
         {
           ELEMENT *e;
-          e = new_element (ET_spaces_after_close_brace);
+          e = new_text_element (ET_spaces_after_close_brace);
           text_append (&e->text, "");
           add_to_element_contents (current->parent->parent, e);
         }
@@ -687,7 +687,7 @@ handle_comma (ELEMENT *current, const char **line_inout)
 
               e = new_element (ET_elided_brace_command_arg);
               add_to_element_args (current, e);
-              arg = new_element (ET_raw);
+              arg = new_text_element (ET_raw);
               text_append (&arg->text, "");
               add_to_element_contents (e, arg);
 
@@ -759,7 +759,7 @@ handle_comma (ELEMENT *current, const char **line_inout)
 
           e = new_element (ET_elided_brace_command_arg);
           add_to_element_args (current, e);
-          arg = new_element (ET_raw);
+          arg = new_text_element (ET_raw);
           text_append (&arg->text, "");
           add_to_element_contents (e, arg);
 
@@ -802,7 +802,7 @@ handle_comma (ELEMENT *current, const char **line_inout)
   new_arg = new_element (type);
   add_to_element_args (current, new_arg);
   current = new_arg;
-  e = new_element (ET_internal_spaces_before_argument);
+  e = new_text_element (ET_internal_spaces_before_argument);
   text_append (&e->text, ""); /* See comment in parser.c:merge_text */
   add_to_element_contents (current, e);
   internal_space_holder = current;
diff --git a/tp/Texinfo/XS/parsetexi/source_marks.c 
b/tp/Texinfo/XS/parsetexi/source_marks.c
index ff0fef86d2..33723b8760 100644
--- a/tp/Texinfo/XS/parsetexi/source_marks.c
+++ b/tp/Texinfo/XS/parsetexi/source_marks.c
@@ -71,7 +71,7 @@ place_source_mark (ELEMENT *e, SOURCE_MARK *source_mark)
   else
     {
       /* add an empty element used for source marks */
-      mark_element = new_element (ET_normal_text);
+      mark_element = new_text_element (ET_normal_text);
       /* set empty text to have merge_text work as expected */
       text_append (&mark_element->text, "");
       add_to_element_contents (e, mark_element);
diff --git a/tp/Texinfo/XS/structuring_transfo/structuring.c 
b/tp/Texinfo/XS/structuring_transfo/structuring.c
index c8d5e8c13c..2acf26904e 100644
--- a/tp/Texinfo/XS/structuring_transfo/structuring.c
+++ b/tp/Texinfo/XS/structuring_transfo/structuring.c
@@ -48,12 +48,12 @@ void
 new_block_command (ELEMENT *element, enum command_id cmd)
 {
   ELEMENT *args = new_element (ET_block_line_arg);
-  ELEMENT *arg_spaces_after = new_element (ET_other_text);
+  ELEMENT *arg_spaces_after = new_text_element (ET_other_text);
   ELEMENT *end = new_element (ET_NONE);
   ELEMENT *end_args = new_element (ET_line_arg);
-  ELEMENT *end_spaces_before = new_element (ET_other_text);
-  ELEMENT *end_spaces_after = new_element (ET_other_text);
-  ELEMENT *command_name_text = new_element (ET_normal_text);
+  ELEMENT *end_spaces_before = new_text_element (ET_other_text);
+  ELEMENT *end_spaces_after = new_text_element (ET_other_text);
+  ELEMENT *command_name_text = new_text_element (ET_normal_text);
   const char *command_name = builtin_command_name (cmd);
 
   element->cmd = cmd;
@@ -1740,19 +1740,19 @@ new_node_menu_entry (const ELEMENT *node, int 
use_sections)
   description = new_element (ET_menu_entry_description);
   preformatted = new_element (ET_preformatted);
   add_to_element_contents (description, preformatted);
-  description_text = new_element (ET_normal_text);
+  description_text = new_text_element (ET_normal_text);
   text_append (&description_text->text, "\n");
   add_to_element_contents (preformatted, description_text);
 
-  menu_entry_leading_text = new_element (ET_menu_entry_leading_text);
+  menu_entry_leading_text = new_text_element (ET_menu_entry_leading_text);
   text_append (&menu_entry_leading_text->text, "* ");
 
   add_to_element_contents (entry, menu_entry_leading_text);
 
   if (use_sections)
     {
-      ELEMENT *menu_entry_separator = new_element (ET_menu_entry_separator);
-      ELEMENT *menu_entry_after_node = new_element (ET_menu_entry_separator);
+      ELEMENT *menu_entry_separator = new_text_element 
(ET_menu_entry_separator);
+      ELEMENT *menu_entry_after_node = new_text_element 
(ET_menu_entry_separator);
       text_append (&menu_entry_separator->text, ": ");
       text_append (&menu_entry_after_node->text, ".");
       add_to_element_contents (entry, menu_entry_name);
@@ -1762,7 +1762,7 @@ new_node_menu_entry (const ELEMENT *node, int 
use_sections)
     }
   else
     {
-      ELEMENT *menu_entry_separator = new_element (ET_menu_entry_separator);
+      ELEMENT *menu_entry_separator = new_text_element 
(ET_menu_entry_separator);
       add_to_element_contents (entry, menu_entry_node);
       text_append (&menu_entry_separator->text, "::");
       add_to_element_contents (entry, menu_entry_separator);
@@ -1803,8 +1803,8 @@ insert_menu_comment_content (ELEMENT_LIST *element_list, 
int position,
 {
   ELEMENT *menu_comment = new_element (ET_menu_comment);
   ELEMENT *preformatted = new_element (ET_preformatted);
-  ELEMENT *empty_line_first_after = new_element (ET_empty_line);
-  ELEMENT *empty_line_second_after = new_element (ET_empty_line);
+  ELEMENT *empty_line_first_after = new_text_element (ET_empty_line);
+  ELEMENT *empty_line_second_after = new_text_element (ET_empty_line);
   int index_in_preformatted = 0;
   int i;
 
@@ -1812,7 +1812,7 @@ insert_menu_comment_content (ELEMENT_LIST *element_list, 
int position,
 
   if (!no_leading_empty_line)
     {
-      ELEMENT *empty_line_before = new_element (ET_empty_line);
+      ELEMENT *empty_line_before = new_text_element (ET_empty_line);
       text_append (&empty_line_before->text, "\n");
       add_to_element_contents (preformatted, empty_line_before);
       index_in_preformatted = 1;
@@ -2135,7 +2135,7 @@ new_detailmenu (ERROR_MESSAGE_LIST *error_messages,
   if (new_detailmenu_e->contents.number > 0)
     {
       int i;
-      ELEMENT *new_line = new_element (ET_normal_text);
+      ELEMENT *new_line = new_text_element (ET_normal_text);
     /* There is a menu comment with a preformatted added in front of each
        detailed menu section with the node section name */
       ELEMENT *first_preformatted
@@ -2163,7 +2163,7 @@ new_detailmenu (ERROR_MESSAGE_LIST *error_messages,
         }
       else
         {
-          ELEMENT *master_menu_title_string = new_element (ET_normal_text);
+          ELEMENT *master_menu_title_string = new_text_element 
(ET_normal_text);
           text_append (&master_menu_title_string->text,
                        " --- The Detailed Node Listing ---");
           master_menu_title_string->parent = first_preformatted;
@@ -2212,7 +2212,7 @@ new_complete_menu_master_menu (ERROR_MESSAGE_LIST 
*error_messages,
               ELEMENT *menu_comment = new_element (ET_menu_comment);
               ELEMENT *preformatted = new_element (ET_preformatted);
               ELEMENT *empty_line
-                 = new_element (ET_after_menu_description_line);
+                 = new_text_element (ET_after_menu_description_line);
 
               add_to_element_contents (menu_node, menu_comment);
               add_to_element_contents (menu_comment, preformatted);
diff --git a/tp/Texinfo/XS/structuring_transfo/transformations.c 
b/tp/Texinfo/XS/structuring_transfo/transformations.c
index f2eb59f41c..5ee7aa59a5 100644
--- a/tp/Texinfo/XS/structuring_transfo/transformations.c
+++ b/tp/Texinfo/XS/structuring_transfo/transformations.c
@@ -183,7 +183,7 @@ correct_level (ELEMENT *section, ELEMENT *parent, int 
modifier)
       while (remaining_level > 0)
         {
           ELEMENT *element = new_element (ET_NONE);
-          ELEMENT *rawline_arg = new_element (ET_rawline_arg);
+          ELEMENT *rawline_arg = new_text_element (ET_rawline_arg);
 
           element->cmd = cmd;
           add_to_element_contents (parent, element);
@@ -242,10 +242,11 @@ fill_gaps_in_sectioning (ELEMENT *root, ELEMENT 
*commands_heading_content)
             {
               ELEMENT *line_content;
               ELEMENT *new_section = new_element (ET_NONE);
-              ELEMENT *spaces_before_argument = new_element (ET_other_text);
+              ELEMENT *spaces_before_argument
+                 = new_text_element (ET_other_text);
               ELEMENT *line_arg = new_element (ET_line_arg);
-              ELEMENT *spaces_after_argument = new_element (ET_other_text);
-              ELEMENT *empty_line = new_element (ET_empty_line);
+              ELEMENT *spaces_after_argument = new_text_element 
(ET_other_text);
+              ELEMENT *empty_line = new_text_element (ET_empty_line);
 
               current_section_level++;
               new_section->cmd
@@ -402,7 +403,7 @@ relate_index_entries_to_table_items_in (ELEMENT *table,
               if (item && entry_idx_info)
                 {
                   ELEMENT_LIST *index_entry_command = new_list ();
-                  ELEMENT *e = new_element (ET_other_text);
+                  ELEMENT *e = new_text_element (ET_other_text);
                  /*
                   This is better than overwriting 'entry_element', which
                   holds important information.
@@ -581,7 +582,7 @@ new_node (ERROR_MESSAGE_LIST *error_messages, ELEMENT 
*node_tree,
 
   if (node_tree->contents.number <= 0)
     {
-      ELEMENT *empty_text = new_element (ET_normal_text);
+      ELEMENT *empty_text = new_text_element (ET_normal_text);
       text_append (&empty_text->text, "");
       add_to_element_contents (node_tree, empty_text);
       empty_node = 1;
@@ -624,8 +625,8 @@ new_node (ERROR_MESSAGE_LIST *error_messages, ELEMENT 
*node_tree,
       ELEMENT *target = 0;
       ELEMENT *appended_text = 0;
       ELEMENT *node_line_arg = new_element (ET_line_arg);
-      ELEMENT *spaces_before = new_element (ET_other_text);
-      ELEMENT *spaces_after = new_element (ET_other_text);
+      ELEMENT *spaces_before = new_text_element (ET_other_text);
+      ELEMENT *spaces_after = new_text_element (ET_other_text);
 
       node = new_element (ET_NONE);
       node->cmd = CM_node;
@@ -646,7 +647,7 @@ new_node (ERROR_MESSAGE_LIST *error_messages, ELEMENT 
*node_tree,
 
       if (appended_number)
         {
-          appended_text = new_element (ET_normal_text);
+          appended_text = new_text_element (ET_normal_text);
           text_printf (&appended_text->text, " %d", appended_number);
           add_to_element_contents (node_line_arg, appended_text);
         }
@@ -785,8 +786,8 @@ insert_nodes_for_sectioning_commands (DOCUMENT *document)
 
               if (content->cmd == CM_top)
                 {
-                  ELEMENT *top_node_text = new_element (ET_normal_text);
-                  new_node_tree = new_element (ET_normal_text);
+                  ELEMENT *top_node_text = new_text_element (ET_normal_text);
+                  new_node_tree = new_text_element (ET_normal_text);
                   text_append (&top_node_text->text, "Top");
                   add_to_element_contents (new_node_tree, top_node_text);
                 }
@@ -915,7 +916,7 @@ void
 prepend_new_menu_in_node_section (ELEMENT *node, ELEMENT *section,
                                   ELEMENT *current_menu)
 {
-  ELEMENT *empty_line = new_element (ET_empty_line);
+  ELEMENT *empty_line = new_text_element (ET_empty_line);
   ELEMENT_LIST *menus = add_extra_contents (node, "menus", 0);
 
   add_to_element_contents (section, current_menu);
@@ -1241,7 +1242,7 @@ regenerate_master_menu (DOCUMENT *document, int 
use_sections)
 
       if (preformatted)
         {
-          ELEMENT *empty_line = new_element (ET_empty_line);
+          ELEMENT *empty_line = new_text_element (ET_empty_line);
           text_append (&empty_line->text, "\n");
           add_to_element_contents (preformatted, empty_line);
         }
@@ -1251,7 +1252,8 @@ regenerate_master_menu (DOCUMENT *document, int 
use_sections)
         there is a last menu entry, add a menu comment containing an empty line
         after it
          */
-          ELEMENT *after_line = new_element (ET_after_menu_description_line);
+          ELEMENT *after_line
+              = new_text_element (ET_after_menu_description_line);
           ELEMENT *menu_comment = new_element (ET_menu_comment);
           insert_into_contents (last_menu, menu_comment, index);
           index++;
@@ -1350,7 +1352,8 @@ protect_hashchar_at_line_beginning_internal (const char 
*type,
                           char *current_text = strdup (current->text.text);
                           char *p = current_text;
                           size_t leading_spaces_nr;
-                          ELEMENT *leading_spaces = new_element 
(ET_normal_text);
+                          ELEMENT *leading_spaces
+                               = new_text_element (ET_normal_text);
                           ELEMENT *hashchar = new_element (ET_NONE);
                           ELEMENT *arg = new_element (ET_brace_command_arg);
                           /* count UTF-8 encoded Unicode characters for



reply via email to

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