From d6723f74a684ee974e1b51a37f806d2af1fcaaa7 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Mon, 11 Nov 2013 00:37:55 +0000 Subject: In the parser, when closing an explicit block that is not open, close below-subsection implicit scopes that may still be open. In the formatter, make sure indentation is reset when leaving a scope, not only when entering the next one. Improves the formatting of gpg(1); issue reported by jca on ports. --- man_macro.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'man_macro.c') diff --git a/man_macro.c b/man_macro.c index 18eedbcb..64597269 100644 --- a/man_macro.c +++ b/man_macro.c @@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons - * Copyright (c) 2012 Ingo Schwarze + * Copyright (c) 2012, 2013 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -298,10 +298,12 @@ blk_close(MACRO_PROT_ARGS) if (ntok == nn->tok && MAN_BLOCK == nn->type) break; - if (NULL != nn) - man_unscope(man, nn, MANDOCERR_MAX); - else + if (NULL == nn) { man_pmsg(man, line, ppos, MANDOCERR_NOSCOPE); + if ( ! rew_scope(MAN_BLOCK, man, MAN_PP)) + return(0); + } else + man_unscope(man, nn, MANDOCERR_MAX); return(1); } -- cgit