version 1.54, 2010/12/08 10:58:22 |
version 1.55, 2011/01/12 16:55:22 |
Line 107 rew_warn(struct man *m, struct man_node *n, enum mando |
|
Line 107 rew_warn(struct man *m, struct man_node *n, enum mando |
|
* will be used if an explicit block scope is being closed out. |
* will be used if an explicit block scope is being closed out. |
*/ |
*/ |
int |
int |
man_unscope(struct man *m, const struct man_node *n, |
man_unscope(struct man *m, const struct man_node *to, |
enum mandocerr er) |
enum mandocerr er) |
{ |
{ |
|
struct man_node *n; |
|
|
assert(n); |
assert(to); |
|
|
/* LINTED */ |
/* LINTED */ |
while (m->last != n) { |
while (m->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. |
|
*/ |
|
n = m->last->parent; |
if ( ! rew_warn(m, m->last, er)) |
if ( ! rew_warn(m, m->last, er)) |
return(0); |
return(0); |
if ( ! man_valid_post(m)) |
if ( ! man_valid_post(m)) |
return(0); |
return(0); |
m->last = m->last->parent; |
m->last = n; |
assert(m->last); |
assert(m->last); |
} |
} |
|
|