]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Fix display of VT100 vertically-offset horizontal line characters
authorSimon Tatham <anakin@pobox.com>
Sat, 16 Jul 2011 11:13:00 +0000 (11:13 +0000)
committerSimon Tatham <anakin@pobox.com>
Sat, 16 Jul 2011 11:13:00 +0000 (11:13 +0000)
(o,p,r,s). They are displayed in Windows by actually writing the
centred one (q) with a vertical offset, in case fonts don't have the
offset versions; this requires terminal.c to separate those characters
into distinct calls to do_text(). Unfortunately, it was only breaking
up a text-drawing call _before_ one of those characters, not after
one. Spotted by Robert de Bath.

[originally from svn r9221]

terminal.c

index 986535522e04a8a58569544d9b07c8bb76379bde..7aa0b6529f1ded0ad013332d4aa818d0efb347c6 100644 (file)
@@ -5016,7 +5016,9 @@ static void do_paint(Terminal *term, Context ctx, int may_optimise)
            break_run = ((tattr ^ attr) & term->attr_mask) != 0;
 
            /* Special hack for VT100 Linedraw glyphs */
-           if (tchar >= 0x23BA && tchar <= 0x23BD)
+           if ((tchar >= 0x23BA && tchar <= 0x23BD) ||
+                (j > 0 && (newline[j-1].chr >= 0x23BA &&
+                           newline[j-1].chr <= 0x23BD)))
                break_run = TRUE;
 
            /*