summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/tex
diff options
context:
space:
mode:
authorLuigi Scarso <luigi.scarso@gmail.com>2019-11-08 09:36:30 +0000
committerLuigi Scarso <luigi.scarso@gmail.com>2019-11-08 09:36:30 +0000
commit034a409094cd443345893b589c78c74da42de3bf (patch)
tree4aa1863fd733bac3fb532e9a7c856140b6f0c88b /Build/source/texk/web2c/luatexdir/tex
parente83bb7136c59c830a0a2a83e1526aa7ed3030bc3 (diff)
sync with luatex local svn repo.
git-svn-id: svn://tug.org/texlive/trunk@52692 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex')
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/dumpdata.c2
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/linebreak.c18
2 files changed, 14 insertions, 6 deletions
diff --git a/Build/source/texk/web2c/luatexdir/tex/dumpdata.c b/Build/source/texk/web2c/luatexdir/tex/dumpdata.c
index 78835d00f6e..fdd586afaf7 100644
--- a/Build/source/texk/web2c/luatexdir/tex/dumpdata.c
+++ b/Build/source/texk/web2c/luatexdir/tex/dumpdata.c
@@ -32,7 +32,7 @@ with LuaTeX; if not, see <http://www.gnu.org/licenses/>.
*/
-#define FORMAT_ID (907+51)
+#define FORMAT_ID (907+52)
#if ((FORMAT_ID>=0) && (FORMAT_ID<=256))
#error Wrong value for FORMAT_ID.
#endif
diff --git a/Build/source/texk/web2c/luatexdir/tex/linebreak.c b/Build/source/texk/web2c/luatexdir/tex/linebreak.c
index d31a63236a8..3da4b1386a0 100644
--- a/Build/source/texk/web2c/luatexdir/tex/linebreak.c
+++ b/Build/source/texk/web2c/luatexdir/tex/linebreak.c
@@ -114,9 +114,9 @@ void line_break(boolean d, int line_break_context)
tail_append(new_penalty(inf_penalty,line_penalty));
} else {
halfword t = alink(cur_list.tail_field);
- flush_node(cur_list.tail_field);
- cur_list.tail_field = t;
- tail_append(new_penalty(inf_penalty,line_penalty));
+ flush_node(cur_list.tail_field);
+ cur_list.tail_field = t;
+ tail_append(new_penalty(inf_penalty,line_penalty));
}
final_par_glue = new_param_glue(par_fill_skip_code);
couple_nodes(cur_list.tail_field, final_par_glue);
@@ -1811,8 +1811,16 @@ static void ext_try_break(
else
d += final_hyphen_demerits;
}
- if (abs(fit_class - fitness(r)) > 1)
- d = d + adj_demerits;
+ /*tex
+
+ Direct calculation of the absolute value of ((|fit_class| - |fitness(r)|) > 1) where
+ |fitness(r)| is an unsigned integral type can lead to unexpected results if
+ |fitness(r)| is not an |int|, due to the rules of integer promotions.
+ It's better to use the equivalent expanded expression.
+ */
+ if ( (fit_class>(fitness(r)+1)) || (fitness(r)>(fit_class+1)) )
+ d = d + adj_demerits;
+
}
if (tracing_paragraphs > 0) {
print_feasible_break(cur_p, r, b, pi, d, artificial_demerits);