version 1.15, 2017/08/23 20:29:42 |
version 1.18, 2018/10/02 12:18:33 |
|
|
eqn_box(struct termp *p, const struct eqn_box *bp) |
eqn_box(struct termp *p, const struct eqn_box *bp) |
{ |
{ |
const struct eqn_box *child; |
const struct eqn_box *child; |
|
const char *cp; |
int delim; |
int delim; |
|
|
/* Delimiters around this box? */ |
/* Delimiters around this box? */ |
Line 94 eqn_box(struct termp *p, const struct eqn_box *bp) |
|
Line 95 eqn_box(struct termp *p, const struct eqn_box *bp) |
|
if (strchr("!\"'),.:;?]}", *bp->text) != NULL) |
if (strchr("!\"'),.:;?]}", *bp->text) != NULL) |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
term_word(p, bp->text); |
term_word(p, bp->text); |
if (*bp->text != '\0' && strchr("\"'([{", |
if ((cp = strchr(bp->text, '\0')) > bp->text && |
bp->text[strlen(bp->text) - 1]) != NULL) |
(strchr("\"'([{", cp[-1]) != NULL || |
|
(bp->prev == NULL && (cp[-1] == '-' || |
|
(cp >= bp->text + 5 && |
|
strcmp(cp - 5, "\\[mi]") == 0))))) |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
} |
} |
|
|
/* Special box types. */ |
/* Special box types. */ |
|
|
if (bp->pos == EQNPOS_SQRT) { |
if (bp->pos == EQNPOS_SQRT) { |
term_word(p, "sqrt"); |
term_word(p, "\\(sr"); |
if (bp->first != NULL) { |
if (bp->first != NULL) { |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
eqn_box(p, bp->first); |
eqn_box(p, bp->first); |