diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/lua/lpdflib.c')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/lua/lpdflib.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Build/source/texk/web2c/luatexdir/lua/lpdflib.c b/Build/source/texk/web2c/luatexdir/lua/lpdflib.c index 88f9eac7c24..096600de34f 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lpdflib.c +++ b/Build/source/texk/web2c/luatexdir/lua/lpdflib.c @@ -43,9 +43,13 @@ static int luapdfprint(lua_State * L) literal_mode = direct_always; else if (lua_key_eq(modestr_s,page)) literal_mode = direct_page; + else if (lua_key_eq(modestr_s,text)) + literal_mode = direct_text; else if (lua_key_eq(modestr_s,raw)) literal_mode = direct_raw; - else { + else if (lua_key_eq(modestr_s,origin)) + literal_mode = set_origin; + else { luaL_error(L, "invalid first argument for print literal mode"); } } @@ -63,6 +67,10 @@ static int luapdfprint(lua_State * L) pdf_goto_pagemode(static_pdf); (void) calc_pdfpos(static_pdf->pstruct, static_pdf->posstruct->pos); break; + case (direct_text): + pdf_goto_textmode(static_pdf); + (void) calc_pdfpos(static_pdf->pstruct, static_pdf->posstruct->pos); + break; case (direct_always): pdf_end_string_nl(static_pdf); break; @@ -1126,6 +1134,8 @@ static int newpdfcolorstack(lua_State * L) literal_mode = set_origin; } else if (lua_key_eq(l,page)) { literal_mode = direct_page; + } else if (lua_key_eq(l,text)) { + literal_mode = direct_text; } else if (lua_key_eq(l,direct)) { literal_mode = direct_always; } else if (lua_key_eq(l,raw)) { @@ -1255,7 +1265,7 @@ int luaopen_pdf(lua_State * L) lua_newtable(L); lua_settable(L,LUA_REGISTRYINDEX); /* */ - luaL_register(L, "pdf", pdflib); + luaL_openlib(L, "pdf", pdflib, 0); /* luaL_newmetatable(L, "pdf.meta"); lua_pushstring(L, "__index"); |