To: vim-dev@vim.org Subject: Patch 5.6a.028 (extra) Fcc: outbox From: Bram Moolenaar ------------ Patch 5.6a.028 (extra) Problem: Win32 GUI: Dialogs and tear-off menus can't handle multi-byte characters. Solution: Adjust nCopyAnsiToWideChar() to handle multi-byte characters correctly. Files: src/gui_w32.c *** ../vim-5.6a.27/src/gui_w32.c Wed Jan 12 21:20:04 2000 --- src/gui_w32.c Fri Jan 14 20:14:43 2000 *************** *** 5014,5019 **** --- 5014,5032 ---- { int nChar = 0; + #ifdef MULTI_BYTE + int len = lstrlen(lpAnsiIn) + 1; /* include NUL character */ + int i; + + nChar = MultiByteToWideChar( + CP_OEMCP, + MB_PRECOMPOSED, + lpAnsiIn, len, + lpWCStr, len); + for (i = 0; i < nChar; ++i) + if (lpWCStr[i] == (WORD)'\t') /* replace tabs with spaces */ + lpWCStr[i] = (WORD)' '; + #else do { if (*lpAnsiIn == '\t') *************** *** 5022,5027 **** --- 5035,5041 ---- *lpWCStr++ = (WORD)*lpAnsiIn; nChar++; } while (*lpAnsiIn++); + #endif return nChar; } *** ../vim-5.6a.27/src/version.c Fri Jan 14 22:49:13 2000 --- src/version.c Fri Jan 14 22:48:51 2000 *************** *** 420,421 **** --- 420,423 ---- { /* Add new patch number below this line */ + /**/ + 28, /**/ -- hundred-and-one symptoms of being an internet addict: 175. You send yourself e-mail before you go to bed to remind you what to do when you wake up. --/-/---- Bram Moolenaar ---- Bram@moolenaar.net ---- Bram@vim.org ---\-\-- \ \ www.vim.org/iccf www.moolenaar.net www.vim.org / /