summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/tex
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-04-13 22:04:10 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-04-13 22:04:10 +0000
commit34dc70f0a26a867b37315dbbdd14c3ae02ff2b4d (patch)
tree05ce74e56ed3c2ce51b81f8debce967d07780194 /Build/source/texk/web2c/luatexdir/tex
parent1a82e530ab0482ca68c80d12ad7892f297e79311 (diff)
web2c/luatexdir: sync with the upstream
git-svn-id: svn://tug.org/texlive/trunk@40490 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex')
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/packaging.w19
1 files changed, 17 insertions, 2 deletions
diff --git a/Build/source/texk/web2c/luatexdir/tex/packaging.w b/Build/source/texk/web2c/luatexdir/tex/packaging.w
index 5b9aa8b8995..4a5ab77c690 100644
--- a/Build/source/texk/web2c/luatexdir/tex/packaging.w
+++ b/Build/source/texk/web2c/luatexdir/tex/packaging.w
@@ -1144,6 +1144,8 @@ scaled_whd natural_sizes(halfword p, halfword pp, glue_ratio g_mult,
int hpack_dir;
scaled_whd xx; /* for recursion */
scaled_whd whd, siz = { 0, 0, 0 };
+ scaled gp = 0;
+ scaled gm = 0;
if (pack_direction == -1) {
hpack_dir = text_direction;
} else {
@@ -1208,10 +1210,16 @@ scaled_whd natural_sizes(halfword p, halfword pp, glue_ratio g_mult,
if (g_sign != normal) {
if (g_sign == stretching) {
if (stretch_order(p) == g_order) {
- siz.wd += float_round(float_cast(g_mult) * float_cast(stretch(p)));
+ /*
+ siz.wd += float_round(float_cast(g_mult) * float_cast(stretch(p)));
+ */
+ gp += stretch(p);
}
} else if (shrink_order(p) == g_order) {
- siz.wd -= float_round(float_cast(g_mult) * float_cast(shrink(p)));
+ /*
+ siz.wd -= float_round(float_cast(g_mult) * float_cast(shrink(p)));
+ */
+ gm += shrink(p);
}
}
if (subtype(p) >= a_leaders) {
@@ -1243,6 +1251,13 @@ scaled_whd natural_sizes(halfword p, halfword pp, glue_ratio g_mult,
}
}
+ if (g_sign != normal) {
+ if (g_sign == stretching) {
+ siz.wd += float_round(float_cast(g_mult) * float_cast(gp));
+ } else {
+ siz.wd -= float_round(float_cast(g_mult) * float_cast(gm));
+ }
+ }
return siz;
}