From 3fd481776ab0dd80e379eedeac4d5b885a6572a1 Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Wed, 7 Oct 2015 23:48:03 +0000 Subject: web2c/luatexdir: Sync with the upstream. git-svn-id: svn://tug.org/texlive/trunk@38583 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/luatexdir/ChangeLog | 5 + Build/source/texk/web2c/luatexdir/NEWS | 137 +++++++++++++++++++++- Build/source/texk/web2c/luatexdir/lua/lepdflib.cc | 12 +- Build/source/texk/web2c/luatexdir/tex/texnodes.h | 3 +- Build/source/texk/web2c/luatexdir/tex/texnodes.w | 10 +- 5 files changed, 152 insertions(+), 15 deletions(-) (limited to 'Build/source') diff --git a/Build/source/texk/web2c/luatexdir/ChangeLog b/Build/source/texk/web2c/luatexdir/ChangeLog index 968b230ad78..fc26b489f93 100644 --- a/Build/source/texk/web2c/luatexdir/ChangeLog +++ b/Build/source/texk/web2c/luatexdir/ChangeLog @@ -1,3 +1,8 @@ +2015-10-08 Akira Kakuto + + * lua/lepdflib.cc, tex/texnodes.h, tex/texnodes.w, NEWS: + Sync with the upstream. + 2015-10-07 Peter Breitenlohner * am/libluatex.am, am/luafontforge.am: Rearrange to compile the diff --git a/Build/source/texk/web2c/luatexdir/NEWS b/Build/source/texk/web2c/luatexdir/NEWS index 3ae7880d3bb..0f36f279eca 100644 --- a/Build/source/texk/web2c/luatexdir/NEWS +++ b/Build/source/texk/web2c/luatexdir/NEWS @@ -1,6 +1,141 @@ This file is in the public domain. +============================================================== +Luatex beta-0.81.0 was released 2015100722 (5350) +============================================================== + + + +* A couple of primitives are removed, renamed and/or promoted to core (luatex) primitives. +Here's a summary. It might demand some adaption in the way macro packages initialize so we will mention them here explicitly in advance. As shown below, a simple way to get backward compatibility is to \let old ones to new ones. So, + + Updating to this version also might demand an update in the + macro package that you use! + +Here we go: + +% removed, can be done with callbacks if needed, one can define dimen dummies, like + +\newdimen\pdfeachlineheight +\newdimen\pdfeachlinedepth +\newdimen\pdflastlinedepth +\newdimen\pdffirstlineheight +\newdimen\pdfignoreddimen + +% removed, were already obsolete, one can \let them + +\let\pdftexversion \luatexversion +\let\pdftexrevision\luatexrevision +\let\pdftexbanner \luatexbanner + +% promoted (from pdftex), so pdf prefix gone, one can \let them + +\let\pdfnormaldeviate \normaldeviate +\let\pdfuniformdeviate\uniformdeviate +\let\pdfsetrandomseed \setrandomseed +\let\pdfrandomseed \randomseed + +% promoted (from omega), so pdf prefix gone, one can \let them + +\let\pdfpagewidth \pagewidth +\let\pdfpageheight\pageheight + +% redundant (etex wins over omega), so \font-less ones gone, one can \let them + +\let\chardp\fontchardp +\let\charht\fontcharht +\let\charit\fontcharit +\let\charwd\fontcharwd + +% promoted (from aleph) + +\pagerightoffset +\pagebottomoffset + +% promoted (from pdftex) + +\ifincsname +\expanded +\quitvmode + +% removed (from pdftex), so *pdf* ones gone, one can \let them + +\let\ifpdfabsnum \ifabsnum +\let\ifpdfabsdim \ifabsdim +\let\ifpdfprimitive\ifprimitive +\let\pdfprimitive \primitive + +% promoted (from omega) + +\pagedir +\bodydir +\pardir +\textdir +\mathdir + +% promoted (from aleph) + +\boxdir + +% promoted (from pdftex) + +\lpcode +\rpcode +\efcode +\leftmarginkern +\rightmarginkern + +\tagcode +\letterspacefont + +% promoted (from pdftex), so *pdf* ones gone, one can \let them + +\let\pdfprotrudechars\protrudechars +\let\pdfadjustspacing\adjustspacing + +\let\pdfnoligatures \ignoreligaturesinfont +\let\pdffontexpand \expandglyphsinfont + +% promoted (from pdftex), so *pdf* ones gone, one can \let them + +\let\pdfsavepos \savepos +\let\pdflastxpos\lastxpos +\let\pdflastypos\lastypos + +% on the todo list are: + +\pdfoutput : \outputmode +\pdfmatrix : will get a normal syntax, no weird { } parsing + +\pdfcolorstackinit : might become obsolete +\pdfcolorstack : might become obsolete + +So, apart from a few, the \pdf* primitives now relate to the backend only. + +% There is also a new primitive: + +\hyphenationmin + +This one determines the minimum word length (per language). + At the same time we moved the (ex)hyphenpenalties +in the disc nodes so you can inject discretionaries with specific penalties. + +There will also be an updated manual. +Hans + + +* new epdf.openMemStream(s,l,docid) +to create a pdf from a lightuserdata or string. +(experimental, do not use in production.) + +* uniform random generator in mplib is now specific for each numbersystem; + +* too_precise implemented for binary number system; + +* several bug fixes. + + ============================================================== Luatex beta-0.80.0 was released 20150319 (5195) ============================================================== @@ -2310,7 +2445,7 @@ Other news: we probably introduced new problems as well). * Most (all?) files now have a corrected Copyright header, - and link in $Id: NEWS 5205 2015-03-27 19:28:05Z luigi $ and $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/NEWS $ into the object file. + and link in $Id: NEWS 5348 2015-10-07 13:45:11Z luigi $ and $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/NEWS $ into the object file. * Some unnecessary files were removed from the distribution. diff --git a/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc b/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc index 1f2b5026154..b26f268feb4 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc +++ b/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc @@ -142,7 +142,8 @@ static int l_open_PDFDoc(lua_State * L) static int l_open_MemStreamPDFDoc(lua_State * L) { - const char *docstream=NULL; + const char *docstream = NULL; + char *docstream_usr = NULL ; const char *file_id; unsigned long long stream_size; udstruct *uout; @@ -162,10 +163,15 @@ static int l_open_MemStreamPDFDoc(lua_State * L) stream_size = (unsigned long long) luaL_checkint(L, 2);// size of the stream file_id = luaL_checkstring(L, 3); // a symbolic name for this stream, mandatory if (file_id == NULL) - lua_pushnil(L); + luaL_error(L, "PDFDoc has an invalid id"); if (strlen(file_id) >STREAM_FILE_ID_LEN ) // a limit to the length of the string luaL_error(L, "PDFDoc has a too long id"); - d = refMemStreamPdfDocument((char *)docstream, stream_size, file_id); + docstream_usr = (char *)gmalloc((unsigned) (stream_size + 1)); + if (!docstream_usr) + luaL_error(L, "no room for PDFDoc"); + memcpy(docstream_usr, docstream, (stream_size + 1)); + docstream_usr[stream_size]='\0'; + d = refMemStreamPdfDocument(docstream_usr, stream_size, file_id); if (d == NULL) { lua_pushnil(L); lua_pushnil(L); diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.h b/Build/source/texk/web2c/luatexdir/tex/texnodes.h index f73fba1d585..3b74f77ea29 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texnodes.h +++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.h @@ -469,8 +469,7 @@ typedef enum { set_random_seed_code, pdf_glyph_to_unicode_code, late_lua_node, /* 35 */ - close_lua_node, - save_cat_code_table_code, + save_cat_code_table_code =37, init_cat_code_table_code, pdf_colorstack_node, pdf_setmatrix_node, /*40 */ diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.w b/Build/source/texk/web2c/luatexdir/tex/texnodes.w index f500035bdf8..d7f03865d1a 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texnodes.w +++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.w @@ -185,7 +185,6 @@ const char *node_fields_whatsit_pdf_end_thread[] = { "attr", NULL }; const char *node_fields_whatsit_save_pos[] = { "attr", NULL }; const char *node_fields_whatsit_late_lua[] = { "attr", "reg", "data", "name", "string", NULL }; -const char *node_fields_whatsit_close_lua[] = { "attr", "reg", NULL }; const char *node_fields_whatsit_pdf_colorstack[] = { "attr", "stack", "cmd", "data", NULL }; const char *node_fields_whatsit_pdf_setmatrix[] = { "attr", "data", NULL }; @@ -311,8 +310,7 @@ node_info whatsit_node_data[] = { {fake_node, fake_node_size, NULL, fake_node_name}, {late_lua_node, late_lua_node_size, node_fields_whatsit_late_lua, "late_lua"}, - {close_lua_node, write_node_size, node_fields_whatsit_close_lua, - "close_lua"}, + {fake_node, fake_node_size, NULL, fake_node_name}, {fake_node, fake_node_size, NULL, fake_node_name}, {fake_node, fake_node_size, NULL, fake_node_name}, {pdf_colorstack_node, pdf_colorstack_node_size, @@ -1160,7 +1158,6 @@ void flush_node(halfword p) case pdf_save_node: case pdf_restore_node: case cancel_boundary_node: - case close_lua_node: case pdf_refobj_node: case pdf_refxform_node: case pdf_refximage_node: @@ -1468,7 +1465,6 @@ void check_node(halfword p) case pdf_save_node: case pdf_restore_node: case cancel_boundary_node: - case close_lua_node: case pdf_refobj_node: case pdf_refxform_node: case pdf_refximage_node: @@ -2633,10 +2629,6 @@ static void show_whatsit_node(int p) case late_lua_node: show_late_lua(p); break; - case close_lua_node: - tprint_esc("closelua"); - print_int(late_lua_reg(p)); - break; case pdf_refobj_node: tprint_esc("pdfrefobj"); if (obj_obj_is_stream(static_pdf, pdf_obj_objnum(p))) { -- cgit v1.2.3