summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuigi Scarso <luigi.scarso@gmail.com>2019-03-16 14:22:44 +0000
committerLuigi Scarso <luigi.scarso@gmail.com>2019-03-16 14:22:44 +0000
commit090dff7b31108a1b2c2d7f11967cb414e9d5ac48 (patch)
tree772251ef37c388a42e2d798ff3c28caf61622b01
parenteb9deda90c9e0256f62b40599dd5661370d46abf (diff)
Additional wrapping of local boxes; updated luatex manual.
git-svn-id: svn://tug.org/texlive/trunk@50412 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/luatexdir/lang/texlang.c6
-rw-r--r--Build/source/texk/web2c/luatexdir/luatex_svnversion.h2
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/maincontrol.c14
-rw-r--r--Master/texmf-dist/doc/luatex/base/luatex-enhancements.tex6
-rw-r--r--Master/texmf-dist/doc/luatex/base/luatex-introduction.tex2
-rw-r--r--Master/texmf-dist/doc/luatex/base/luatex-nodes.tex4
-rw-r--r--Master/texmf-dist/doc/luatex/base/luatex-style.tex1
-rw-r--r--Master/texmf-dist/doc/luatex/base/luatex-tex.tex22
-rw-r--r--Master/texmf-dist/doc/luatex/base/luatex.pdfbin1529094 -> 1559350 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/base/luatex.tex2
10 files changed, 40 insertions, 19 deletions
diff --git a/Build/source/texk/web2c/luatexdir/lang/texlang.c b/Build/source/texk/web2c/luatexdir/lang/texlang.c
index 04f96660f5e..323d27c5865 100644
--- a/Build/source/texk/web2c/luatexdir/lang/texlang.c
+++ b/Build/source/texk/web2c/luatexdir/lang/texlang.c
@@ -944,6 +944,9 @@ void hnj_hyphenation(halfword head, halfword tail)
halfword s, r = head, wordstart = null, save_tail1 = null, left = null, right = null;
halfword expstart = null;
boolean compound_hyphen = compound_hyphen_mode_par;
+ /*tex Let's play safe: */
+ if (tail == null)
+ return;
/*tex
This first movement assures two things:
@@ -969,7 +972,8 @@ void hnj_hyphenation(halfword head, halfword tail)
r = find_next_wordstart(r,first_language,strict_bound);
if (r == null)
return;
- assert(tail != null);
+ if (tail == null)
+ return;
save_tail1 = vlink(tail);
s = new_penalty(0,word_penalty);
couple_nodes(tail, s);
diff --git a/Build/source/texk/web2c/luatexdir/luatex_svnversion.h b/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
index df3f66dae7f..a087bc9827a 100644
--- a/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1 +1 @@
-#define luatex_svn_revision 7112
+#define luatex_svn_revision 7116
diff --git a/Build/source/texk/web2c/luatexdir/tex/maincontrol.c b/Build/source/texk/web2c/luatexdir/tex/maincontrol.c
index 2768bff72a2..ef5fb64d601 100644
--- a/Build/source/texk/web2c/luatexdir/tex/maincontrol.c
+++ b/Build/source/texk/web2c/luatexdir/tex/maincontrol.c
@@ -2176,10 +2176,20 @@ void build_local_box(void)
p = vlink(head);
pop_nest();
if (p != null) {
- /*tex Somehow |filtered_hpack| goes beyond the first node so we loose it. */
- new_hyphenation(p, null);
+ /*tex
+ Somehow |filtered_hpack| goes beyond the first node so we loose it.
+ */
+ /*tex
+ There is no need for |new_hyphenation(p, null);| here as we're in
+ an |\hbox|.
+ */
(void) new_ligkern(p, null);
p = lua_hpack_filter(p, 0, additional, local_box_group, -1, null);
+ /*tex
+ We really need something packed so we play safe! This feature is inherited
+ but could have been delegated to a callback anyway.
+ */
+ p = hpack(p, 0, additional, -1);
}
if (kind == 0)
eq_define(local_left_box_base, box_ref_cmd, p);
diff --git a/Master/texmf-dist/doc/luatex/base/luatex-enhancements.tex b/Master/texmf-dist/doc/luatex/base/luatex-enhancements.tex
index b04a6e29cfe..d6651507a26 100644
--- a/Master/texmf-dist/doc/luatex/base/luatex-enhancements.tex
+++ b/Master/texmf-dist/doc/luatex/base/luatex-enhancements.tex
@@ -61,7 +61,11 @@ chapters on fonts and math we discuss a few more new ones.
There are three new primitives to test the version of \LUATEX:
\unexpanded\def\VersionHack#1% otherwise different luatex and luajittex runs
- {\cldcontext{(string.gsub(string.match("\luatexbanner","(.+)\letterpercent("),"jit",""))}}
+ {\ctxlua{%
+ local banner = "\luatexbanner"
+ local banner = string.match(banner,"(.+)\letterpercent(") or banner
+ context(string.gsub(banner ,"jit",""))%
+ }}
\starttabulate[|l|l|pl|]
\DB primitive \BC value
diff --git a/Master/texmf-dist/doc/luatex/base/luatex-introduction.tex b/Master/texmf-dist/doc/luatex/base/luatex-introduction.tex
index 0930c532bdf..c03725357b5 100644
--- a/Master/texmf-dist/doc/luatex/base/luatex-introduction.tex
+++ b/Master/texmf-dist/doc/luatex/base/luatex-introduction.tex
@@ -163,7 +163,7 @@ Luigi Scarso
\starttabulate[|||]
\NC Version \EQ \currentdate \NC \NR
\NC \LUATEX \EQ \cldcontext{LUATEXENGINE} %
- \cldcontext{LUATEXVERSION} / %
+ \cldcontext{"\letterpercent 0.2f",LUATEXVERSION} / %
\cldcontext{LUATEXFUNCTIONALITY}
\NC \NR
\NC \CONTEXT \EQ MkIV \contextversion \NC \NR
diff --git a/Master/texmf-dist/doc/luatex/base/luatex-nodes.tex b/Master/texmf-dist/doc/luatex/base/luatex-nodes.tex
index 573bfd8d80d..1b8de8d7673 100644
--- a/Master/texmf-dist/doc/luatex/base/luatex-nodes.tex
+++ b/Master/texmf-dist/doc/luatex/base/luatex-nodes.tex
@@ -2305,8 +2305,8 @@ consistency. You can of course always define additional accessors using \type
\def\supported#1#2#3%
{\NC \type{#1}
- \NC \ifx#2\yes\libidx{node} {#1}\fi #2
- \NC \ifx#3\yes\libidx{node.direct}{#1}\fi #3 \NC
+ \NC \ifx#2\yes\lix{node} {#1}\fi #2
+ \NC \ifx#3\yes\lix{node.direct}{#1}\fi #3 \NC
\NR}
\starttabulate[|l|c|c|]
diff --git a/Master/texmf-dist/doc/luatex/base/luatex-style.tex b/Master/texmf-dist/doc/luatex/base/luatex-style.tex
index f176afab7d2..502e894a8ce 100644
--- a/Master/texmf-dist/doc/luatex/base/luatex-style.tex
+++ b/Master/texmf-dist/doc/luatex/base/luatex-style.tex
@@ -436,6 +436,7 @@
\unexpanded\def\lib #1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}\type{\currentlibraryindex.#1}}}
\unexpanded\def\libindex#1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}}}
\unexpanded\def\libidx#1#2{\doifmode{*bodypart}{\expanded{\libraryindex{#1+#2}}\type{#1.#2}}}
+\unexpanded\def\lix #1#2{\doifmode{*bodypart}{\expanded{\libraryindex{#1+#2}}}}
% \setstructurepageregister[][keys:1=,entries:1=]
diff --git a/Master/texmf-dist/doc/luatex/base/luatex-tex.tex b/Master/texmf-dist/doc/luatex/base/luatex-tex.tex
index 6b1ba1689b0..894227661ba 100644
--- a/Master/texmf-dist/doc/luatex/base/luatex-tex.tex
+++ b/Master/texmf-dist/doc/luatex/base/luatex-tex.tex
@@ -1277,11 +1277,12 @@ tex.cprint(12,"12: $&{\\foo}") tex.print("\\par") -- other characters
tex.cprint(14,"12: $&{\\foo}") tex.print("\\par") -- comment triggers
\stopfunctioncall
-\subsubsection{\type {write}, \type {twrite}, \type {nwrite}}
+% \subsubsection{\type {write}, \type {twrite}, \type {nwrite}}
+\subsubsection{\type {write}}
\libindex{write}
-\libindex{twrite}
-\libindex{nwrite}
+% \libindex{twrite}
+% \libindex{nwrite}
\startfunctioncall
tex.write(<string> s, ...)
@@ -1301,10 +1302,10 @@ If there is a table argument instead of a list of strings, this has to be a
consecutive array of strings to print (the first non-string value will stop the
printing process).
-The functions \type {twrite} and \type {nwrite} can be used to write a token or
-node back to \TEX\, possibly intermixed with regular strings that will be
-tokenized. You have to make sure that you pass the right data because sometimes
-\TEX\ has expectations that need to be met.
+% The functions \type {twrite} and \type {nwrite} can be used to write a token or
+% node back to \TEX\, possibly intermixed with regular strings that will be
+% tokenized. You have to make sure that you pass the right data because sometimes
+% \TEX\ has expectations that need to be met.
\stopsubsection
@@ -1440,10 +1441,9 @@ line of error help.
In case of an error the \type {show_context} function will show the current
context where we're at (in the expansion).
-\subsubsection{\type {run}, \type {runtoks}, \type {finish}}
+\subsubsection{\type {run}, \type {finish}}
\libindex{run}
-\libindex{runtoks}
\libindex{finish}
These two functions start the interpretations and force its end. A runs normally
@@ -1454,6 +1454,8 @@ pushed back into the input. This all means that the \TEX\ scanner is constantly
pushing and popping input states, but in the end after all the action is done
returns to the main loop.
+\subsubsection{\type {runtoks}}
+
Because of the fact that \TEX\ is in a complex dance of expanding, dealing with
fonts, typesetting paragraphs, messing around with boxes, building pages, and so
on, you cannot easily run a nested \TEX\ run (read nested main loop). However,
@@ -1473,7 +1475,7 @@ tex.runtoks(<lua function>)
When the \prm {tracingnesting} parameter is set to a value larger than~2 some
information is reported about the state of the local loop.
-\subsubsection{\type {run}, \type {runtoks}, \type {finish}}
+\subsubsection{\type {forcehmode}}
\libindex{forcehmode}
diff --git a/Master/texmf-dist/doc/luatex/base/luatex.pdf b/Master/texmf-dist/doc/luatex/base/luatex.pdf
index dd73cae76fc..9ea3b0bdb5d 100644
--- a/Master/texmf-dist/doc/luatex/base/luatex.pdf
+++ b/Master/texmf-dist/doc/luatex/base/luatex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/base/luatex.tex b/Master/texmf-dist/doc/luatex/base/luatex.tex
index 61c075243d8..2d1d4efec66 100644
--- a/Master/texmf-dist/doc/luatex/base/luatex.tex
+++ b/Master/texmf-dist/doc/luatex/base/luatex.tex
@@ -62,7 +62,7 @@
\startdocument
[manual=Lua\TeX,
- status=experimental,
+ status=stable,
version=1.10]
\startnotmode[*export]