version 1.73, 2017/07/05 15:03:27 |
version 1.74, 2017/07/06 00:19:54 |
|
|
ep->gsize = size; |
ep->gsize = size; |
break; |
break; |
} |
} |
|
while (parent->args == parent->expectargs) |
|
parent = parent->parent; |
parent = eqn_box_alloc(ep, parent); |
parent = eqn_box_alloc(ep, parent); |
parent->type = EQN_LIST; |
parent->type = EQN_LIST; |
parent->expectargs = 1; |
parent->expectargs = 1; |
|
|
cur->type = EQN_TEXT; |
cur->type = EQN_TEXT; |
cur->text = mandoc_strdup(""); |
cur->text = mandoc_strdup(""); |
} |
} |
/* Handle the "subsup" and "fromto" positions. */ |
while (parent->expectargs == 1 && parent->args == 1) |
if (EQN_TOK_SUP == tok && parent->pos == EQNPOS_SUB) { |
parent = parent->parent; |
|
if (tok == EQN_TOK_FROM || tok == EQN_TOK_TO) { |
|
for (cur = parent; cur != NULL; cur = cur->parent) |
|
if (cur->pos == EQNPOS_SUB || |
|
cur->pos == EQNPOS_SUP || |
|
cur->pos == EQNPOS_SUBSUP || |
|
cur->pos == EQNPOS_SQRT || |
|
cur->pos == EQNPOS_OVER) |
|
break; |
|
if (cur != NULL) |
|
parent = cur->parent; |
|
} |
|
if (tok == EQN_TOK_SUP && parent->pos == EQNPOS_SUB) { |
parent->expectargs = 3; |
parent->expectargs = 3; |
parent->pos = EQNPOS_SUBSUP; |
parent->pos = EQNPOS_SUBSUP; |
break; |
break; |
} |
} |
if (EQN_TOK_TO == tok && parent->pos == EQNPOS_FROM) { |
if (tok == EQN_TOK_TO && parent->pos == EQNPOS_FROM) { |
parent->expectargs = 3; |
parent->expectargs = 3; |
parent->pos = EQNPOS_FROMTO; |
parent->pos = EQNPOS_FROMTO; |
break; |
break; |
|
|
cur->type = EQN_TEXT; |
cur->type = EQN_TEXT; |
cur->text = mandoc_strdup(""); |
cur->text = mandoc_strdup(""); |
} |
} |
|
while (parent->args == parent->expectargs) |
|
parent = parent->parent; |
while (EQN_SUBEXPR == parent->type) |
while (EQN_SUBEXPR == parent->type) |
parent = parent->parent; |
parent = parent->parent; |
parent = eqn_box_makebinary(ep, EQNPOS_OVER, parent); |
parent = eqn_box_makebinary(ep, EQNPOS_OVER, parent); |
|
|
parent = split->parent; |
parent = split->parent; |
break; |
break; |
} |
} |
/* |
|
* Post-process list status. |
|
*/ |
|
while (parent->type == EQN_LIST && |
|
parent->expectargs == 1 && |
|
parent->args == 1) |
|
parent = parent->parent; |
|
break; |
break; |
default: |
default: |
abort(); |
abort(); |