To: vim-dev@vim.org Subject: Patch 5.6.066 Fcc: outbox From: Bram Moolenaar ------------ Patch 5.6.066 Problem: Still a few bold character spill-over remains after patch 60. Solution: Clear character just in front of blanking out rest of the line. (Robert Webb) Files: src/screen.c *** ../vim-5.6.65/src/screen.c Fri Apr 7 10:12:38 2000 --- src/screen.c Thu Apr 13 11:59:22 2000 *************** *** 1927,1935 **** char_u *screenp_from; char_u *screenp_to; int col = 0; int hl; int force = FALSE; /* force update rest of the line */ ! int redraw_this; /* bool: does character need redraw? */ int redraw_next; /* redraw_this for next character */ #ifdef MULTI_BYTE int char_bytes; /* 1 : if normal char */ --- 1927,1941 ---- char_u *screenp_from; char_u *screenp_to; int col = 0; + #if defined(USE_GUI) || defined(UNIX) int hl; + #endif int force = FALSE; /* force update rest of the line */ ! int redraw_this /* bool: does character need redraw? */ ! #ifdef USE_GUI ! = TRUE /* For GUI when while-loop empty */ ! #endif ! ; int redraw_next; /* redraw_this for next character */ #ifdef MULTI_BYTE int char_bytes; /* 1 : if normal char */ *************** *** 2128,2133 **** --- 2134,2142 ---- ) { /* blank out the rest of the line */ + #ifdef USE_GUI + int startCol = col; + #endif while (col < Columns && *screenp_to == ' ' && *(screenp_to + Columns) == 0) { *************** *** 2135,2141 **** --- 2144,2171 ---- ++col; } if (col < Columns) + { + #ifdef USE_GUI + /* + * In the GUI, clearing the rest of the line may leave pixels + * behind if the first character cleared was bold. Some bold + * fonts spill over the left. In this case we redraw the previous + * character too. If we didn't skip any blanks above, then we + * only redraw if the character wasn't already redrawn anyway. + */ + if (gui.in_use && (col > startCol || !redraw_this) + # ifdef MULTI_BYTE + && !is_dbcs + # endif + ) + { + hl = *(screenp_to + Columns); + if (hl > HL_ALL || (hl & HL_BOLD)) + screen_char(screenp_to - 1, row, col - 1); + } + #endif screen_fill(row, row + 1, col, (int)Columns, ' ', ' ', 0); + } } } *** ../vim-5.6.65/src/version.c Thu Apr 13 10:39:52 2000 --- src/version.c Thu Apr 13 11:57:24 2000 *************** *** 420,421 **** --- 420,423 ---- { /* Add new patch number below this line */ + /**/ + 66, /**/ -- hundred-and-one symptoms of being an internet addict: 26. You check your mail. It says "no new messages." So you check it again. /-/-- Bram Moolenaar --- Bram@moolenaar.net --- http://www.moolenaar.net --\-\ \-\-- Vim: http://www.vim.org ---- ICCF Holland: http://www.vim.org/iccf --/-/