Even for UTF-8 output, a non-breaking space character has the same width
authorschwarze <schwarze@openbsd.org>
Sun, 27 Jul 2014 21:51:53 +0000 (21:51 +0000)
committerschwarze <schwarze@openbsd.org>
Sun, 27 Jul 2014 21:51:53 +0000 (21:51 +0000)
as a normal space character, and not width 0.  Bug reported by bentley@.

usr.bin/mandoc/term_ascii.c

index 44d16ef..064e12e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: term_ascii.c,v 1.14 2014/04/20 16:44:44 schwarze Exp $ */
+/*     $Id: term_ascii.c,v 1.15 2014/07/27 21:51:53 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -245,7 +245,12 @@ locale_width(const struct termp *p, int c)
 {
        int             rc;
 
-       return((rc = wcwidth(c)) < 0 ? 0 : rc);
+       if (c == ASCII_NBRSP)
+               c = ' ';
+       rc = wcwidth(c);
+       if (rc < 0)
+               rc = 0;
+       return(rc);
 }
 
 static void