When after a \\, \t, or \a, another \t or \a had to be resolved
in copy mode within the same argument, the argument got corrupted.
Found while working on a loosely related bug report
from Fabio Scotoni <fabio at esse dot ch>.
-.\" $OpenBSD: esct-man.in,v 1.2 2017/07/04 14:53:23 schwarze Exp $
-.TH SPACE-ESCT-MAN 1 "December 15, 2018"
+.\" $OpenBSD: esct-man.in,v 1.4 2018/12/20 03:38:10 schwarze Exp $
+.TH SPACE-ESCT-MAN 1 "December 20, 2018"
.SH NAME
SPACE-T-MAN \- the t escape sequence in pages with man macros
.SH DESCRIPTION
.\" XXX not implemented
.\" .br
.\" .B single\aleader
+.br
+.B double\t\ttab
After font macros:
s\bsi\bin\bng\bgl\ble\be t\bta\bab\bb
+ d\bdo\bou\bub\bbl\ble\be t\bta\bab\bb
-OpenBSD December 15, 2018 SPACE-ESCT-MAN(1)
+OpenBSD December 20, 2018 SPACE-ESCT-MAN(1)
mandoc: esct-man.in:34:11: WARNING: tab in filled text
mandoc: esct-man.in:36:11: WARNING: tab in filled text
mandoc: esct-man.in:44:10: WARNING: tab in filled text
+mandoc: esct-man.in:49:10: WARNING: tab in filled text
+mandoc: esct-man.in:49:11: WARNING: tab in filled text
-/* $Id: roff.c,v 1.353 2018/12/18 22:00:02 schwarze Exp $ */
+/* $Id: roff.c,v 1.354 2018/12/20 03:41:54 schwarze Exp $ */
/*
* Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
switch (cp[1]) {
case 'a':
case 't':
- cp[0] = '\t';
+ cp[-pairs] = '\t';
/* FALLTHROUGH */
case '\\':
pairs++;