summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-11-29 23:15:25 +0100
committerBram Moolenaar <Bram@vim.org>2019-11-29 23:15:25 +0100
commit310c32e8920140f0db747c6c6eb06b1ee53cdb5a (patch)
tree6a63306e6627614a8f3b9b543f129323f3093f86
parent15a7bdcb77faabbd3a9a889957f810da2bcda13e (diff)
downloadvim-git-310c32e8920140f0db747c6c6eb06b1ee53cdb5a.tar.gz
patch 8.1.2361: MS-Windows: test failures related to VIMDLLv8.1.2361
Problem: MS-Windows: test failures related to VIMDLL. Solution: Adjust code and tests. (Ken Takata, closes #5283)
-rw-r--r--src/evalfunc.c6
-rw-r--r--src/ex_cmds.c14
-rw-r--r--src/gui_w32.c13
-rw-r--r--src/mbyte.c15
-rw-r--r--src/menu.c6
-rw-r--r--src/proto.h5
-rw-r--r--src/testdir/test_highlight.vim2
-rw-r--r--src/version.c2
8 files changed, 54 insertions, 9 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 254b2a9ba..a071ad8b6 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -3355,7 +3355,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_SEARCHPATH
"file_in_path",
#endif
-#ifdef FEAT_FILTERPIPE
+#if defined(FEAT_FILTERPIPE) && !defined(VIMDLL)
"filterpipe",
#endif
#ifdef FEAT_FIND_ID
@@ -3819,6 +3819,10 @@ f_has(typval_T *argvars, typval_T *rettv)
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;
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 5615adcaa..95766683c 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1068,6 +1068,9 @@ do_filter(
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,20 +1103,25 @@ do_filter(
shell_flags |= SHELL_DOOUT;
#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. */
shell_flags |= SHELL_READ;
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. */
shell_flags |= SHELL_WRITE;
curbuf->b_op_start.lnum = line1;
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 temp file. */
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 429b4570d..d5dfeff68 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -5746,6 +5746,14 @@ im_set_active(int active)
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,6 +5823,11 @@ im_get_status(void)
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;
diff --git a/src/mbyte.c b/src/mbyte.c
index 6ecf53bc0..4dfcfc952 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -4789,7 +4789,8 @@ iconv_end(void)
# define USE_IMSTATUSFUNC (*p_imsf != NUL)
#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
call_imactivatefunc(int active)
{
@@ -6454,11 +6455,15 @@ xim_get_status_area_height(void)
#else /* !defined(FEAT_XIM) */
-# ifdef IME_WITHOUT_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,7 +6473,11 @@ im_get_status(void)
}
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,7 +6490,7 @@ im_set_active(int active_arg)
# endif
}
-# ifdef FEAT_GUI
+# if defined(FEAT_GUI) && !defined(VIMDLL)
void
im_set_position(int row UNUSED, int col UNUSED)
{
diff --git a/src/menu.c b/src/menu.c
index e55cab675..26327941c 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -685,7 +685,11 @@ add_menu_path(
if ( addtearoff
&& *next_name
&& 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;
diff --git a/src/proto.h b/src/proto.h
index 452f9e22f..c358a1d02 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -177,6 +177,11 @@ void qsort(void *base, size_t elm_count, size_t elm_size, int (*cmp)(const void
# 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"
diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim
index 83bada522..c6aa3a2bf 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -519,7 +519,7 @@ func Test_termguicolors()
if !exists('+termguicolors')
return
endif
- if has('vtp') && !has('vcon')
+ if has('vtp') && !has('vcon') && !has('gui_running')
" Win32: 'guicolors' doesn't work without virtual console.
call assert_fails('set termguicolors', 'E954:')
return
diff --git a/src/version.c b/src/version.c
index ad9f3ad60..574708551 100644
--- a/src/version.c
+++ b/src/version.c
@@ -738,6 +738,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2361,
+/**/
2360,
/**/
2359,