summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-02-05 23:29:18 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-02-05 23:29:18 +0000
commitd96558db96e63d70e9262d88d4d81890dbcbc653 (patch)
treee93d51f50eae1542778428629b3fcd489f8f06de /Build/source/texk/web2c
parentcc6eb49c8f55f231cab753ce5f6289ee62d24c13 (diff)
web2c/luatexdir: sync with the upstream
git-svn-id: svn://tug.org/texlive/trunk@39581 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c')
-rw-r--r--Build/source/texk/web2c/luatexdir/NEWS19
-rw-r--r--Build/source/texk/web2c/luatexdir/lang/texlang.w6
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/lpdflib.c12
-rw-r--r--Build/source/texk/web2c/luatexdir/luatex.c2
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfgen.w51
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfpage.w16
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfrule.w4
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdftypes.h18
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/commands.h3
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/commands.w2
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/linebreak.w7
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/maincontrol.w11
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/mlist.w2
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/postlinebreak.w6
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/printing.w10
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/texnodes.h9
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/texnodes.w4
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/textoken.w34
18 files changed, 150 insertions, 66 deletions
diff --git a/Build/source/texk/web2c/luatexdir/NEWS b/Build/source/texk/web2c/luatexdir/NEWS
index f27b9c4faa1..c41a2542f04 100644
--- a/Build/source/texk/web2c/luatexdir/NEWS
+++ b/Build/source/texk/web2c/luatexdir/NEWS
@@ -1,6 +1,23 @@
This file is in the public domain.
+==============================================================
+Luatex Release 0.89.0 was released 2016020500
+==============================================================
+
+No fundamental changes, just some fixes / improvements (and of course new bugglets).
+
+- New backend things:
+ \pdfvariable pkfixeddpi = integer % > 0 : use only default dpi (so one can do with one high res instance)
+ \pdfvariable ignoreunknownimages = integer % > 0 : ignore missing and inject something empty (to be used with care)
+ and one can do this:
+ \edef\foo{\pdfvariable foo}
+ \def \oof{foo}
+ \ifx\foo\oof don't fool me\fi
+ (side effect of no longer aborting on missing, so one implement a catch)
+
+
+
==============================================================
Luatex Release 0.88.0 was released 2016011500
@@ -2643,7 +2660,7 @@ Other news:
we probably introduced new problems as well).
* Most (all?) files now have a corrected Copyright header,
- and link in $Id: NEWS 5726 2016-01-18 11:26:27Z luigi $ and $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/NEWS $ into the object file.
+ and link in $Id: NEWS 5776 2016-02-05 13:49: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/lang/texlang.w b/Build/source/texk/web2c/luatexdir/lang/texlang.w
index 65cc3c1636f..8e0deb3357d 100644
--- a/Build/source/texk/web2c/luatexdir/lang/texlang.w
+++ b/Build/source/texk/web2c/luatexdir/lang/texlang.w
@@ -26,7 +26,7 @@
@ Low-level helpers
@ @c
-#define noVERBOSE
+#define unVERBOSE
#define MAX_TEX_LANGUAGES 16384
@@ -795,7 +795,9 @@ static int valid_wordend(halfword s)
|| type(r) == ins_node
|| type(r) == adjust_node
|| type(r) == penalty_node
- || (type(r) == kern_node && (subtype(r) == explicit || subtype(r) == acc_kern)))
+ || (type(r) == kern_node && (subtype(r) == explicit_kern ||
+ subtype(r) == italic_kern ||
+ subtype(r) == accent_kern )))
return 1;
return 0;
}
diff --git a/Build/source/texk/web2c/luatexdir/lua/lpdflib.c b/Build/source/texk/web2c/luatexdir/lua/lpdflib.c
index cb7aa5aba35..210bc41a7cc 100644
--- a/Build/source/texk/web2c/luatexdir/lua/lpdflib.c
+++ b/Build/source/texk/web2c/luatexdir/lua/lpdflib.c
@@ -730,12 +730,12 @@ static int l_getmatrix(lua_State * L)
{
if (matrix_stack_used > 0) {
matrix_entry *m = &matrix_stack[matrix_stack_used - 1];
- lua_pushinteger(L, m->a);
- lua_pushinteger(L, m->b);
- lua_pushinteger(L, m->c);
- lua_pushinteger(L, m->d);
- lua_pushinteger(L, m->e);
- lua_pushinteger(L, m->f);
+ lua_pushnumber(L, m->a);
+ lua_pushnumber(L, m->b);
+ lua_pushnumber(L, m->c);
+ lua_pushnumber(L, m->d);
+ lua_pushnumber(L, m->e);
+ lua_pushnumber(L, m->f);
} else {
lua_pushinteger(L, 1);
lua_pushinteger(L, 0);
diff --git a/Build/source/texk/web2c/luatexdir/luatex.c b/Build/source/texk/web2c/luatexdir/luatex.c
index 23e5252dcf5..14d5fd2cd99 100644
--- a/Build/source/texk/web2c/luatexdir/luatex.c
+++ b/Build/source/texk/web2c/luatexdir/luatex.c
@@ -30,7 +30,7 @@
int luatex_version = 89; /* \.{\\luatexversion} */
int luatex_revision = '0'; /* \.{\\luatexrevision} */
-int luatex_date_info = 2016012800; /* the compile date is now hardwired */
+int luatex_date_info = 2016020500; /* the compile date is now hardwired */
const char *luatex_version_string = "beta-0.89.0";
const char *engine_name = my_name; /* the name of this engine */
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w
index f14254c1996..a6bf67f3ebb 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w
@@ -538,6 +538,7 @@ void pdf_print_int(PDF pdf, longinteger n)
}
@ @c
+/*
void print_pdffloat(PDF pdf, pdffloat f)
{
char a[24];
@@ -561,6 +562,53 @@ void print_pdffloat(PDF pdf, pdffloat f)
pdf_puts(pdf, (a + 1));
}
}
+*/
+
+void print_pdffloat(PDF pdf, pdffloat f)
+{
+ int64_t m = f.m;
+ if (m == 0) {
+ pdf_out(pdf, '0');
+ } else {
+ int e = f.e;
+ if (e == 0) {
+ /* division by ten_pow[0] == 1 */
+ if (m == 1) {
+ pdf_out(pdf, '1');
+ } else {
+ char a[24];
+ snprintf(a, 23, "%ld", m);
+ pdf_puts(pdf, a);
+ }
+ } else {
+ int t = ten_pow[e] ;
+ if (t == m) {
+ pdf_out(pdf, '1');
+ } else {
+ int i;
+ char a[24];
+ int l = m / t;
+ int w = snprintf(a, 23, "%i", l);
+ pdf_out_block(pdf, (const char *) a, (size_t) w);
+ if (m < 0) {
+ l = - m % t;
+ } else {
+ l = m % t;
+ }
+ if (l != 0) {
+ pdf_out(pdf, '.');
+ snprintf(a, 23, "%d", l + t);
+ for (i = e; i > 0; i--) {
+ if (a[i] != '0')
+ break;
+ a[i] = '\0';
+ }
+ pdf_puts(pdf, (a + 1));
+ }
+ }
+ }
+ }
+}
@ print out |s| as string in PDF output
@@ -914,7 +962,8 @@ static void init_pdf_outputparameters(PDF pdf)
int pk_mode;
pdf->draftmode = fix_int(int_par(draft_mode_code), 0, 1);
pdf->compress_level = fix_int(pdf_compress_level, 0, 9);
- pdf->decimal_digits = fix_int(pdf_decimal_digits, 3, 6);
+ pdf->decimal_digits = fix_int(pdf_decimal_digits, 3, 5);
+/* pdf->decimal_digits = fix_int(pdf_decimal_digits, 3, 6);*//* later, maybe (LS)*/
pdf->gamma = fix_int(pdf_gamma, 0, 1000000);
pdf->image_gamma = fix_int(pdf_image_gamma, 0, 1000000);
pdf->image_hicolor = fix_int(pdf_image_hicolor, 0, 1);
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.w b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.w
index 34bb5d1e933..90f63534d32 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.w
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.w
@@ -105,16 +105,16 @@ boolean calc_pdfpos(pdfstructure * p, scaledpos pos)
boolean move_pdfpos = false;
switch (p->mode) {
case PMODE_PAGE:
- new.h = i32round(pos.h * p->k1);
- new.v = i32round(pos.v * p->k1);
+ new.h = i64round(pos.h * p->k1);
+ new.v = i64round(pos.v * p->k1);
p->cm[4].m = new.h - p->pdf.h.m; /* cm is concatenated */
p->cm[5].m = new.v - p->pdf.v.m;
if (new.h != p->pdf.h.m || new.v != p->pdf.v.m)
move_pdfpos = true;
break;
case PMODE_TEXT:
- new.h = i32round(pos.h * p->k1);
- new.v = i32round(pos.v * p->k1);
+ new.h = i64round(pos.h * p->k1);
+ new.v = i64round(pos.v * p->k1);
p->tm[4].m = new.h - p->pdf_bt_pos.h.m; /* Tm replaces */
p->tm[5].m = new.v - p->pdf_bt_pos.v.m;
if (new.h != p->pdf.h.m || new.v != p->pdf.v.m)
@@ -124,16 +124,16 @@ boolean calc_pdfpos(pdfstructure * p, scaledpos pos)
case PMODE_CHARARRAY:
switch (p->wmode) {
case WMODE_H:
- new.h = i32round((pos.h * p->k1 - (double) p->pdf_tj_pos.h.m) * p->k2);
- new.v = i32round(pos.v * p->k1);
+ new.h = i64round((pos.h * p->k1 - (double) p->pdf_tj_pos.h.m) * p->k2);
+ new.v = i64round(pos.v * p->k1);
p->tj_delta.m = -i64round((double) ((new.h - p->cw.m) / ten_pow[p->cw.e - p->tj_delta.e]));
p->tm[5].m = new.v - p->pdf_bt_pos.v.m; /* p->tm[4] is meaningless */
if (p->tj_delta.m != 0 || new.v != p->pdf.v.m)
move_pdfpos = true;
break;
case WMODE_V:
- new.h = i32round(pos.h * p->k1);
- new.v = i32round(((double) p->pdf_tj_pos.v.m - pos.v * p->k1) * p->k2);
+ new.h = i64round(pos.h * p->k1);
+ new.v = i64round(((double) p->pdf_tj_pos.v.m - pos.v * p->k1) * p->k2);
p->tm[4].m = new.h - p->pdf_bt_pos.h.m; /* p->tm[5] is meaningless */
p->tj_delta.m = -i64round((double) ((new.v - p->cw.m) / ten_pow[p->cw.e - p->tj_delta.e]));
if (p->tj_delta.m != 0 || new.h != p->pdf.h.m)
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w
index e4897dfb04b..2f75b4c761e 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w
@@ -54,7 +54,7 @@ void pdf_place_rule(PDF pdf, halfword q, scaledpos size, int callback_id)
dim.v.e = p->pdf.v.e;
pdf_puts(pdf, "q\n");
if (size.v <= one_bp) {
- pos.v += i32round(0.5 * size.v);
+ pos.v += i64round(0.5 * size.v);
pdf_set_pos_temp(pdf, pos);
pdf_puts(pdf, "[]0 d 0 J ");
print_pdffloat(pdf, dim.v);
@@ -62,7 +62,7 @@ void pdf_place_rule(PDF pdf, halfword q, scaledpos size, int callback_id)
print_pdffloat(pdf, dim.h);
pdf_puts(pdf, " 0 l S\n");
} else if (size.h <= one_bp) {
- pos.h += i32round(0.5 * size.h);
+ pos.h += i64round(0.5 * size.h);
pdf_set_pos_temp(pdf, pos);
pdf_puts(pdf, "[]0 d 0 J ");
print_pdffloat(pdf, dim.h);
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdftypes.h b/Build/source/texk/web2c/luatexdir/pdf/pdftypes.h
index 8a670a5274f..71f843e00f3 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdftypes.h
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdftypes.h
@@ -36,7 +36,14 @@
# define pdfkeyprefix "PTEX"
# define i32round(a) (int) floor((a) + 0.5)
-# define i64round(a) (int64_t) floor((a) + 0.5)
+/*# define i64round(a) (int64_t) floor((a) + 0.5)*/
+/*# define i64round(a) (int64_t) ( (double)(a+0.5) - ((int64_t)(a+0.5))%1 ) */
+#ifdef _WIN32
+# define i64round(a) (int64_t) win32_floor((a) + 0.5)
+#else
+# define i64round(a) (int64_t) lround((a))
+#endif
+
# define MAX_OBJ_COMPRESS_LEVEL 3 /* maximum/clipping value for \pdfobjcompresslevel */
# define OBJSTM_UNSET -1 /* initial value */
@@ -81,9 +88,12 @@ typedef struct {
# define scaled int
typedef struct scaledpos_ {
- scaled h;
- scaled v;
-} scaledpos;
+ int64_t h;
+ int64_t v;
+ } scaledpos;
+
+
+
typedef struct scaled_whd_ {
scaled wd; /* TeX width */
diff --git a/Build/source/texk/web2c/luatexdir/tex/commands.h b/Build/source/texk/web2c/luatexdir/tex/commands.h
index d2a7779a0e1..60bfef895d2 100644
--- a/Build/source/texk/web2c/luatexdir/tex/commands.h
+++ b/Build/source/texk/web2c/luatexdir/tex/commands.h
@@ -327,13 +327,10 @@ typedef enum {
expand_font_code,
} normal_codes;
-# define explicit 1
-# define acc_kern 2
# define lp_code_base 2
# define rp_code_base 3
# define ef_code_base 4
# define tag_code 5
-# define auto_kern explicit
# define no_lig_code 6
# define immediate_code 4 /* command modifier for \.{\\immediate} */
diff --git a/Build/source/texk/web2c/luatexdir/tex/commands.w b/Build/source/texk/web2c/luatexdir/tex/commands.w
index 125b203a341..53497af528c 100644
--- a/Build/source/texk/web2c/luatexdir/tex/commands.w
+++ b/Build/source/texk/web2c/luatexdir/tex/commands.w
@@ -405,7 +405,7 @@ void initialize_commands(void)
primitive_tex("vss", vskip_cmd, ss_code, 0);
primitive_tex("vfilneg", vskip_cmd, fil_neg_code, 0);
primitive_tex("mskip", mskip_cmd, mskip_code, 0);
- primitive_tex("kern", kern_cmd, explicit, 0);
+ primitive_tex("kern", kern_cmd, explicit_kern, 0);
primitive_tex("mkern", mkern_cmd, mu_glue, 0);
primitive_tex("moveleft", hmove_cmd, 1, 0);
primitive_tex("moveright", hmove_cmd, 0, 0);
diff --git a/Build/source/texk/web2c/luatexdir/tex/linebreak.w b/Build/source/texk/web2c/luatexdir/tex/linebreak.w
index 28ab6fa5586..b2909606d48 100644
--- a/Build/source/texk/web2c/luatexdir/tex/linebreak.w
+++ b/Build/source/texk/web2c/luatexdir/tex/linebreak.w
@@ -913,7 +913,7 @@ static void compute_break_width(int break_type, int line_break_dir, int adjust_s
case penalty_node:
break;
case kern_node:
- if (subtype(s) != explicit)
+ if (subtype(s) != explicit_kern && subtype(s) != italic_kern)
return;
else
break_width[1] -= width(s);
@@ -1866,7 +1866,8 @@ void ext_do_line_break(int paragraph_dir,
if (prev_p != temp_head && (
is_char_node(prev_p)
|| precedes_break(prev_p)
- || ((type(prev_p) == kern_node) && (subtype(prev_p) != explicit))
+ || ((type(prev_p) == kern_node) && (subtype(prev_p) != explicit_kern &&
+ subtype(prev_p) != italic_kern ))
)) {
ext_try_break(0, unhyphenated_node, line_break_dir, adjust_spacing,
par_shape_ptr, adj_demerits,
@@ -1889,7 +1890,7 @@ void ext_do_line_break(int paragraph_dir,
/* end mathskip code */
break;
case kern_node:
- if (subtype(cur_p) == explicit) {
+ if (subtype(cur_p) == explicit_kern || subtype(cur_p) == italic_kern) {
kern_break();
} else {
active_width[1] += width(cur_p);
diff --git a/Build/source/texk/web2c/luatexdir/tex/maincontrol.w b/Build/source/texk/web2c/luatexdir/tex/maincontrol.w
index c6b30b09921..ff7e7279a07 100644
--- a/Build/source/texk/web2c/luatexdir/tex/maincontrol.w
+++ b/Build/source/texk/web2c/luatexdir/tex/maincontrol.w
@@ -25,13 +25,10 @@
/* these will move to equivalents.h */
@ @c
-#define explicit 1
-#define acc_kern 2
#define lp_code_base 2
#define rp_code_base 3
#define ef_code_base 4
#define tag_code 5
-#define auto_kern explicit
#define no_lig_code 6
#define gp_code_base 7
@@ -505,7 +502,7 @@ static void run_par_end_hmode (void) {
@ @c
static void append_italic_correction_mmode (void) {
- tail_append(new_kern(0));
+ tail_append(new_kern(0)); /* what subtype to use */
}
@ @c
@@ -1810,7 +1807,7 @@ void append_italic_correction(void)
return;
f = font(p);
tail_append(new_kern(char_italic(f, character(p))));
- subtype(tail) = explicit;
+ subtype(tail) = italic_kern;
}
}
@@ -2035,11 +2032,11 @@ void make_accent(void)
}
delta = round(float_cast(w - a) / float_constant(2) + h * t - x * s); /* real multiplication */
r = new_kern(delta);
- subtype(r) = acc_kern;
+ subtype(r) = accent_kern;
couple_nodes(tail, r);
couple_nodes(r, p);
tail = new_kern(-a - delta);
- subtype(tail) = acc_kern;
+ subtype(tail) = accent_kern;
couple_nodes(p, tail);
p = q;
diff --git a/Build/source/texk/web2c/luatexdir/tex/mlist.w b/Build/source/texk/web2c/luatexdir/tex/mlist.w
index 035ef6340dd..fbded284414 100644
--- a/Build/source/texk/web2c/luatexdir/tex/mlist.w
+++ b/Build/source/texk/web2c/luatexdir/tex/mlist.w
@@ -1567,7 +1567,7 @@ static void math_kern(pointer p, scaled m)
f = f + unity;
}
width(p) = mu_mult(width(p));
- subtype(p) = explicit;
+ subtype(p) = italic_kern;
}
}
diff --git a/Build/source/texk/web2c/luatexdir/tex/postlinebreak.w b/Build/source/texk/web2c/luatexdir/tex/postlinebreak.w
index 873eaf96856..b78b599aac6 100644
--- a/Build/source/texk/web2c/luatexdir/tex/postlinebreak.w
+++ b/Build/source/texk/web2c/luatexdir/tex/postlinebreak.w
@@ -174,7 +174,7 @@ void ext_post_line_break(int paragraph_dir,
break;
} else if (non_discardable(q)) {
break;
- } else if (type(q) == kern_node && subtype(q) != explicit) {
+ } else if (type(q) == kern_node && subtype(q) != explicit_kern && subtype(q) != italic_kern) {
break;
}
q = vlink(q);
@@ -559,7 +559,7 @@ void ext_post_line_break(int paragraph_dir,
if (q == cur_break(cur_p) || is_char_node(q))
break;
if (!((type(q) == local_par_node))) {
- if (non_discardable(q) || (type(q) == kern_node && subtype(q) != explicit))
+ if (non_discardable(q) || (type(q) == kern_node && subtype(q) != explicit_kern && subtype(q) != italic_kern))
break;
}
*/
@@ -581,7 +581,7 @@ void ext_post_line_break(int paragraph_dir,
/* weird, in the middle somewhere */
} else if (non_discardable(q)) {
break;
- } else if (type(q) == kern_node && subtype(q) != explicit) {
+ } else if (type(q) == kern_node && subtype(q) != explicit_kern && subtype(q) != italic_kern) {
break;
}
r = q;
diff --git a/Build/source/texk/web2c/luatexdir/tex/printing.w b/Build/source/texk/web2c/luatexdir/tex/printing.w
index baafa24a8af..478d55f88ba 100644
--- a/Build/source/texk/web2c/luatexdir/tex/printing.w
+++ b/Build/source/texk/web2c/luatexdir/tex/printing.w
@@ -987,11 +987,13 @@ void short_display_n(int p, int m)
print(character(p));
}
} else {
- if ((type(p) == glue_node) ||
- (type(p) == disc_node) ||
- (type(p) == penalty_node) ||
- ((type(p) == kern_node) && (subtype(p) == explicit)))
+ if ( (type(p) == glue_node) ||
+ (type(p) == disc_node) ||
+ (type(p) == penalty_node) ||
+ ((type(p) == kern_node) && (subtype(p) == explicit_kern ||
+ subtype(p) == italic_kern ))) {
incr(i);
+ }
if (i >= m)
return;
if (type(p) == disc_node) {
diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.h b/Build/source/texk/web2c/luatexdir/tex/texnodes.h
index 618902b58fd..d5198b92f03 100644
--- a/Build/source/texk/web2c/luatexdir/tex/texnodes.h
+++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.h
@@ -177,9 +177,14 @@ typedef enum {
# define tlink_post_break(a) tlink(post_break_head(a))
# define tlink_no_break(a) tlink(no_break_head(a))
+typedef enum {
+ font_kern = 0,
+ explicit_kern, /* |subtype| of kern nodes from \.{\\kern} and \.{\\/} */
+ accent_kern, /* |subtype| of kern nodes from accents */
+ italic_kern,
+} kern_subtypes;
+
# define kern_node_size 5
-# define explicit 1 /* |subtype| of kern nodes from \.{\\kern} and \.{\\/} */
-# define acc_kern 2 /* |subtype| of kern nodes from accents */
# define ex_kern(a) vinfo((a)+3) /* expansion factor (hz) */
# define synctex_tag_kern(a) vinfo((a)+4)
# define synctex_line_kern(a) vlink((a)+4)
diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.w b/Build/source/texk/web2c/luatexdir/tex/texnodes.w
index 0e0c92676e9..de718139923 100644
--- a/Build/source/texk/web2c/luatexdir/tex/texnodes.w
+++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.w
@@ -280,7 +280,7 @@ const char *node_subtypes_penalty[] = {
"userpenalty", NULL
};
const char *node_subtypes_kern[] = {
- "fontkern", "userkern", "accentkern", NULL
+ "fontkern", "userkern", "accentkern", "italiccorrection", NULL
};
const char *node_subtypes_rule[] = {
"normal", "box", "image", "empty", "user", NULL
@@ -3092,7 +3092,7 @@ void show_node_list(int p)
if (subtype(p) != normal)
print_char(' ');
print_scaled(width(p));
- if (subtype(p) == acc_kern)
+ if (subtype(p) == accent_kern)
tprint(" (for accent)");
} else {
tprint_esc("mkern");
diff --git a/Build/source/texk/web2c/luatexdir/tex/textoken.w b/Build/source/texk/web2c/luatexdir/tex/textoken.w
index 4b14b6ec9fe..5b10b1cdd2d 100644
--- a/Build/source/texk/web2c/luatexdir/tex/textoken.w
+++ b/Build/source/texk/web2c/luatexdir/tex/textoken.w
@@ -238,6 +238,10 @@ including the expansion of a macro or mark.
@c
void print_meaning(void)
{
+ if (cur_cmd == math_char_num_cmd && cur_chr == 0) {
+ /* \mathchar -> \Umathchar */
+ cur_chr = 1 ;
+ }
print_cmd_chr((quarterword) cur_cmd, cur_chr);
if (cur_cmd >= call_cmd) {
print_char(':');
@@ -249,21 +253,21 @@ void print_meaning(void)
print_char(':');
print_ln();
switch (cur_chr) {
- case first_mark_code:
- token_show(first_mark(0));
- break;
- case bot_mark_code:
- token_show(bot_mark(0));
- break;
- case split_first_mark_code:
- token_show(split_first_mark(0));
- break;
- case split_bot_mark_code:
- token_show(split_bot_mark(0));
- break;
- default:
- token_show(top_mark(0));
- break;
+ case first_mark_code:
+ token_show(first_mark(0));
+ break;
+ case bot_mark_code:
+ token_show(bot_mark(0));
+ break;
+ case split_first_mark_code:
+ token_show(split_first_mark(0));
+ break;
+ case split_bot_mark_code:
+ token_show(split_bot_mark(0));
+ break;
+ default:
+ token_show(top_mark(0));
+ break;
}
}
}