summaryrefslogtreecommitdiffstats
path: root/macro.c
diff options
context:
space:
mode:
Diffstat (limited to 'macro.c')
-rw-r--r--macro.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/macro.c b/macro.c
index 53caf6fe..dfd921a0 100644
--- a/macro.c
+++ b/macro.c
@@ -55,19 +55,20 @@ rewind_last(struct mdoc *mdoc, struct mdoc_node *to)
{
assert(to);
- while (mdoc->last != to) {
+ if (mdoc->last == to)
+ return(1);
+
+ do {
+ mdoc->last = mdoc->last->parent;
+ assert(mdoc->last);
if ( ! mdoc_valid_post(mdoc))
return(0);
if ( ! mdoc_action_post(mdoc))
return(0);
- mdoc->last = mdoc->last->parent;
- assert(mdoc->last);
- }
+ } while (mdoc->last != to);
mdoc->next = MDOC_NEXT_SIBLING;
- if ( ! mdoc_valid_post(mdoc))
- return(0);
- return(mdoc_action_post(mdoc));
+ return(1);
}