diff options
author | Luigi Scarso <luigi.scarso@gmail.com> | 2019-11-08 09:36:30 +0000 |
---|---|---|
committer | Luigi Scarso <luigi.scarso@gmail.com> | 2019-11-08 09:36:30 +0000 |
commit | 034a409094cd443345893b589c78c74da42de3bf (patch) | |
tree | 4aa1863fd733bac3fb532e9a7c856140b6f0c88b /Build/source/texk/web2c/luatexdir/tex | |
parent | e83bb7136c59c830a0a2a83e1526aa7ed3030bc3 (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.c | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/tex/linebreak.c | 18 |
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); |