From: schwarze Date: Mon, 26 Jun 2017 11:04:26 +0000 (+0000) Subject: when splitting a composite word, X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=698f1840d5b125ab1246aca33e037a903722ef11;p=openbsd when splitting a composite word, do not forget to close the inserted list box --- diff --git a/usr.bin/mandoc/eqn.c b/usr.bin/mandoc/eqn.c index 6b8bb9b3c5e..cf860f2c51c 100644 --- a/usr.bin/mandoc/eqn.c +++ b/usr.bin/mandoc/eqn.c @@ -1,4 +1,4 @@ -/* $OpenBSD: eqn.c,v 1.32 2017/06/23 21:04:34 schwarze Exp $ */ +/* $OpenBSD: eqn.c,v 1.33 2017/06/26 11:04:26 schwarze Exp $ */ /* * Copyright (c) 2011, 2014 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2017 Ingo Schwarze @@ -720,7 +720,7 @@ static enum rofferr eqn_parse(struct eqn_node *ep, struct eqn_box *parent) { char sym[64]; - struct eqn_box *cur, *nbox; + struct eqn_box *cur, *nbox, *split; const char *cp, *cpn, *start; char *p; size_t sz; @@ -1116,6 +1116,7 @@ this_tok: break; cpn = p - 1; ccln = CCL_LET; + split = NULL; for (;;) { /* Advance to next character. */ cp = cpn++; @@ -1147,13 +1148,13 @@ this_tok: parent->last = cur->prev; parent->args--; /* Set up a list instead. */ - nbox = eqn_box_alloc(ep, parent); - nbox->type = EQN_LIST; + split = eqn_box_alloc(ep, parent); + split->type = EQN_LIST; /* Insert the word into the list. */ - nbox->first = nbox->last = cur; - cur->parent = nbox; + split->first = split->last = cur; + cur->parent = split; cur->prev = NULL; - parent = nbox; + parent = split; } /* Append a new text box. */ nbox = eqn_box_alloc(ep, parent); @@ -1170,6 +1171,8 @@ this_tok: cpn = p - 1; ccln = CCL_LET; } + if (split != NULL) + parent = split->parent; break; } /*