summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/tex
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex')
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/printing.c20
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/stringpool.c3
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/texmath.c14
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/texnodes.c2
4 files changed, 28 insertions, 11 deletions
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];