[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: * tp/Texinfo/XS/main/tree_types.h (ELEMENT): add
From: |
Patrice Dumas |
Subject: |
branch master updated: * tp/Texinfo/XS/main/tree_types.h (ELEMENT): add a counter in element. |
Date: |
Sun, 29 Sep 2024 04:34:05 -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 4d2476cb9e * tp/Texinfo/XS/main/tree_types.h (ELEMENT): add a counter
in element.
4d2476cb9e is described below
commit 4d2476cb9e36ffafa59a88d827ec5bfbc57cfd5d
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sat Jun 8 23:48:58 2024 +0200
* tp/Texinfo/XS/main/tree_types.h (ELEMENT): add a counter in element.
* tp/Texinfo/XS/main/manipulate_tree.c (copy_tree_internal)
(get_copy_ref, associate_info_references): use element counter instead
of "_counter" extra information.
* tp/Texinfo/XS/parsetexi/macro.c (expand_linemacro_arguments): use
the element counter to count the top level matching braces. Remove
set_toplevel_braces_nr and count_toplevel_braces.
---
ChangeLog | 12 ++++++++
tp/Texinfo/XS/main/manipulate_tree.c | 20 +++----------
tp/Texinfo/XS/main/tree_types.h | 1 +
tp/Texinfo/XS/parsetexi/macro.c | 55 ++++++++++--------------------------
4 files changed, 32 insertions(+), 56 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b10a5a188a..51be5e3f3d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,18 @@
tp/Texinfo/XS/structuring_transfo/structuring.c (new_node_menu_entry):
use the union e name.
+2024-06-08 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/XS/main/tree_types.h (ELEMENT): add a counter in element.
+
+ * tp/Texinfo/XS/main/manipulate_tree.c (copy_tree_internal)
+ (get_copy_ref, associate_info_references): use element counter instead
+ of "_counter" extra information.
+
+ * tp/Texinfo/XS/parsetexi/macro.c (expand_linemacro_arguments): use
+ the element counter to count the top level matching braces. Remove
+ set_toplevel_braces_nr and count_toplevel_braces.
+
2024-06-08 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (setup_info_hv)
diff --git a/tp/Texinfo/XS/main/manipulate_tree.c
b/tp/Texinfo/XS/main/manipulate_tree.c
index f4559cdf32..b5a74eae6b 100644
--- a/tp/Texinfo/XS/main/manipulate_tree.c
+++ b/tp/Texinfo/XS/main/manipulate_tree.c
@@ -42,15 +42,7 @@ copy_tree_internal (ELEMENT* current, ELEMENT *parent);
void
increase_ref_counter (ELEMENT *element)
{
- KEY_PAIR *k_counter;
- int *counter_ptr;
-
- k_counter = lookup_extra_by_index (element, "_counter", -1);
- if (!k_counter)
- add_extra_integer (element, "_counter", 0);
- k_counter = lookup_extra_by_index (element, "_counter", -1);
- counter_ptr = &k_counter->k.integer;
- (*counter_ptr) ++;
+ element->counter++;
}
ELEMENT *
@@ -244,13 +236,11 @@ get_copy_ref (ELEMENT *element)
k_copy = lookup_extra_by_index (element, "_copy", -1);
result = k_copy->k.element;
- k_counter = lookup_extra_by_index (element, "_counter", -2);
- counter_ptr = &k_counter->k.integer;
- (*counter_ptr) --;
+ element->counter--;
- if (*counter_ptr == 0)
+ if (element->counter == 0)
{
- element->extra_info.info_number -= 2;
+ element->extra_info.info_number -= 1;
}
return result;
@@ -353,8 +343,6 @@ associate_info_references (ASSOCIATED_INFO *info,
ASSOCIATED_INFO *new_info)
break;
}
case extra_integer:
- if (!strcmp (key, "_counter"))
- break;
{ /* A simple integer. */
KEY_PAIR *k = get_associated_info_key (new_info, key, k_ref->type);
k->k.integer = k_ref->k.integer;
diff --git a/tp/Texinfo/XS/main/tree_types.h b/tp/Texinfo/XS/main/tree_types.h
index 45c0cb095e..d115fc0d11 100644
--- a/tp/Texinfo/XS/main/tree_types.h
+++ b/tp/Texinfo/XS/main/tree_types.h
@@ -249,6 +249,7 @@ typedef struct ELEMENT {
struct ELEMENT **elt_info;
SOURCE_MARK_LIST source_mark_list;
+ int counter; /* used temporarily for copy or other use and reset to 0 */
ASSOCIATED_INFO extra_info;
enum command_id cmd;
diff --git a/tp/Texinfo/XS/parsetexi/macro.c b/tp/Texinfo/XS/parsetexi/macro.c
index 7dae5b81a6..ff32b1d261 100644
--- a/tp/Texinfo/XS/parsetexi/macro.c
+++ b/tp/Texinfo/XS/parsetexi/macro.c
@@ -41,8 +41,6 @@
#include "parser.h"
#include "macro.h"
-COUNTER count_toplevel_braces;
-
static MACRO *macro_list;
static size_t macro_number;
static size_t macro_space;
@@ -443,15 +441,6 @@ funexit:
*line_inout = line;
}
-static void
-set_toplevel_braces_nr (COUNTER *counter, ELEMENT *element)
-{
- int toplevel_braces_nr = counter_value (counter, element);
- if (toplevel_braces_nr)
- add_extra_integer (element, "toplevel_braces_nr", toplevel_braces_nr);
- counter_pop (counter);
-}
-
static void
expand_linemacro_arguments (const ELEMENT *macro, const char **line_inout,
enum command_id cmd, ELEMENT *current)
@@ -465,8 +454,6 @@ expand_linemacro_arguments (const ELEMENT *macro, const
char **line_inout,
int i;
ELEMENT *argument = new_element (ET_line_arg);
ELEMENT *argument_content = new_text_element (ET_other_text);
- counter_reset (&count_toplevel_braces, 0);
- counter_push (&count_toplevel_braces, argument_content, 0);
add_to_element_args (current, argument);
add_to_element_contents (argument, argument_content);
@@ -580,7 +567,7 @@ expand_linemacro_arguments (const ELEMENT *macro, const
char **line_inout,
text_append_n (arg, sep, 1);
pline = sep + 1;
if (braces_level == 0)
- counter_inc (&count_toplevel_braces);
+ argument_content->counter++;
break;
/* spaces */
default:
@@ -596,12 +583,8 @@ expand_linemacro_arguments (const ELEMENT *macro, const
char **line_inout,
{
ELEMENT *spaces_element = new_text_element (ET_other_text);
- set_toplevel_braces_nr (&count_toplevel_braces,
- argument_content);
-
argument = new_element (ET_line_arg);
argument_content = new_text_element (ET_other_text);
- counter_push (&count_toplevel_braces, argument_content, 0);
add_to_element_args (current, argument);
add_to_element_contents (argument, argument_content);
@@ -618,35 +601,27 @@ expand_linemacro_arguments (const ELEMENT *macro, const
char **line_inout,
}
funexit:
- set_toplevel_braces_nr (&count_toplevel_braces, argument_content);
for (i = 0; i < current->e.c->args.number; i++)
{
ELEMENT *argument_content =
current->e.c->args.list[i]->e.c->contents.list[0];
- KEY_PAIR *k_toplevel_braces_nr
- = lookup_extra (argument_content, "toplevel_braces_nr");
- if (k_toplevel_braces_nr)
+ if (argument_content->counter == 1)
{
- if (k_toplevel_braces_nr->k.integer == 1)
+ int text_len = strlen (argument_content->e.text->text);
+ if (argument_content->e.text->text[0] == '{'
+ && argument_content->e.text->text[text_len -1] == '}')
{
- int text_len = strlen (argument_content->e.text->text);
- if (argument_content->e.text->text[0] == '{'
- && argument_content->e.text->text[text_len -1] == '}')
- {
- char *braced_text = strdup (argument_content->e.text->text);
- debug_nonl ("TURN to bracketed %d ", i);
- debug_parser_print_element (argument_content, 0); debug ("");
-
- text_reset (argument_content->e.text);
- text_append_n (argument_content->e.text,
- braced_text+1, text_len -2);
- free (braced_text);
- argument_content->type = ET_bracketed_linemacro_arg;
- }
+ char *braced_text = strdup (argument_content->e.text->text);
+ debug_nonl ("TURN to bracketed %d ", i);
+ debug_parser_print_element (argument_content, 0); debug ("");
+
+ text_reset (argument_content->e.text);
+ text_append_n (argument_content->e.text,
+ braced_text+1, text_len -2);
+ free (braced_text);
+ argument_content->type = ET_bracketed_linemacro_arg;
}
-
- k_toplevel_braces_nr->key = "";
- k_toplevel_braces_nr->type = extra_deleted;
}
+ argument_content->counter = 0;
}
debug ("END LINEMACRO ARGS EXPANSION");
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: * tp/Texinfo/XS/main/tree_types.h (ELEMENT): add a counter in element.,
Patrice Dumas <=