version 1.69, 2017/06/23 21:04:57 |
version 1.70, 2017/06/26 11:04:47 |
|
|
/* $Id$ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org> |
Line 722 static enum rofferr |
|
Line 722 static enum rofferr |
|
eqn_parse(struct eqn_node *ep, struct eqn_box *parent) |
eqn_parse(struct eqn_node *ep, struct eqn_box *parent) |
{ |
{ |
char sym[64]; |
char sym[64]; |
struct eqn_box *cur, *nbox; |
struct eqn_box *cur, *nbox, *split; |
const char *cp, *cpn, *start; |
const char *cp, *cpn, *start; |
char *p; |
char *p; |
size_t sz; |
size_t sz; |
|
|
break; |
break; |
cpn = p - 1; |
cpn = p - 1; |
ccln = CCL_LET; |
ccln = CCL_LET; |
|
split = NULL; |
for (;;) { |
for (;;) { |
/* Advance to next character. */ |
/* Advance to next character. */ |
cp = cpn++; |
cp = cpn++; |
|
|
parent->last = cur->prev; |
parent->last = cur->prev; |
parent->args--; |
parent->args--; |
/* Set up a list instead. */ |
/* Set up a list instead. */ |
nbox = eqn_box_alloc(ep, parent); |
split = eqn_box_alloc(ep, parent); |
nbox->type = EQN_LIST; |
split->type = EQN_LIST; |
/* Insert the word into the list. */ |
/* Insert the word into the list. */ |
nbox->first = nbox->last = cur; |
split->first = split->last = cur; |
cur->parent = nbox; |
cur->parent = split; |
cur->prev = NULL; |
cur->prev = NULL; |
parent = nbox; |
parent = split; |
} |
} |
/* Append a new text box. */ |
/* Append a new text box. */ |
nbox = eqn_box_alloc(ep, parent); |
nbox = eqn_box_alloc(ep, parent); |
|
|
cpn = p - 1; |
cpn = p - 1; |
ccln = CCL_LET; |
ccln = CCL_LET; |
} |
} |
|
if (split != NULL) |
|
parent = split->parent; |
break; |
break; |
} |
} |
/* |
/* |