From 94f37765fbf85a717ee0106d1eee3689582eb9d9 Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Sat, 23 Apr 2022 01:55:48 +0000 Subject: luatex: sync with the upstream git-svn-id: svn://tug.org/texlive/trunk@63110 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/luatexdir/tex/printing.c | 20 ++++++++++++++++++-- Build/source/texk/web2c/luatexdir/tex/stringpool.c | 3 +-- Build/source/texk/web2c/luatexdir/tex/texmath.c | 14 ++++++++------ Build/source/texk/web2c/luatexdir/tex/texnodes.c | 2 +- 4 files changed, 28 insertions(+), 11 deletions(-) (limited to 'Build/source/texk/web2c/luatexdir/tex') diff --git a/Build/source/texk/web2c/luatexdir/tex/printing.c b/Build/source/texk/web2c/luatexdir/tex/printing.c index 02756f5caeb..d9ab1b42643 100644 --- a/Build/source/texk/web2c/luatexdir/tex/printing.c +++ b/Build/source/texk/web2c/luatexdir/tex/printing.c @@ -182,6 +182,22 @@ that length because we have utf output so length is then a bit fuzzy anyway. #define escaped_char(A) \ A+64 + +#define wlog_char(A) \ + if (needs_escaping(A)) { \ + wlog(A); \ + } else { \ + if (file_offset+2>=max_print_line) { \ + wlog_cr(); \ + file_offset=0; \ + } \ + wlog('^'); \ + wlog('^'); \ + wlog(escaped_char(A)); \ + file_offset += 2; \ + } + + #define wterm_char(A) \ if (needs_escaping(A)) { \ wterm(A); \ @@ -241,7 +257,7 @@ void print_char(int s) break; case log_only: fix_log_offset(s); - wlog(s); + wlog_char(s); incr(file_offset); if (file_offset == max_print_line) { wlog_cr(); @@ -252,7 +268,7 @@ void print_char(int s) fix_term_offset(s); fix_log_offset(s); wterm_char(s); - wlog(s); + wlog_char(s); incr(term_offset); incr(file_offset); if (term_offset == max_print_line) { diff --git a/Build/source/texk/web2c/luatexdir/tex/stringpool.c b/Build/source/texk/web2c/luatexdir/tex/stringpool.c index bc09f814b00..731d9178fb1 100644 --- a/Build/source/texk/web2c/luatexdir/tex/stringpool.c +++ b/Build/source/texk/web2c/luatexdir/tex/stringpool.c @@ -272,9 +272,8 @@ str_number maketexlstring(const char *s, size_t l) void append_string(const unsigned char *s, unsigned l) { - if (s == NULL || *s == 0) + if (s == NULL || l == 0) return; - l = (unsigned) strlen((const char *) s); str_room(l); memcpy(cur_string + cur_length, s, l); cur_length += l; diff --git a/Build/source/texk/web2c/luatexdir/tex/texmath.c b/Build/source/texk/web2c/luatexdir/tex/texmath.c index 01a0657ac83..7a71fd80349 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texmath.c +++ b/Build/source/texk/web2c/luatexdir/tex/texmath.c @@ -264,10 +264,12 @@ void def_math_param(int param_id, int style_id, scaled value, int lvl) { int n = param_id + (256 * style_id); sa_tree_item sa_value = { 0 }; - if (param_id >= math_param_ord_ord_spacing && param_id <= math_param_inner_inner_spacing) { - sa_tree_item ti = get_sa_item(math_param_head, n); - if (ti.int_value > thick_mu_skip_code && valid_node(ti.int_value)) { - free_node(ti.int_value, glue_spec_size); + if (lvl <= 1) { + if (param_id >= math_param_ord_ord_spacing && param_id <= math_param_inner_inner_spacing) { + sa_tree_item ti = get_sa_item(math_param_head, n); + if (ti.int_value > thick_mu_skip_code && valid_node(ti.int_value)) { + free_node(ti.int_value, glue_spec_size); + } } } sa_value.int_value = (int) value; @@ -2498,7 +2500,7 @@ static void finish_displayed_math(boolean l, pointer eqno_box, pointer p) d = 0; } tail_append(new_penalty(pre_display_penalty_par,after_display_penalty)); - + /* tex By default the short skip detection is not adapted to r2l typesetting and that hasn't been the case since the start of the project. Changing it could break @@ -2514,7 +2516,7 @@ static void finish_displayed_math(boolean l, pointer eqno_box, pointer p) g1 = above_display_short_skip_code; g2 = below_display_short_skip_code; } - } else { + } else { if ((d + line_s <= pre_display_size_par) || ((! dir_math_save && l) || (dir_math_save && ! l))) { /*tex not enough clearance */ g1 = above_display_skip_code; diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.c b/Build/source/texk/web2c/luatexdir/tex/texnodes.c index 3b4152364c1..b332dbdcbc5 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texnodes.c +++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.c @@ -124,7 +124,7 @@ field_info node_fields_whatsit_special[3]; field_info node_fields_whatsit_user_defined[5]; field_info node_fields_whatsit_write[4]; -field_info node_fields_whatsit_pdf_action[7]; +field_info node_fields_whatsit_pdf_action[8]; field_info node_fields_whatsit_pdf_annot[7]; field_info node_fields_whatsit_pdf_colorstack[5]; field_info node_fields_whatsit_pdf_dest[10]; -- cgit v1.2.3