[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Patrice Dumas |
Date: |
Sat, 28 Sep 2024 18:20:05 -0400 (EDT) |
branch: master
commit 629d2ebce9625711d89bfae3a17adea0e957920b
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Mon Jun 3 00:03:17 2024 +0200
* tp/Texinfo/XS/convert/convert_html.c (convert_to_html_internal): do
not call element_command_name for text elements.
* tp/Texinfo/XS/main/manipulate_tree.c (copy_extra_info),
tp/Texinfo/XS/main/tree.c (destroy_element),
tp/Texinfo/XS/main/tree_types.h (CONTAINER, ELEMENT): move info_info
to CONTAINER, as it is not used in text elements anymore.
* tp/Texinfo/XS/main/build_perl_info.c, tp/Texinfo/XS/main/debug.c,
tp/Texinfo/XS/main/extra.c, tp/Texinfo/XS/parsetexi/close.c: update to
use info_info in CONTAINER and not directly in ELEMENT.
---
ChangeLog | 14 ++++++++++++++
tp/TODO | 9 ++-------
tp/Texinfo/XS/convert/convert_html.c | 10 +++++++---
tp/Texinfo/XS/main/build_perl_info.c | 3 ++-
tp/Texinfo/XS/main/debug.c | 4 ++--
tp/Texinfo/XS/main/extra.c | 16 ++++++++--------
tp/Texinfo/XS/main/manipulate_tree.c | 5 +++--
tp/Texinfo/XS/main/tree.c | 2 +-
tp/Texinfo/XS/main/tree_types.h | 2 +-
tp/Texinfo/XS/parsetexi/close.c | 2 +-
10 files changed, 41 insertions(+), 26 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 98e297fccd..06e3e69c61 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,20 @@
Update test result
+2024-06-01 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/XS/convert/convert_html.c (convert_to_html_internal): do
+ not call element_command_name for text elements.
+
+ * tp/Texinfo/XS/main/manipulate_tree.c (copy_extra_info),
+ tp/Texinfo/XS/main/tree.c (destroy_element),
+ tp/Texinfo/XS/main/tree_types.h (CONTAINER, ELEMENT): move info_info
+ to CONTAINER, as it is not used in text elements anymore.
+
+ * tp/Texinfo/XS/main/build_perl_info.c, tp/Texinfo/XS/main/debug.c,
+ tp/Texinfo/XS/main/extra.c, tp/Texinfo/XS/parsetexi/close.c: update to
+ use info_info in CONTAINER and not directly in ELEMENT.
+
2024-06-01 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (store_additional_info)
diff --git a/tp/TODO b/tp/TODO
index 471a361939..f3c14bd943 100644
--- a/tp/TODO
+++ b/tp/TODO
@@ -78,12 +78,8 @@ char *alias_of
char *command_info_string (for arg_line or command_name or @verb delimiter)
ELEMENT *elements[3]
spaces_after_cmd_before_arg (brace commands) or comment_at_end (line/block
commands)
- spaces_before_argument
- spaces_after_argument
- int inserted (could also be flags if more information is added).
-
- spaces_before_argument and spaces_after_argument are with brace_command_arg
- for non command_context brace commands, otherwise with the @-command.
+for type brace_command_container, line and block commands, BRACE_context
commands
+ spaces_before_argument, spaces_after_argument
3) make building "source marks" optional.
With 8 byte pointers and integers, the 24 byte section of ELEMENT relating
@@ -94,7 +90,6 @@ ELEMENT *elements[3]
4) separate the structure of text elements and other elements, as text elements
never have contents/args/info/extra, have cmd != 0.
EXCEPTION: needed transient _copy and _counter in copy_tree_internal in
extra
- EXCEPTION: info inserted for spaces in @def* for definition aliases
valgrinf massif useful-heap approximate distribution in 2024
diff --git a/tp/Texinfo/XS/convert/convert_html.c
b/tp/Texinfo/XS/convert/convert_html.c
index 0fa8f8a6c2..4465ef8aea 100644
--- a/tp/Texinfo/XS/convert/convert_html.c
+++ b/tp/Texinfo/XS/convert/convert_html.c
@@ -18386,12 +18386,16 @@ convert_to_html_internal (CONVERTER *self, const
ELEMENT *element,
/* for debugging, for explanations */
TEXT command_type;
char *debug_str;
- const char *command_name = element_command_name (element);
+ const char *command_name = 0;
enum command_id cmd = element_builtin_cmd (element);
text_init (&command_type);
- if (command_name)
- text_printf (&command_type, "@%s ", command_name);
+ if (! type_data[element->type].flags & TF_text)
+ {
+ command_name = element_command_name (element);
+ if (command_name)
+ text_printf (&command_type, "@%s ", command_name);
+ }
if (element->type)
text_append (&command_type, type_data[element->type].name);
diff --git a/tp/Texinfo/XS/main/build_perl_info.c
b/tp/Texinfo/XS/main/build_perl_info.c
index e6788783bc..ca536b791c 100644
--- a/tp/Texinfo/XS/main/build_perl_info.c
+++ b/tp/Texinfo/XS/main/build_perl_info.c
@@ -646,7 +646,8 @@ element_to_perl_hash (ELEMENT *e, int avoid_recursion)
/* non-text elements */
- store_additional_info (e, &e->info_info, "info", &nr_info, avoid_recursion);
+ store_additional_info (e, &e->c->info_info, "info", &nr_info,
+ avoid_recursion);
if (e->cmd)
{
diff --git a/tp/Texinfo/XS/main/debug.c b/tp/Texinfo/XS/main/debug.c
index e0cda8172b..bd3f8aa8c2 100644
--- a/tp/Texinfo/XS/main/debug.c
+++ b/tp/Texinfo/XS/main/debug.c
@@ -232,11 +232,11 @@ print_element_debug_details (const ELEMENT *e, int
print_parent)
free (associated_info_str);
}
- if (e->info_info.info_number > 0)
+ if (e->c->info_info.info_number > 0)
{
char *associated_info_str;
text_append (&text, " INFO\n");
- associated_info_str = print_associate_info_debug (&e->info_info);
+ associated_info_str = print_associate_info_debug (&e->c->info_info);
text_append (&text, associated_info_str);
free (associated_info_str);
}
diff --git a/tp/Texinfo/XS/main/extra.c b/tp/Texinfo/XS/main/extra.c
index 9ab8770f47..77573ae592 100644
--- a/tp/Texinfo/XS/main/extra.c
+++ b/tp/Texinfo/XS/main/extra.c
@@ -95,7 +95,7 @@ add_extra_container (ELEMENT *e, char *key, ELEMENT *value)
void
add_info_element_oot (ELEMENT *e, char *key, ELEMENT *value)
{
- KEY_PAIR *k = get_associated_info_key (&e->info_info, key,
+ KEY_PAIR *k = get_associated_info_key (&e->c->info_info, key,
extra_element_oot);
k->k.element = value;
}
@@ -166,7 +166,7 @@ add_extra_string (ELEMENT *e, const char *key, char *value)
void
add_info_string (ELEMENT *e, char *key, char *value)
{
- KEY_PAIR *k = get_associated_info_key (&e->info_info, key, extra_string);
+ KEY_PAIR *k = get_associated_info_key (&e->c->info_info, key, extra_string);
k->k.string = value;
}
@@ -180,7 +180,7 @@ add_extra_string_dup (ELEMENT *e, const char *key, const
char *value)
void
add_info_string_dup (ELEMENT *e, const char *key, const char *value)
{
- KEY_PAIR *k = get_associated_info_key (&e->info_info, key, extra_string);
+ KEY_PAIR *k = get_associated_info_key (&e->c->info_info, key, extra_string);
k->k.string = strdup (value);
}
@@ -209,7 +209,7 @@ add_extra_integer (ELEMENT *e, char *key, long value)
void
add_info_integer (ELEMENT *e, char *key, long value)
{
- KEY_PAIR *k = get_associated_info_key (&e->info_info, key, extra_integer);
+ KEY_PAIR *k = get_associated_info_key (&e->c->info_info, key, extra_integer);
k->k.integer = value;
}
@@ -311,7 +311,7 @@ int
lookup_info_integer (const ELEMENT *e, const char *key, int *ret)
{
const KEY_PAIR *k;
- k = lookup_associated_info (&e->info_info, key);
+ k = lookup_associated_info (&e->c->info_info, key);
return lookup_key_pair_integer (k, key, ret);
}
@@ -370,7 +370,7 @@ ELEMENT *
lookup_info_element (const ELEMENT *e, const char *key)
{
const KEY_PAIR *k;
- k = lookup_associated_info (&e->info_info, key);
+ k = lookup_associated_info (&e->c->info_info, key);
if (!k)
return 0;
return k->k.element;
@@ -380,14 +380,14 @@ lookup_info_element (const ELEMENT *e, const char *key)
KEY_PAIR *
lookup_info (const ELEMENT *e, const char *key)
{
- return lookup_associated_info (&e->info_info, key);
+ return lookup_associated_info (&e->c->info_info, key);
}
char *
lookup_info_string (const ELEMENT *e, const char *key)
{
const KEY_PAIR *k;
- k = lookup_associated_info (&e->info_info, key);
+ k = lookup_associated_info (&e->c->info_info, key);
if (!k || !k->k.string)
return 0;
return k->k.string;
diff --git a/tp/Texinfo/XS/main/manipulate_tree.c
b/tp/Texinfo/XS/main/manipulate_tree.c
index 9cd95217e2..16660c9cc6 100644
--- a/tp/Texinfo/XS/main/manipulate_tree.c
+++ b/tp/Texinfo/XS/main/manipulate_tree.c
@@ -192,7 +192,7 @@ copy_tree_internal (ELEMENT* current, ELEMENT *parent)
for (i = 0; i < current->c->contents.number; i++)
add_to_element_contents (new,
copy_tree_internal (current->c->contents.list[i], new));
- copy_associated_info (¤t->info_info, &new->info_info);
+ copy_associated_info (¤t->c->info_info, &new->c->info_info);
copy_associated_info (¤t->extra_info, &new->extra_info);
return new;
}
@@ -378,11 +378,12 @@ copy_extra_info (ELEMENT *current, ELEMENT *new)
for (i = 0; i < current->c->contents.number; i++)
copy_extra_info (current->c->contents.list[i],
new->c->contents.list[i]);
+ associate_info_references (¤t->c->info_info, &new->c->info_info);
+
/* text element have _copy and _counter only in extra, not to be copied
*/
associate_info_references (¤t->extra_info, &new->extra_info);
}
- associate_info_references (¤t->info_info, &new->info_info);
}
ELEMENT *
diff --git a/tp/Texinfo/XS/main/tree.c b/tp/Texinfo/XS/main/tree.c
index 13aa03b5cb..ee8e2cebac 100644
--- a/tp/Texinfo/XS/main/tree.c
+++ b/tp/Texinfo/XS/main/tree.c
@@ -220,7 +220,6 @@ destroy_element (ELEMENT *e)
destroy_source_mark_list (&e->source_mark_list);
- destroy_associated_info (&e->info_info);
destroy_associated_info (&e->extra_info);
if (type_data[e->type].flags & TF_text)
@@ -230,6 +229,7 @@ destroy_element (ELEMENT *e)
}
else
{
+ destroy_associated_info (&e->c->info_info);
/* Note the pointers in these lists are not themselves freed. */
free (e->c->contents.list);
free (e->c->args.list);
diff --git a/tp/Texinfo/XS/main/tree_types.h b/tp/Texinfo/XS/main/tree_types.h
index 773a592ace..ea9fb61b3a 100644
--- a/tp/Texinfo/XS/main/tree_types.h
+++ b/tp/Texinfo/XS/main/tree_types.h
@@ -213,6 +213,7 @@ typedef struct CONTAINER {
ELEMENT_LIST contents;
SOURCE_INFO source_info;
+ ASSOCIATED_INFO info_info;
OUTPUT_UNIT *associated_unit;
} CONTAINER;
@@ -226,7 +227,6 @@ typedef struct ELEMENT {
struct ELEMENT *parent;
SOURCE_MARK_LIST source_mark_list;
- ASSOCIATED_INFO info_info;
ASSOCIATED_INFO extra_info;
enum command_id cmd;
diff --git a/tp/Texinfo/XS/parsetexi/close.c b/tp/Texinfo/XS/parsetexi/close.c
index bed5134459..f61b9ff086 100644
--- a/tp/Texinfo/XS/parsetexi/close.c
+++ b/tp/Texinfo/XS/parsetexi/close.c
@@ -135,7 +135,7 @@ is_container_empty (ELEMENT *current)
else if (current->c->contents.number == 0
&& current->c->args.number == 0
/* FIXME this is certainly wrong */
- && current->info_info.info_number == 0)
+ && current->c->info_info.info_number == 0)
return 1;
return 0;