To: vim_dev@googlegroups.com Subject: Patch 8.1.2361 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.2361 Problem: MS-Windows: test failures related to VIMDLL. Solution: Adjust code and tests. (Ken Takata, closes #5283) Files: src/evalfunc.c, src/ex_cmds.c, src/gui_w32.c, src/mbyte.c, src/menu.c, src/proto.h, src/testdir/test_highlight.vim *** ../vim-8.1.2360/src/evalfunc.c 2019-11-29 21:07:55.108371775 +0100 --- src/evalfunc.c 2019-11-29 23:11:18.237470377 +0100 *************** *** 3355,3361 **** #ifdef FEAT_SEARCHPATH "file_in_path", #endif ! #ifdef FEAT_FILTERPIPE "filterpipe", #endif #ifdef FEAT_FIND_ID --- 3355,3361 ---- #ifdef FEAT_SEARCHPATH "file_in_path", #endif ! #if defined(FEAT_FILTERPIPE) && !defined(VIMDLL) "filterpipe", #endif #ifdef FEAT_FIND_ID *************** *** 3819,3824 **** --- 3819,3828 ---- else if (STRICMP(name, "clipboard_working") == 0) n = clip_star.available; #endif + #ifdef VIMDLL + else if (STRICMP(name, "filterpipe") == 0) + n = gui.in_use || gui.starting; + #endif } rettv->vval.v_number = n; *** ../vim-8.1.2360/src/ex_cmds.c 2019-11-16 13:50:18.777646751 +0100 --- src/ex_cmds.c 2019-11-29 23:11:18.237470377 +0100 *************** *** 1068,1073 **** --- 1068,1076 ---- pos_T orig_start = curbuf->b_op_start; pos_T orig_end = curbuf->b_op_end; int save_lockmarks = cmdmod.lockmarks; + #ifdef FEAT_FILTERPIPE + int stmp = p_stmp; + #endif if (*cmd == NUL) /* no filter command */ return; *************** *** 1100,1119 **** shell_flags |= SHELL_DOOUT; #ifdef FEAT_FILTERPIPE ! if (!do_in && do_out && !p_stmp) { /* Use a pipe to fetch stdout of the command, do not use a temp file. */ shell_flags |= SHELL_READ; curwin->w_cursor.lnum = line2; } ! else if (do_in && !do_out && !p_stmp) { /* Use a pipe to write stdin of the command, do not use a temp file. */ shell_flags |= SHELL_WRITE; curbuf->b_op_start.lnum = line1; curbuf->b_op_end.lnum = line2; } ! else if (do_in && do_out && !p_stmp) { /* Use a pipe to write stdin and fetch stdout of the command, do not * use a temp file. */ --- 1103,1127 ---- shell_flags |= SHELL_DOOUT; #ifdef FEAT_FILTERPIPE ! # ifdef VIMDLL ! if (!gui.in_use && !gui.starting) ! stmp = 1; // Console mode doesn't support filterpipe. ! # endif ! ! if (!do_in && do_out && !stmp) { /* Use a pipe to fetch stdout of the command, do not use a temp file. */ shell_flags |= SHELL_READ; curwin->w_cursor.lnum = line2; } ! else if (do_in && !do_out && !stmp) { /* Use a pipe to write stdin of the command, do not use a temp file. */ shell_flags |= SHELL_WRITE; curbuf->b_op_start.lnum = line1; curbuf->b_op_end.lnum = line2; } ! else if (do_in && do_out && !stmp) { /* Use a pipe to write stdin and fetch stdout of the command, do not * use a temp file. */ *** ../vim-8.1.2360/src/gui_w32.c 2019-11-19 23:01:24.643827472 +0100 --- src/gui_w32.c 2019-11-29 23:11:18.237470377 +0100 *************** *** 5746,5751 **** --- 5746,5759 ---- HIMC hImc; static HIMC hImcOld = (HIMC)0; + # ifdef VIMDLL + if (!gui.in_use && !gui.starting) + { + mbyte_im_set_active(active); + return; + } + # endif + if (pImmGetContext) /* if NULL imm32.dll wasn't loaded (yet) */ { if (p_imdisable) *************** *** 5815,5820 **** --- 5823,5833 ---- int status = 0; HIMC hImc; + # ifdef VIMDLL + if (!gui.in_use && !gui.starting) + return mbyte_im_get_status(); + # endif + if (pImmGetContext && (hImc = pImmGetContext(s_hwnd)) != (HIMC)0) { status = pImmGetOpenStatus(hImc) ? 1 : 0; *** ../vim-8.1.2360/src/mbyte.c 2019-11-21 17:13:12.628361301 +0100 --- src/mbyte.c 2019-11-29 23:11:18.241470356 +0100 *************** *** 4789,4795 **** # define USE_IMSTATUSFUNC (*p_imsf != NUL) #endif ! #if defined(FEAT_EVAL) && (defined(FEAT_XIM) || defined(IME_WITHOUT_XIM)) static void call_imactivatefunc(int active) { --- 4789,4796 ---- # define USE_IMSTATUSFUNC (*p_imsf != NUL) #endif ! #if defined(FEAT_EVAL) && \ ! (defined(FEAT_XIM) || defined(IME_WITHOUT_XIM) || defined(VIMDLL)) static void call_imactivatefunc(int active) { *************** *** 6454,6464 **** #else /* !defined(FEAT_XIM) */ ! # ifdef IME_WITHOUT_XIM static int im_was_set_active = FALSE; int im_get_status(void) { # if defined(FEAT_EVAL) if (USE_IMSTATUSFUNC) --- 6455,6469 ---- #else /* !defined(FEAT_XIM) */ ! # if defined(IME_WITHOUT_XIM) || defined(VIMDLL) static int im_was_set_active = FALSE; int + # ifdef VIMDLL + mbyte_im_get_status(void) + # else im_get_status(void) + # endif { # if defined(FEAT_EVAL) if (USE_IMSTATUSFUNC) *************** *** 6468,6474 **** --- 6473,6483 ---- } void + # ifdef VIMDLL + mbyte_im_set_active(int active_arg) + # else im_set_active(int active_arg) + # endif { # if defined(FEAT_EVAL) int active = !p_imdisable && active_arg; *************** *** 6481,6487 **** # endif } ! # ifdef FEAT_GUI void im_set_position(int row UNUSED, int col UNUSED) { --- 6490,6496 ---- # endif } ! # if defined(FEAT_GUI) && !defined(VIMDLL) void im_set_position(int row UNUSED, int col UNUSED) { *** ../vim-8.1.2360/src/menu.c 2019-10-13 16:43:35.956359658 +0200 --- src/menu.c 2019-11-29 23:11:18.241470356 +0100 *************** *** 685,691 **** if ( addtearoff && *next_name && vim_strchr(p_go, GO_TEAROFF) != NULL ! && menu_is_menubar(name)) { char_u *tearpath; --- 685,695 ---- if ( addtearoff && *next_name && vim_strchr(p_go, GO_TEAROFF) != NULL ! && menu_is_menubar(name) ! # ifdef VIMDLL ! && (gui.in_use || gui.starting) ! # endif ! ) { char_u *tearpath; *** ../vim-8.1.2360/src/proto.h 2019-11-21 17:13:12.628361301 +0100 --- src/proto.h 2019-11-29 23:14:05.236606504 +0100 *************** *** 177,182 **** --- 177,187 ---- # include "mouse.pro" # include "move.pro" # include "mbyte.pro" + # ifdef VIMDLL + // Function name differs when VIMDLL is defined + int mbyte_im_get_status(void); + void mbyte_im_set_active(int active_arg); + # endif # include "normal.pro" # include "ops.pro" # include "option.pro" *** ../vim-8.1.2360/src/testdir/test_highlight.vim 2019-11-09 23:26:36.905570965 +0100 --- src/testdir/test_highlight.vim 2019-11-29 23:11:18.241470356 +0100 *************** *** 519,525 **** if !exists('+termguicolors') return endif ! if has('vtp') && !has('vcon') " Win32: 'guicolors' doesn't work without virtual console. call assert_fails('set termguicolors', 'E954:') return --- 519,525 ---- if !exists('+termguicolors') return endif ! if has('vtp') && !has('vcon') && !has('gui_running') " Win32: 'guicolors' doesn't work without virtual console. call assert_fails('set termguicolors', 'E954:') return *** ../vim-8.1.2360/src/version.c 2019-11-29 22:06:44.229570907 +0100 --- src/version.c 2019-11-29 23:12:36.245061975 +0100 *************** *** 739,740 **** --- 739,742 ---- { /* Add new patch number below this line */ + /**/ + 2361, /**/ -- Drink wet cement and get really stoned. /// 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 ///