To: vim_dev@googlegroups.com Subject: Patch 7.3.406 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.3.406 Problem: Multi-byte characters in b:browsefilter are not handled correctly. Solution: First use convert_filter() normally and then convert to wide characters. (Taro Muraoka) Files: src/gui_w48.c *** ../vim-7.3.405/src/gui_w48.c 2011-09-07 18:58:24.000000000 +0200 --- src/gui_w48.c 2012-01-20 17:54:19.000000000 +0100 *************** *** 328,333 **** --- 328,337 ---- static LRESULT _OnImeNotify(HWND hWnd, DWORD dwCommand, DWORD dwData); #endif + #if defined(FEAT_MBYTE) && defined(WIN3264) + static char_u *convert_filter(char_u *s); + #endif + #ifdef DEBUG_PRINT_ERROR /* * Print out the last Windows error message *************** *** 3275,3302 **** # if defined(FEAT_MBYTE) && defined(WIN3264) /* ! * Wide version of convert_filter(). Keep in sync! */ static WCHAR * convert_filterW(char_u *s) { ! WCHAR *res; ! unsigned s_len = (unsigned)STRLEN(s); ! unsigned i; ! res = (WCHAR *)alloc((s_len + 3) * sizeof(WCHAR)); ! if (res != NULL) ! { ! for (i = 0; i < s_len; ++i) ! if (s[i] == '\t' || s[i] == '\n') ! res[i] = '\0'; ! else ! res[i] = s[i]; ! res[s_len] = NUL; ! /* Add two extra NULs to make sure it's properly terminated. */ ! res[s_len + 1] = NUL; ! res[s_len + 2] = NUL; ! } return res; } --- 3279,3298 ---- # if defined(FEAT_MBYTE) && defined(WIN3264) /* ! * Wide version of convert_filter(). */ static WCHAR * convert_filterW(char_u *s) { ! char_u *tmp; ! int len; ! tmp = convert_filter(s); ! if (tmp == NULL) ! return NULL; ! len = (int)STRLEN(s) + 3; ! res = enc_to_utf16(tmp, &len); ! vim_free(tmp); return res; } *** ../vim-7.3.405/src/version.c 2012-01-20 17:15:47.000000000 +0100 --- src/version.c 2012-01-20 17:57:09.000000000 +0100 *************** *** 716,717 **** --- 716,719 ---- { /* Add new patch number below this line */ + /**/ + 406, /**/ -- DENNIS: Look, strange women lying on their backs in ponds handing out swords ... that's no basis for a system of government. Supreme executive power derives from a mandate from the masses, not from some farcical aquatic ceremony. "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///