Stefan Sperling wrote:
> On Fri, Oct 23, 2015 at 05:50:53AM -0400, Ted Unangst wrote:
> > well, it doesn't work with utf-8 because it tries to underline only half the
> > character. i'm aiming for the "quick fix"...
> 
> Why not at least try a kind of better fix to see how it would work?

Is this "better"? It copies the state of the previous letter to the next if
it's a utf-8 continuation byte.

FreeBSD has full blown multibyte support as well, but it requires switching
everything to wchar_t. Which way are we going here?


Index: ul.c
===================================================================
RCS file: /cvs/src/usr.bin/ul/ul.c,v
retrieving revision 1.19
diff -u -p -r1.19 ul.c
--- ul.c        10 Oct 2015 16:15:03 -0000      1.19
+++ ul.c        23 Oct 2015 10:29:43 -0000
@@ -241,6 +241,8 @@ mfilter(FILE *f)
                        obuf[col].c_mode |= BOLD|mode;
                else
                        obuf[col].c_mode = mode;
+               if ((c & (0x80 | 0x40)) == 0x80 && col > 0)
+                       obuf[col].c_mode = obuf[col - 1].c_mode;
                col++;
                if (col > maxcol)
                        maxcol = col;

Reply via email to