On Sun, Jun 30, 2019 at 11:05 AM luigi scarso <luigi.sca...@gmail.com> wrote:
> > > On Thu, Jun 27, 2019 at 2:01 PM Marcel Fabian Krüger <t...@2krueger.de> > wrote: > >> Hi everyone, >> >> in current LuaTeX versions, the result of `linebreak` filter is ignored >> and instead it is always treated as if no node has been returned (so the >> internal linebreak algorithm is applied). A minimal example: >> >> >> \directlua{ >> callback.register("linebreak_filter", function(nodes) >> return node.hpack(nodes) >> end) >> } >> Some very very very very very very very very very very very very very >> very very very very very very very very very very very very very very >> very very very very very very very very very very very very very very >> very very very very very very very very very very very very very very >> very very very very very very very very very very very very very very >> very very very long paragraph. >> \bye >> >> You would expect the whole paragraph to be set in a single line, but >> normal paragraph breaking is applies instead. This is caused by a change >> in revision 6686 from Mar 29 2018 "experimental) possible fix for for lua >> stack issue + consistent error handling (HH)". There in the function >> lua_linebreak_callback, the change >> >> return ret; >> } >> + lua_settop(Luas, s_top); >> p = lua_touserdata(Luas, -1); >> if (p != NULL) { >> a = nodelist_from_lua(Luas); >> try_couple_nodes(*new_head,a); >> ret = 1; >> } >> - lua_settop(Luas, s_top); >> return ret; >> >> has been applied. I am not sure what kind of stack issue this was >> supposed to fix, but as a side effect this moves the check for the node >> return value after `lua_settop`, so the return value is already removed >> from the stack when the test is done. So it is ignored. >> > > hm, I will try reverting the code to see when the stack issue appears. > > done in r7177, need to be checked. -- luigi
_______________________________________________ dev-luatex mailing list dev-luatex@ntg.nl https://mailman.ntg.nl/mailman/listinfo/dev-luatex