summaryrefslogtreecommitdiff
path: root/source/luametatex/source/tex/texnodes.c
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2022-12-01 13:43:10 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2022-12-01 13:43:10 +0100
commit08fa92c1c94d9faddee48590a1a20506e89c191c (patch)
tree12bbf6fa56b69c47340d4c15f8f601be2d9487b5 /source/luametatex/source/tex/texnodes.c
parent2593c827482f6c5a315d504cd5316879d6172656 (diff)
downloadcontext-08fa92c1c94d9faddee48590a1a20506e89c191c.tar.gz
2022-12-01 12:41:00
Diffstat (limited to 'source/luametatex/source/tex/texnodes.c')
-rw-r--r--source/luametatex/source/tex/texnodes.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/source/luametatex/source/tex/texnodes.c b/source/luametatex/source/tex/texnodes.c
index 0134eb419..ab2601a43 100644
--- a/source/luametatex/source/tex/texnodes.c
+++ b/source/luametatex/source/tex/texnodes.c
@@ -1800,6 +1800,24 @@ halfword tex_list_node_mem_usage(void)
(actually for each node tyep I guess).
*/
+extern void tex_change_attribute_register(halfword a, halfword id, halfword value)
+{
+ if (eq_value(id) != value) {
+ if (is_global(a)) {
+ int i;
+ for (i = (lmt_save_state.save_stack_data.ptr - 1); i >= 0; i--) {
+ if (save_type(i) == attribute_list_save_type) {
+ delete_attribute_reference(save_value(i));
+ save_value(i) = attribute_cache_disabled;
+ }
+ }
+ } else {
+ delete_attribute_reference(current_attribute_state);
+ }
+ set_current_attribute_state(attribute_cache_disabled);
+ }
+}
+
inline static halfword tex_aux_new_attribute_list_node(halfword count)
{
halfword r = tex_get_node(attribute_node_size);