To: vim_dev@googlegroups.com Subject: Patch 8.0.0990 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.0990 Problem: When 'encoding' is a double-byte encoding, pasting a register into a terminal ends up with the wrong characters. Solution: Convert from 'encoding' to utf-8. (Yasuhiro Matsumoto, closes #2007) Files: src/terminal.c *** ../vim-8.0.0989/src/terminal.c 2017-08-22 22:28:56.054708407 +0200 --- src/terminal.c 2017-08-23 23:01:46.381267123 +0200 *************** *** 38,43 **** --- 38,44 ---- * in tl_scrollback are no longer used. * * TODO: + * - better check for blinking - reply from Thomas Dickey Aug 22 * - test for writing lines to terminal job does not work on MS-Windows * - implement term_setsize() * - add test for giving error for invalid 'termsize' value. *************** *** 45,50 **** --- 46,55 ---- * - support minimal size when 'termsize' is empty? * - do not set bufhidden to "hide"? works like a buffer with changes. * document that CTRL-W :hide can be used. + * - GUI: when using tabs, focus in terminal, click on tab does not work. + * - GUI: when 'confirm' is set and trying to exit Vim, dialog offers to save + * changes to "!shell". + * (justrajdeep, 2017 Aug 22) * - command argument with spaces doesn't work #1999 * :terminal ls dir\ with\ spaces * - implement job options when starting a terminal. Allow: *************** *** 1261,1269 **** --- 1266,1296 ---- for (item = l->lv_first; item != NULL; item = item->li_next) { char_u *s = get_tv_string(&item->li_tv); + #ifdef WIN3264 + char_u *tmp = s; + + if (!enc_utf8 && enc_codepage > 0) + { + WCHAR *ret = NULL; + int length = 0; + MultiByteToWideChar_alloc(enc_codepage, 0, (char*)s, STRLEN(s), + &ret, &length); + if (ret != NULL) + { + WideCharToMultiByte_alloc(CP_UTF8, 0, + ret, length, (char **)&s, &length, 0, 0); + vim_free(ret); + } + } + #endif channel_send(curbuf->b_term->tl_job->jv_channel, PART_IN, s, STRLEN(s), NULL); + #ifdef WIN3264 + if (tmp != s) + vim_free(s); + #endif + if (item->li_next != NULL || type == MLINE) channel_send(curbuf->b_term->tl_job->jv_channel, PART_IN, (char_u *)"\r", 1, NULL); *** ../vim-8.0.0989/src/version.c 2017-08-23 22:40:37.165363011 +0200 --- src/version.c 2017-08-23 23:01:29.921373655 +0200 *************** *** 771,772 **** --- 771,774 ---- { /* Add new patch number below this line */ + /**/ + 990, /**/ -- hundred-and-one symptoms of being an internet addict: 3. Your bookmark takes 15 minutes to scroll from top to bottom. /// 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 ///