# Accessing pointers in LuaTeX

This code writes the subtype of disc nodes to the log file.

\documentclass{minimal}
\usepackage{fontspec}
\directlua{
if head.id == 0 or head.id == 1 then % hlist, vlist
elseif head.id == 7 then             % disc
end
end
return true
end

}

\begin{document}
\begin{minipage}{1pt}
discretionary
\end{minipage}
\end{document}


The LuaTeX reference manual says in section 8.1.2.7 “disc nodes”

pre <node> pointer to the pre-break text

How do I access this?

This is very simple and straightforward: use head.pre to access the list pointing to the pre part of the discretionary.
Now the question you might ask next is "why is the pre-part nil?" This is because you call your function show_hyph() on the post_linebreak_filter. At that point the pre part is already inserted before that disc node and thus the pre part is empty. The same is with post and replace. What I can't tell you is why the disc node stays in the node list.