0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

patch 8.1.2361: MS-Windows: test failures related to VIMDLL

Problem:    MS-Windows: test failures related to VIMDLL.
Solution:   Adjust code and tests. (Ken Takata, closes #5283)
This commit is contained in:
Bram Moolenaar
2019-11-29 23:15:25 +01:00
parent 15a7bdcb77
commit 310c32e892
8 changed files with 54 additions and 9 deletions

View File

@@ -3355,7 +3355,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_SEARCHPATH #ifdef FEAT_SEARCHPATH
"file_in_path", "file_in_path",
#endif #endif
#ifdef FEAT_FILTERPIPE #if defined(FEAT_FILTERPIPE) && !defined(VIMDLL)
"filterpipe", "filterpipe",
#endif #endif
#ifdef FEAT_FIND_ID #ifdef FEAT_FIND_ID
@@ -3818,6 +3818,10 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_CLIPBOARD #ifdef FEAT_CLIPBOARD
else if (STRICMP(name, "clipboard_working") == 0) else if (STRICMP(name, "clipboard_working") == 0)
n = clip_star.available; n = clip_star.available;
#endif
#ifdef VIMDLL
else if (STRICMP(name, "filterpipe") == 0)
n = gui.in_use || gui.starting;
#endif #endif
} }

View File

@@ -1068,6 +1068,9 @@ do_filter(
pos_T orig_start = curbuf->b_op_start; pos_T orig_start = curbuf->b_op_start;
pos_T orig_end = curbuf->b_op_end; pos_T orig_end = curbuf->b_op_end;
int save_lockmarks = cmdmod.lockmarks; int save_lockmarks = cmdmod.lockmarks;
#ifdef FEAT_FILTERPIPE
int stmp = p_stmp;
#endif
if (*cmd == NUL) /* no filter command */ if (*cmd == NUL) /* no filter command */
return; return;
@@ -1100,20 +1103,25 @@ do_filter(
shell_flags |= SHELL_DOOUT; shell_flags |= SHELL_DOOUT;
#ifdef FEAT_FILTERPIPE #ifdef FEAT_FILTERPIPE
if (!do_in && do_out && !p_stmp) # 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. */ /* Use a pipe to fetch stdout of the command, do not use a temp file. */
shell_flags |= SHELL_READ; shell_flags |= SHELL_READ;
curwin->w_cursor.lnum = line2; curwin->w_cursor.lnum = line2;
} }
else if (do_in && !do_out && !p_stmp) else if (do_in && !do_out && !stmp)
{ {
/* Use a pipe to write stdin of the command, do not use a temp file. */ /* Use a pipe to write stdin of the command, do not use a temp file. */
shell_flags |= SHELL_WRITE; shell_flags |= SHELL_WRITE;
curbuf->b_op_start.lnum = line1; curbuf->b_op_start.lnum = line1;
curbuf->b_op_end.lnum = line2; curbuf->b_op_end.lnum = line2;
} }
else if (do_in && do_out && !p_stmp) else if (do_in && do_out && !stmp)
{ {
/* Use a pipe to write stdin and fetch stdout of the command, do not /* Use a pipe to write stdin and fetch stdout of the command, do not
* use a temp file. */ * use a temp file. */

View File

@@ -5746,6 +5746,14 @@ im_set_active(int active)
HIMC hImc; HIMC hImc;
static HIMC hImcOld = (HIMC)0; 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 (pImmGetContext) /* if NULL imm32.dll wasn't loaded (yet) */
{ {
if (p_imdisable) if (p_imdisable)
@@ -5815,6 +5823,11 @@ im_get_status(void)
int status = 0; int status = 0;
HIMC hImc; HIMC hImc;
# ifdef VIMDLL
if (!gui.in_use && !gui.starting)
return mbyte_im_get_status();
# endif
if (pImmGetContext && (hImc = pImmGetContext(s_hwnd)) != (HIMC)0) if (pImmGetContext && (hImc = pImmGetContext(s_hwnd)) != (HIMC)0)
{ {
status = pImmGetOpenStatus(hImc) ? 1 : 0; status = pImmGetOpenStatus(hImc) ? 1 : 0;

View File

@@ -4789,7 +4789,8 @@ iconv_end(void)
# define USE_IMSTATUSFUNC (*p_imsf != NUL) # define USE_IMSTATUSFUNC (*p_imsf != NUL)
#endif #endif
#if defined(FEAT_EVAL) && (defined(FEAT_XIM) || defined(IME_WITHOUT_XIM)) #if defined(FEAT_EVAL) && \
(defined(FEAT_XIM) || defined(IME_WITHOUT_XIM) || defined(VIMDLL))
static void static void
call_imactivatefunc(int active) call_imactivatefunc(int active)
{ {
@@ -6454,11 +6455,15 @@ xim_get_status_area_height(void)
#else /* !defined(FEAT_XIM) */ #else /* !defined(FEAT_XIM) */
# ifdef IME_WITHOUT_XIM # if defined(IME_WITHOUT_XIM) || defined(VIMDLL)
static int im_was_set_active = FALSE; static int im_was_set_active = FALSE;
int int
# ifdef VIMDLL
mbyte_im_get_status(void)
# else
im_get_status(void) im_get_status(void)
# endif
{ {
# if defined(FEAT_EVAL) # if defined(FEAT_EVAL)
if (USE_IMSTATUSFUNC) if (USE_IMSTATUSFUNC)
@@ -6468,7 +6473,11 @@ im_get_status(void)
} }
void void
# ifdef VIMDLL
mbyte_im_set_active(int active_arg)
# else
im_set_active(int active_arg) im_set_active(int active_arg)
# endif
{ {
# if defined(FEAT_EVAL) # if defined(FEAT_EVAL)
int active = !p_imdisable && active_arg; int active = !p_imdisable && active_arg;
@@ -6481,7 +6490,7 @@ im_set_active(int active_arg)
# endif # endif
} }
# ifdef FEAT_GUI # if defined(FEAT_GUI) && !defined(VIMDLL)
void void
im_set_position(int row UNUSED, int col UNUSED) im_set_position(int row UNUSED, int col UNUSED)
{ {

View File

@@ -685,7 +685,11 @@ add_menu_path(
if ( addtearoff if ( addtearoff
&& *next_name && *next_name
&& vim_strchr(p_go, GO_TEAROFF) != NULL && vim_strchr(p_go, GO_TEAROFF) != NULL
&& menu_is_menubar(name)) && menu_is_menubar(name)
# ifdef VIMDLL
&& (gui.in_use || gui.starting)
# endif
)
{ {
char_u *tearpath; char_u *tearpath;

View File

@@ -177,6 +177,11 @@ void qsort(void *base, size_t elm_count, size_t elm_size, int (*cmp)(const void
# include "mouse.pro" # include "mouse.pro"
# include "move.pro" # include "move.pro"
# include "mbyte.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 "normal.pro"
# include "ops.pro" # include "ops.pro"
# include "option.pro" # include "option.pro"

View File

@@ -519,7 +519,7 @@ func Test_termguicolors()
if !exists('+termguicolors') if !exists('+termguicolors')
return return
endif endif
if has('vtp') && !has('vcon') if has('vtp') && !has('vcon') && !has('gui_running')
" Win32: 'guicolors' doesn't work without virtual console. " Win32: 'guicolors' doesn't work without virtual console.
call assert_fails('set termguicolors', 'E954:') call assert_fails('set termguicolors', 'E954:')
return return

View File

@@ -737,6 +737,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2361,
/**/ /**/
2360, 2360,
/**/ /**/