Bugfix: When a line ends with '\ \"', don't strip the trailing space
authorschwarze <schwarze@openbsd.org>
Sat, 18 Aug 2018 22:04:32 +0000 (22:04 +0000)
committerschwarze <schwarze@openbsd.org>
Sat, 18 Aug 2018 22:04:32 +0000 (22:04 +0000)
because that turned it into a bogus line continuation.

usr.bin/mandoc/roff.c

index 1e8b65e..b889e9f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: roff.c,v 1.206 2018/08/18 21:36:53 schwarze Exp $ */
+/*     $OpenBSD: roff.c,v 1.207 2018/08/18 22:04:32 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -1212,7 +1212,8 @@ roff_res(struct roff *r, struct buf *buf, int ln, int pos)
 
                /* Discard normal comments. */
 
-               while (stesc > start && stesc[-1] == ' ')
+               while (stesc > start && stesc[-1] == ' ' &&
+                   (stesc == start + 1 || stesc[-2] != '\\'))
                        stesc--;
                *stesc = '\0';
                break;