]> git.cameronkatri.com Git - mandoc.git/blobdiff - term.c
Fix assertion failures caused by whitespace inside \o'' (overstrike)
[mandoc.git] / term.c
diff --git a/term.c b/term.c
index 0fd8f7c01974050424d4c99d94a7c6aef101558d..3bf78db3fb6c517c0caaef24d038b0bf97f54b2a 100644 (file)
--- a/term.c
+++ b/term.c
@@ -1,7 +1,7 @@
-/*     $Id: term.c,v 1.257 2016/04/12 15:30:00 schwarze Exp $ */
+/*     $Id: term.c,v 1.258 2016/08/10 11:03:43 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010-2015 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010-2016 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -504,7 +504,9 @@ term_word(struct termp *p, const char *word)
                                }
                        }
                        /* Trim trailing backspace/blank pair. */
-                       if (p->col > 2 && p->buf[p->col - 1] == ' ')
+                       if (p->col > 2 &&
+                           (p->buf[p->col - 1] == ' ' ||
+                            p->buf[p->col - 1] == '\t'))
                                p->col -= 2;
                        continue;
                default:
@@ -568,7 +570,7 @@ encode1(struct termp *p, int c)
            p->fontq[p->fonti] : TERMFONT_NONE;
 
        if (p->flags & TERMP_BACKBEFORE) {
-               if (p->buf[p->col - 1] == ' ')
+               if (p->buf[p->col - 1] == ' ' || p->buf[p->col - 1] == '\t')
                        p->col--;
                else
                        p->buf[p->col++] = 8;