To: vim-dev@vim.org Subject: Patch 5.7a.002 Fcc: outbox From: Bram Moolenaar ------------ Patch 5.7a.002 Problem: Multi-byte: 'showmatch' is performed when second byte of an inserted double-byte char is a paren or brace. Solution: Check IsTrailByte() before calling showmatch(). (Taro Muraoka) Files: src/misc1.c *** ../vim-5.7a.1/src/misc1.c Mon Jun 5 20:45:41 2000 --- src/misc1.c Wed Jun 14 21:51:17 2000 *************** *** 1456,1473 **** ml_replace(lnum, newp, FALSE); /* ! * If we're in insert or replace mode and 'showmatch' is set, then check for ! * right parens and braces. If there isn't a match, then beep. If there ! * is a match AND it's on the screen, then flash to it briefly. If it ! * isn't on the screen, don't do anything. */ #ifdef RIGHTLEFT ! if (p_sm && (State & INSERT) && ! ((!(curwin->w_p_rl ^ p_ri) && (c == ')' || c == '}' || c == ']')) || ! ((curwin->w_p_rl ^ p_ri) && (c == '(' || c == '{' || c == '[')))) #else ! if (p_sm && (State & INSERT) && (c == ')' || c == '}' || c == ']')) #endif showmatch(); #ifdef RIGHTLEFT --- 1456,1477 ---- ml_replace(lnum, newp, FALSE); /* ! * If we're in Insert or Replace mode and 'showmatch' is set, then briefly ! * show the match for right parens and braces. */ + if (p_sm && (State & INSERT) #ifdef RIGHTLEFT ! && ((!(curwin->w_p_rl ^ p_ri) ! && (c == ')' || c == '}' || c == ']')) ! || ((curwin->w_p_rl ^ p_ri) ! && (c == '(' || c == '{' || c == '['))) #else ! && (c == ')' || c == '}' || c == ']') #endif + #ifdef MULTI_BYTE + && !(is_dbcs && IsTrailByte(newp, p)) + #endif + ) showmatch(); #ifdef RIGHTLEFT *** ../vim-5.7a.1/src/version.c Sun Jun 18 15:30:49 2000 --- src/version.c Sun Jun 18 15:31:39 2000 *************** *** 420,421 **** --- 420,423 ---- { /* Add new patch number below this line */ + /**/ + 2, /**/ -- hundred-and-one symptoms of being an internet addict: 49. You never have to deal with busy signals when calling your ISP...because you never log off. /-/-- Bram Moolenaar --- Bram@moolenaar.net --- http://www.moolenaar.net --\-\ \-\-- Vim: http://www.vim.org ---- ICCF Holland: http://www.vim.org/iccf --/-/