To: vim-dev@vim.org Subject: Patch 5.6.094 Fcc: outbox From: Bram Moolenaar ------------ Patch 5.6.094 Problem: Problem with multi-byte string for ":echo var". Solution: Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam) Also make do_echo() aware of multi-byte characters. Files: src/eval.c, src/message.c *** ../vim-5.6.93/src/eval.c Fri Mar 31 14:23:11 2000 --- src/eval.c Tue Jun 6 12:55:14 2000 *************** *** 4663,4669 **** msg_putchar_attr(*p, echo_attr); } else ! (void)msg_outtrans_len_attr(p, 1, echo_attr); } clear_var(&retvar); arg = skipwhite(arg); --- 4663,4680 ---- msg_putchar_attr(*p, echo_attr); } else ! { ! #ifdef MULTI_BYTE ! /* check multibyte */ ! if (is_dbcs && p[1] != NUL && IsLeadByte(*p)) ! { ! (void)msg_outtrans_len_attr(p, 2, echo_attr); ! ++p; ! } ! else ! #endif ! (void)msg_outtrans_len_attr(p, 1, echo_attr); ! } } clear_var(&retvar); arg = skipwhite(arg); *** ../vim-5.6.93/src/message.c Mon Jun 5 13:12:48 2000 --- src/message.c Tue Jun 6 12:45:32 2000 *************** *** 859,865 **** { #ifdef MULTI_BYTE /* check multibyte */ ! if (is_dbcs && *(str + 1) != NUL && IsLeadByte(*str)) { char_u buf[3]; --- 859,865 ---- { #ifdef MULTI_BYTE /* check multibyte */ ! if (is_dbcs && len > 0 && IsLeadByte(*str)) { char_u buf[3]; *** ../vim-5.6.93/src/version.c Tue Jun 6 19:32:22 2000 --- src/version.c Wed Jun 7 14:01:55 2000 *************** *** 420,421 **** --- 420,423 ---- { /* Add new patch number below this line */ + /**/ + 94, /**/ -- An easy way to determine if you have enough teamwork to be doomed is simply to measure how long it takes from the time you decide to go to lunch together until the time you actually eat. (Scott Adams - The Dilbert principle) /-/-- Bram Moolenaar --- Bram@moolenaar.net --- http://www.moolenaar.net --\-\ \-\-- Vim: http://www.vim.org ---- ICCF Holland: http://www.vim.org/iccf --/-/