From 230eaefdc1cd15357da254488c8718b2026f597f Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Tue, 20 Sep 2011 13:13:23 +0000 Subject: When advancing the left margin, .RS also needs to reset the right margin to the default and check that the left does not outgrow the right one. Otherwise, the (rmargin >= offset) assertion fails in term_flushln(). Bug found and fix tested by kristaps@ with NetBSD slapo-retcode(5). --- man_term.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'man_term.c') diff --git a/man_term.c b/man_term.c index 3afea4d6..d844df31 100644 --- a/man_term.c +++ b/man_term.c @@ -1,4 +1,4 @@ -/* $Id: man_term.c,v 1.118 2011/09/20 09:02:23 schwarze Exp $ */ +/* $Id: man_term.c,v 1.119 2011/09/20 13:13:23 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze @@ -826,7 +826,8 @@ pre_RS(DECL_ARGS) sz = (size_t)ival; mt->offset += sz; - p->offset = mt->offset; + p->rmargin = p->maxrmargin; + p->offset = mt->offset < p->rmargin ? mt->offset : p->rmargin; if (++mt->lmarginsz < MAXMARGINS) mt->lmargincur = mt->lmarginsz; -- cgit v1.2.3-56-ge451