From 3c63611ee89298b92b89ee5a72e03ddf82e2059f Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Sun, 8 Mar 2009 18:02:36 +0000 Subject: Updated manuals. Added -fign-scope and -fign-escape. --- mdocterm.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'mdocterm.c') diff --git a/mdocterm.c b/mdocterm.c index da84f179..1f791258 100644 --- a/mdocterm.c +++ b/mdocterm.c @@ -1,4 +1,4 @@ -/* $Id: mdocterm.c,v 1.35 2009/03/08 13:52:29 kristaps Exp $ */ +/* $Id: mdocterm.c,v 1.36 2009/03/08 18:02:36 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -681,24 +681,34 @@ pescape(struct termp *p, const char *word, size_t *i, size_t len) { size_t j; - (*i)++; - assert(*i < len); + if (++(*i) >= len) { + warnx("ignoring bad escape sequence"); + return; + } if ('(' == word[*i]) { (*i)++; - assert(*i + 1 < len); + if (*i + 1 >= len) { + warnx("ignoring bad escape sequence"); + return; + } nescape(p, &word[*i], 2); (*i)++; return; } else if ('*' == word[*i]) { - /* XXX - deprecated! */ (*i)++; - assert(*i < len); + if (*i >= len) { + warnx("ignoring bad escape sequence"); + return; + } switch (word[*i]) { case ('('): (*i)++; - assert(*i + 1 < len); + if (*i + 1 >= len) { + warnx("ignoring bad escape sequence"); + return; + } nescape(p, &word[*i], 2); (*i)++; return; @@ -718,7 +728,10 @@ pescape(struct termp *p, const char *word, size_t *i, size_t len) for (j = 0; word[*i] && ']' != word[*i]; (*i)++, j++) /* Loop... */ ; - assert(word[*i]); + if (0 == word[*i]) { + warnx("ignoring bad escape sequence"); + return; + } nescape(p, &word[*i - j], j); } -- cgit v1.2.3-56-ge451