summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-05-06 23:06:01 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-05-06 23:06:01 +0000
commit50600434a598247b0b75a13b8f49a4e5c208e681 (patch)
tree1a20d883e77ca5da6f9407f9840a0ed8952dc074
parent699f7c9ba195ae2043727beae51554047e9f27b3 (diff)
luatexdir: Sync with the upstream.
git-svn-id: svn://tug.org/texlive/trunk@37241 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/luatexdir/font/luafont.w5
-rw-r--r--Build/source/texk/web2c/luatexdir/lang/texlang.w18
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/luanode.w11
-rw-r--r--Build/source/texk/web2c/luatexdir/luatex.c4
4 files changed, 21 insertions, 17 deletions
diff --git a/Build/source/texk/web2c/luatexdir/font/luafont.w b/Build/source/texk/web2c/luatexdir/font/luafont.w
index 9d4ebc9ed98..ce6f35c5f07 100644
--- a/Build/source/texk/web2c/luatexdir/font/luafont.w
+++ b/Build/source/texk/web2c/luatexdir/font/luafont.w
@@ -2051,16 +2051,11 @@ static halfword handle_lig_word(halfword cur)
/* and set the subtypes */
subtype(cur) = init_disc;
subtype(fwd) = select_disc;
- return cur ;
}
}
}
} else { /* NO GLYPH NOR DISC */
-#if 0
- fprintf(stdout,"This is a %d node\n",type(cur));
- assert(0); /* TODO howcome there can be a glue here? */
-#endif
return cur;
}
/* step-to-next-node */
diff --git a/Build/source/texk/web2c/luatexdir/lang/texlang.w b/Build/source/texk/web2c/luatexdir/lang/texlang.w
index 723d29839de..2053220d2c4 100644
--- a/Build/source/texk/web2c/luatexdir/lang/texlang.w
+++ b/Build/source/texk/web2c/luatexdir/lang/texlang.w
@@ -727,10 +727,20 @@ static halfword find_next_wordstart(halfword r)
if (is_simple_character(r)) {
chr = character(r) ;
if (chr == ex_hyphen_char) {
- /* maybe add a test if prev and next are glyphs */
- t = compound_word_break(r, char_lang(r));
- subtype(t) = automatic_disc;
- start_ok = 1 ;
+ /* We only accept an explicit hyphen when there is a preceding glyph and */
+ /* we skip a sequence of explicit hyphens as that normally indicates a */
+ /* -- or --- ligature in which case we can in a worse case usage get bad */
+ /* node lists later on due to messed up ligature building as these dashes */
+ /* ligatures in base fonts. This is a side effect of the separating the */
+ /* hyphenation, ligaturing and kerning steps. A test is cmr with ------. */
+ t = vlink(r) ;
+ if ((start_ok > 0) && (t!=null) && (type(t) == glyph_node) && (character(t) != ex_hyphen_char)) {
+ t = compound_word_break(r, char_lang(r));
+ subtype(t) = automatic_disc;
+ start_ok = 1 ;
+ } else {
+ start_ok = 0;
+ }
} else if (start_ok && (l = get_lc_code(chr)) > 0) {
if (char_uchyph(r) || l == chr) {
return r;
diff --git a/Build/source/texk/web2c/luatexdir/lua/luanode.w b/Build/source/texk/web2c/luatexdir/lua/luanode.w
index cc22ab5b6b6..bce071c27f3 100644
--- a/Build/source/texk/web2c/luatexdir/lua/luanode.w
+++ b/Build/source/texk/web2c/luatexdir/lua/luanode.w
@@ -418,6 +418,7 @@ void show_pdf_literal(pointer p)
}
}
+@ @c
void show_late_lua(pointer p)
{
tprint_esc("latelua");
@@ -425,10 +426,8 @@ void show_late_lua(pointer p)
if (late_lua_type(p) == normal) {
print_mark(late_lua_data(p));
} else {
- lua_rawgeti(Luas, LUA_REGISTRYINDEX, late_lua_data(p));
- tprint("\"");
- tprint(lua_tostring(Luas, -1));
- tprint("\"");
- lua_pop(Luas, 1);
+ tprint(" <function ");
+ print_int(late_lua_data(p));
+ tprint(">");
}
-}
+} \ No newline at end of file
diff --git a/Build/source/texk/web2c/luatexdir/luatex.c b/Build/source/texk/web2c/luatexdir/luatex.c
index 9f6b1d34e85..509c10ef070 100644
--- a/Build/source/texk/web2c/luatexdir/luatex.c
+++ b/Build/source/texk/web2c/luatexdir/luatex.c
@@ -26,10 +26,10 @@
#define TeX
-int luatex_svn = 5231;
+int luatex_svn = 5238;
int luatex_version = 80; /* \.{\\luatexversion} */
int luatex_revision = '0'; /* \.{\\luatexrevision} */
-int luatex_date_info = 2015042200; /* the compile date is now hardwired */
+int luatex_date_info = 2015051900; /* the compile date is now hardwired */
const char *luatex_version_string = "beta-0.80.0";
const char *engine_name = my_name; /* the name of this engine */