Hi,
I noticed that whatsit subtype "write" has changed "data" field type.
Documentation says "data -> table representing the token list to be written"
but when I print it I see it as a string with LuaTeX, Version 1.10.0 (TeX Live 
2019):
HERE    <node    277 <     82 >    nil : whatsit 1>     \foo\fee

With LuaTeX, Version 1.07.0 (TeX Live 2018/W32TeX) is ok:
HERE    <node    276 <     82 >    nil : whatsit 1>     table: 02D87EC8


Minimal example:
\write1{\string\foo \unexpanded{\fee}}%
\directlua{
local head = tex.nest[tex.nest.ptr].head
local tl = node.tail(head)
print ("HERE", tl, tl.data)
}
\bye


The real world example will be:
\documentclass{article}
\usepackage[color=no]{nodetree}
\nodetreeoption[channel]{log}
\nodetreeregister{preout}        %  pre_output will rise an error trying to 
print whatsits data field

\begin{document}
\makeatletter
\protected@write \@auxout {}{\string\@gobble\string\fee}    %% this is ok
\protected@write \@auxout {}{\string\@gobble\protect\foo}   %% but this will 
rise \foo undefined error
\makeatother
\end{document}

And this is very strange that accessing whatsits (subtype "write") "data" field 
executes it.

Linas

_______________________________________________
dev-luatex mailing list
dev-luatex@ntg.nl
https://mailman.ntg.nl/mailman/listinfo/dev-luatex

Reply via email to