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;