summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/tex/mlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex/mlist.c')
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/mlist.c37
1 files changed, 10 insertions, 27 deletions
diff --git a/Build/source/texk/web2c/luatexdir/tex/mlist.c b/Build/source/texk/web2c/luatexdir/tex/mlist.c
index 43db6adbbb2..c34dee48839 100644
--- a/Build/source/texk/web2c/luatexdir/tex/mlist.c
+++ b/Build/source/texk/web2c/luatexdir/tex/mlist.c
@@ -1248,13 +1248,6 @@ static void stack_glue_into_box(pointer b, scaled min, scaled max) {
int cur_size = 0;
-/*tex A few state variables: */
-
-halfword del_height = 0;
-halfword del_depth = 0;
-halfword del_width = 0;
-halfword del_shift = 0;
-
static pointer get_delim_box(internal_font_number fnt, halfword chr, scaled v, scaled min_overlap, int horizontal, halfword att)
{
int callback_id = callback_defined(make_extensible_callback);
@@ -1549,10 +1542,8 @@ static pointer do_delimiter(pointer q, pointer d, int s, scaled v, boolean flat,
if (d && ! small_fam(d) && ! large_fam(d) && ! small_char(d) && ! large_char(d)) {
halfword b = new_null_box();
subtype(b) = math_v_delimiter_list;
- height(b) = del_height;
- depth(b) = del_depth;
- width(b) = del_width;
- shift_amount(b) = del_shift;
+ if (! flat)
+ width(b) = null_delimiter_space_par;
node_attr(b) = node_attr(d);
node_attr(d) = null;
flush_node(d);
@@ -1709,12 +1700,6 @@ static pointer do_delimiter(pointer q, pointer d, int s, scaled v, boolean flat,
}
DONE:
delete_attribute_ref(att);
-
- del_height = height(b);
- del_depth = depth(b);
- del_width = width(b);
- del_shift = shift_amount(b);
-
return b;
}
@@ -3003,10 +2988,7 @@ static void make_fraction(pointer q, int cur_style)
/*tex This also equals |width(z)|. */
width(v) = width(x);
reset_attributes(v, node_attr(q));
- if (thickness(q) == 0) {
- p = new_kern((shift_up - depth(x)) - (height(z) - shift_down));
- couple_nodes(p,z);
- } else {
+ if (thickness(q) && ! fractionnorule(q)) {
y = do_fraction_rule(thickness(q), node_attr(q), math_fraction_rule, cur_size, used_fam);
p = new_kern((math_axis_size(cur_size) - delta) - (height(z) - shift_down));
reset_attributes(p, node_attr(q));
@@ -3014,6 +2996,9 @@ static void make_fraction(pointer q, int cur_style)
couple_nodes(p,z);
p = new_kern((shift_up - depth(x)) - (math_axis_size(cur_size) + delta));
couple_nodes(p,y);
+ } else {
+ p = new_kern((shift_up - depth(x)) - (height(z) - shift_down));
+ couple_nodes(p,z);
}
reset_attributes(p, node_attr(q));
couple_nodes(x,p);
@@ -3321,12 +3306,10 @@ static scaled make_op(pointer q, int cur_style)
shift_down = limit_below_bgap(cur_style) - height(z);
if (shift_down < limit_below_vgap(cur_style))
shift_down = limit_below_vgap(cur_style);
- if (shift_down > 0) {
- p = new_kern(shift_down);
- reset_attributes(p, node_attr(q));
- couple_nodes(y,p);
- couple_nodes(p,z);
- }
+ p = new_kern(shift_down);
+ reset_attributes(p, node_attr(q));
+ couple_nodes(y,p);
+ couple_nodes(p,z);
p = new_kern(limit_below_kern(cur_style));
reset_attributes(p, node_attr(q));
couple_nodes(z,p);