diff --git a/source/texk/web2c/luatexdir/ChangeLog b/source/texk/web2c/luatexdir/ChangeLog index ba163208a803aa8eacc4a1e9a877e15d40d9994b..868f64cc33f9c0562a06685f2dfdd6595db039ae 100644 --- a/source/texk/web2c/luatexdir/ChangeLog +++ b/source/texk/web2c/luatexdir/ChangeLog @@ -1,3 +1,6 @@ +2023-02-22 Luigi Scarso <luigi.scarso@gmail.com> + * fix latelua data reference (side effect of deferred late additions) (H.Hagen) + 2023-02-18 Luigi Scarso <luigi.scarso@gmail.com> * Fixed the "Invalid unicode ranges in CMap beginbfrange operator bug" as in pdfTeX (Hà n Thế Thà nh) diff --git a/source/texk/web2c/luatexdir/lua/luastuff.c b/source/texk/web2c/luatexdir/lua/luastuff.c index feb6a88c8bf26e242fa001a6c940e9328a2557ba..4176431edf61270de6d09da04d591e596a4c6c1d 100644 --- a/source/texk/web2c/luatexdir/lua/luastuff.c +++ b/source/texk/web2c/luatexdir/lua/luastuff.c @@ -600,7 +600,7 @@ void late_lua(PDF pdf, halfword p) t = late_lua_type(p); if (t == normal) { /*tex sets |def_ref| */ - expand_macros_in_tokenlist(p); + expand_macros_in_tokenlist(late_lua_data(p)); luacall(def_ref, late_lua_name(p), false, p); flush_list(def_ref); } else if (t == lua_refid_call) { diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h index 2866c4fa20ee1535a4b3f057b72805736c670e8b..9bca73d52a6cbbb8121bfef44534a9632e5bf11d 100644 --- a/source/texk/web2c/luatexdir/luatex_svnversion.h +++ b/source/texk/web2c/luatexdir/luatex_svnversion.h @@ -1,4 +1,4 @@ #ifndef luatex_svn_revision_h #define luatex_svn_revision_h -#define luatex_svn_revision 7561 +#define luatex_svn_revision 7562 #endif diff --git a/source/texk/web2c/luatexdir/tex/texnodes.c b/source/texk/web2c/luatexdir/tex/texnodes.c index 76da864e5f4c25f7d0efa0d452bcf910aea97fc7..6e0ae1ff8ddba22594405f00e381c2a5408b74da 100644 --- a/source/texk/web2c/luatexdir/tex/texnodes.c +++ b/source/texk/web2c/luatexdir/tex/texnodes.c @@ -2201,13 +2201,15 @@ static void flush_node_wrapup_core(halfword p) { switch (subtype(p)) { case open_node: - case write_node: case close_node: case save_pos_node: break; + case write_node: + /* Not similar to elsewhere, already flushed? */ + break; case special_node: case late_special_node: - delete_token_ref(write_tokens(p)); + delete_token_ref(special_tokens(p)); break; case late_lua_node: free_late_lua(p); @@ -3482,11 +3484,11 @@ static void show_node_wrapup_core(int p) break; case special_node: tprint_esc("special"); - print_mark(write_tokens(p)); + print_mark(special_tokens(p)); break; case late_special_node: tprint_esc("latespecial"); - print_mark(write_tokens(p)); + print_mark(late_lua_data(p)); break; case late_lua_node: show_late_lua(p);