version 1.98, 2010/12/06 11:01:19 |
version 1.100, 2011/01/12 17:00:07 |
Line 252 lookup_raw(const char *p) |
|
Line 252 lookup_raw(const char *p) |
|
static int |
static int |
rew_last(struct mdoc *mdoc, const struct mdoc_node *to) |
rew_last(struct mdoc *mdoc, const struct mdoc_node *to) |
{ |
{ |
|
struct mdoc_node *n, *np; |
|
|
assert(to); |
assert(to); |
mdoc->next = MDOC_NEXT_SIBLING; |
mdoc->next = MDOC_NEXT_SIBLING; |
|
|
/* LINTED */ |
/* LINTED */ |
while (mdoc->last != to) { |
while (mdoc->last != to) { |
|
/* |
|
* Save the parent here, because we may delete the |
|
* m->last node in the post-validation phase and reset |
|
* it to m->last->parent, causing a step in the closing |
|
* out to be lost. |
|
*/ |
|
np = mdoc->last->parent; |
if ( ! mdoc_valid_post(mdoc)) |
if ( ! mdoc_valid_post(mdoc)) |
return(0); |
return(0); |
mdoc->last = mdoc->last->parent; |
n = mdoc->last; |
|
mdoc->last = np; |
assert(mdoc->last); |
assert(mdoc->last); |
|
mdoc->last->last = n; |
} |
} |
|
|
return(mdoc_valid_post(mdoc)); |
return(mdoc_valid_post(mdoc)); |