summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-11-25 17:14:33 +0100
committerBram Moolenaar <Bram@vim.org>2017-11-25 17:14:33 +0100
commit819edbe078c8579f3620d12dac830f12ccdc5a45 (patch)
tree9aeaacf944c52f62fb2caaed49c8319746e3dae6 /src
parent50d43153a7e3e452cd166cde0d84ecacd316321f (diff)
downloadvim-git-819edbe078c8579f3620d12dac830f12ccdc5a45.tar.gz
patch 8.0.1338: USE_IM_CONTROL is confusing and incompletev8.0.1338
Problem: USE_IM_CONTROL is confusing and incomplete. Solution: Just use FEAT_MBYTE. Call 'imactivatefunc' also without GUI.
Diffstat (limited to 'src')
-rw-r--r--src/edit.c12
-rw-r--r--src/ex_getln.c10
-rw-r--r--src/getchar.c2
-rw-r--r--src/globals.h2
-rw-r--r--src/gui.c4
-rw-r--r--src/gui_mac.c14
-rw-r--r--src/gui_w32.c2
-rw-r--r--src/mbyte.c171
-rw-r--r--src/normal.c6
-rw-r--r--src/option.c10
-rw-r--r--src/option.h4
-rw-r--r--src/ui.c2
-rw-r--r--src/version.c2
-rw-r--r--src/vim.h7
14 files changed, 124 insertions, 124 deletions
diff --git a/src/edit.c b/src/edit.c
index 65c53f52f..d960de359 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -516,7 +516,7 @@ edit(
*/
if (curbuf->b_p_iminsert == B_IMODE_LMAP)
State |= LANGMAP;
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
#endif
@@ -8372,7 +8372,7 @@ ins_reg(void)
++no_u_sync;
if (regname == '=')
{
-# ifdef USE_IM_CONTROL
+# ifdef FEAT_MBYTE
int im_on = im_get_status();
# endif
/* Sync undo when evaluating the expression calls setline() or
@@ -8380,7 +8380,7 @@ ins_reg(void)
u_sync_once = 2;
regname = get_expr_register();
-# ifdef USE_IM_CONTROL
+# ifdef FEAT_MBYTE
/* Restore the Input Method. */
if (im_on)
im_set_active(TRUE);
@@ -8509,12 +8509,12 @@ ins_ctrl_hat(void)
{
curbuf->b_p_iminsert = B_IMODE_LMAP;
State |= LANGMAP;
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
im_set_active(FALSE);
#endif
}
}
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
else
{
/* There are no ":lmap" mappings, toggle IM */
@@ -8661,7 +8661,7 @@ ins_esc(
}
}
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
/* Disable IM to allow typing English directly for Normal mode commands.
* When ":lmap" is enabled don't change 'iminsert' (IM can be enabled as
* well). */
diff --git a/src/ex_getln.c b/src/ex_getln.c
index f8a193d1d..02d03b4e1 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -359,11 +359,11 @@ getcmdline(
b_im_ptr = &curbuf->b_p_imsearch;
if (*b_im_ptr == B_IMODE_LMAP)
State |= LANGMAP;
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
im_set_active(*b_im_ptr == B_IMODE_IM);
#endif
}
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
else if (p_imcmdline)
im_set_active(TRUE);
#endif
@@ -1119,7 +1119,7 @@ getcmdline(
{
/* ":lmap" mappings exists, toggle use of mappings. */
State ^= LANGMAP;
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
im_set_active(FALSE); /* Disable input method */
#endif
if (b_im_ptr != NULL)
@@ -1130,7 +1130,7 @@ getcmdline(
*b_im_ptr = B_IMODE_NONE;
}
}
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
else
{
/* There are no ":lmap" mappings, toggle IM. When
@@ -2143,7 +2143,7 @@ returncmd:
#endif
State = save_State;
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
if (b_im_ptr != NULL && *b_im_ptr != B_IMODE_LMAP)
im_save_status(b_im_ptr);
im_set_active(FALSE);
diff --git a/src/getchar.c b/src/getchar.c
index aa65a8c82..18dc1a670 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2890,7 +2890,7 @@ vgetorpeek(int advance)
+ typebuf.tb_len] != NUL)
typebuf.tb_noremap[typebuf.tb_off
+ typebuf.tb_len++] = RM_YES;
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
/* Get IM status right after getting keys, not after the
* timeout for a mapping (focus may be lost by then). */
vgetc_im_active = im_get_status();
diff --git a/src/globals.h b/src/globals.h
index b479579fd..9f1864ddd 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1022,7 +1022,7 @@ EXTERN int stop_insert_mode; /* for ":stopinsert" and 'insertmode' */
EXTERN int KeyTyped; /* TRUE if user typed current char */
EXTERN int KeyStuffed; /* TRUE if current char from stuffbuf */
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
EXTERN int vgetc_im_active; /* Input Method was active for last
character obtained from vgetc() */
#endif
diff --git a/src/gui.c b/src/gui.c
index 8118ca197..4f03ed809 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -1078,7 +1078,7 @@ gui_update_cursor(
gui_undraw_cursor();
if (gui.row < 0)
return;
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
if (gui.row != gui.cursor_row || gui.col != gui.cursor_col)
im_set_position(gui.row, gui.col);
#endif
@@ -1136,7 +1136,7 @@ gui_update_cursor(
if (id > 0)
{
cattr = syn_id2colors(id, &cfg, &cbg);
-#if defined(USE_IM_CONTROL) || defined(FEAT_HANGULIN)
+#if defined(FEAT_MBYTE) || defined(FEAT_HANGULIN)
{
static int iid;
guicolor_T fg, bg;
diff --git a/src/gui_mac.c b/src/gui_mac.c
index 93feabe92..97cbf8018 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -2024,15 +2024,15 @@ gui_mac_handle_window_activate(
switch (eventKind)
{
case kEventWindowActivated:
-#if defined(USE_IM_CONTROL)
+# if defined(FEAT_MBYTE)
im_on_window_switch(TRUE);
-#endif
+# endif
return noErr;
case kEventWindowDeactivated:
-#if defined(USE_IM_CONTROL)
+# if defined(FEAT_MBYTE)
im_on_window_switch(FALSE);
-#endif
+# endif
return noErr;
}
}
@@ -6230,7 +6230,7 @@ char_u *FullPathFromFSSpec_save(FSSpec file)
#endif
}
-#if (defined(USE_IM_CONTROL) || defined(PROTO)) && defined(USE_CARBONKEYHANDLER)
+#if (defined(FEAT_MBYTE) || defined(PROTO)) && defined(USE_CARBONKEYHANDLER)
/*
* Input Method Control functions.
*/
@@ -6317,7 +6317,7 @@ im_set_active(int active)
ScriptLanguageRecord *slptr = NULL;
OSStatus err;
- if (! gui.in_use)
+ if (!gui.in_use)
return;
if (im_initialized == 0)
@@ -6379,7 +6379,7 @@ im_get_status(void)
return im_is_active;
}
-#endif /* defined(USE_IM_CONTROL) || defined(PROTO) */
+#endif /* defined(FEAT_MBYTE) || defined(PROTO) */
diff --git a/src/gui_w32.c b/src/gui_w32.c
index d1c9605ca..598034d36 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -485,12 +485,10 @@ static void TrackUserActivity(UINT uMsg);
* These LOGFONT used for IME.
*/
#ifdef FEAT_MBYTE
-# ifdef USE_IM_CONTROL
/* holds LOGFONT for 'guifontwide' if available, otherwise 'guifont' */
static LOGFONT norm_logfont;
/* holds LOGFONT for 'guifont' always. */
static LOGFONT sub_logfont;
-# endif
#endif
#ifdef FEAT_MBYTE_IME
diff --git a/src/mbyte.c b/src/mbyte.c
index 8bef7b823..b39dddddc 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -4794,6 +4794,26 @@ call_imactivatefunc(int active)
argv[0] = (char_u *)"0";
(void)call_func_retnr(p_imaf, 1, argv, FALSE);
}
+
+ static int
+call_imstatusfunc(void)
+{
+ int is_active;
+
+ /* FIXME: Don't execute user function in unsafe situation. */
+ if (exiting
+# ifdef FEAT_AUTOCMD
+ || is_autocmd_blocked()
+# endif
+ )
+ return FALSE;
+ /* FIXME: :py print 'xxx' is shown duplicate result.
+ * Use silent to avoid it. */
+ ++msg_silent;
+ is_active = call_func_retnr(p_imsf, 0, NULL, FALSE);
+ --msg_silent;
+ return (is_active > 0);
+}
#endif
#if defined(FEAT_XIM) || defined(PROTO)
@@ -4838,14 +4858,7 @@ im_set_active(int active)
im_is_active = (active && !p_imdisable);
if (im_is_active != was_active)
- {
-#ifdef FEAT_EVAL
- if (p_imaf[0] != NUL)
- call_imactivatefunc(im_is_active);
- else
-#endif
- xim_reset();
- }
+ xim_reset();
}
void
@@ -5675,6 +5688,11 @@ im_synthesize_keypress(unsigned int keyval, unsigned int state)
void
xim_reset(void)
{
+#ifdef FEAT_EVAL
+ if (p_imaf[0] != NUL)
+ call_imactivatefunc(im_is_active);
+ else
+#endif
if (xic != NULL)
{
gtk_im_context_reset(xic);
@@ -5685,12 +5703,7 @@ xim_reset(void)
{
xim_set_focus(gui.in_focus);
-# ifdef FEAT_EVAL
- if (p_imaf[0] != NUL)
- call_imactivatefunc(im_is_active);
- else
-# endif
- if (im_activatekey_keyval != GDK_VoidSymbol)
+ if (im_activatekey_keyval != GDK_VoidSymbol)
{
if (im_is_active)
{
@@ -5856,23 +5869,7 @@ im_get_status(void)
{
# ifdef FEAT_EVAL
if (p_imsf[0] != NUL)
- {
- int is_active;
-
- /* FIXME: Don't execute user function in unsafe situation. */
- if (exiting
-# ifdef FEAT_AUTOCMD
- || is_autocmd_blocked()
-# endif
- )
- return FALSE;
- /* FIXME: :py print 'xxx' is shown duplicate result.
- * Use silent to avoid it. */
- ++msg_silent;
- is_active = call_func_retnr(p_imsf, 0, NULL, FALSE);
- --msg_silent;
- return (is_active > 0);
- }
+ return call_imstatusfunc();
# endif
return im_is_active;
}
@@ -5894,30 +5891,45 @@ im_is_preediting(void)
static int xim_is_active = FALSE; /* XIM should be active in the current
mode */
static int xim_has_focus = FALSE; /* XIM is really being used for Vim */
-#ifdef FEAT_GUI_X11
+# ifdef FEAT_GUI_X11
static XIMStyle input_style;
static int status_area_enabled = TRUE;
-#endif
+# endif
/*
* Switch using XIM on/off. This is used by the code that changes "State".
+ * When 'imactivatefunc' is defined use that function instead.
*/
void
-im_set_active(int active)
+im_set_active(int active_arg)
{
- if (xic == NULL)
- return;
+ int active = active_arg;
/* If 'imdisable' is set, XIM is never active. */
if (p_imdisable)
active = FALSE;
-#if !defined(FEAT_GUI_GTK)
+# if !defined(FEAT_GUI_GTK)
else if (input_style & XIMPreeditPosition)
/* There is a problem in switching XIM off when preediting is used,
* and it is not clear how this can be solved. For now, keep XIM on
* all the time, like it was done in Vim 5.8. */
active = TRUE;
-#endif
+# endif
+
+# if defined(FEAT_EVAL)
+ if (p_imaf[0] != NUL)
+ {
+ if (active != im_get_status())
+ {
+ call_imactivatefunc(active);
+ im_is_active = active;
+ }
+ return;
+ }
+# endif
+
+ if (xic == NULL)
+ return;
/* Remember the active state, it is needed when Vim gets keyboard focus. */
xim_is_active = active;
@@ -6019,19 +6031,19 @@ xim_set_preedit(void)
}
}
-#if defined(FEAT_GUI_X11)
+# if defined(FEAT_GUI_X11)
static char e_xim[] = N_("E285: Failed to create input context");
-#endif
+# endif
-#if defined(FEAT_GUI_X11) || defined(PROTO)
-# if defined(XtSpecificationRelease) && XtSpecificationRelease >= 6 && !defined(SUN_SYSTEM)
-# define USE_X11R6_XIM
-# endif
+# if defined(FEAT_GUI_X11) || defined(PROTO)
+# if defined(XtSpecificationRelease) && XtSpecificationRelease >= 6 && !defined(SUN_SYSTEM)
+# define USE_X11R6_XIM
+# endif
static int xim_real_init(Window x11_window, Display *x11_display);
-#ifdef USE_X11R6_XIM
+# ifdef USE_X11R6_XIM
static void xim_destroy_cb(XIM im, XPointer client_data, XPointer call_data);
static void
@@ -6043,9 +6055,9 @@ xim_instantiate_cb(
Window x11_window;
Display *x11_display;
-#ifdef XIM_DEBUG
+# ifdef XIM_DEBUG
xim_log("xim_instantiate_cb()\n");
-#endif
+# endif
gui_get_x11_windis(&x11_window, &x11_display);
if (display != x11_display)
@@ -6067,9 +6079,9 @@ xim_destroy_cb(
Window x11_window;
Display *x11_display;
-#ifdef XIM_DEBUG
+# ifdef XIM_DEBUG
xim_log("xim_destroy_cb()\n");
-#endif
+ #endif
gui_get_x11_windis(&x11_window, &x11_display);
xic = NULL;
@@ -6080,7 +6092,7 @@ xim_destroy_cb(
XRegisterIMInstantiateCallback(x11_display, NULL, NULL, NULL,
xim_instantiate_cb, NULL);
}
-#endif
+# endif
void
xim_init(void)
@@ -6088,9 +6100,9 @@ xim_init(void)
Window x11_window;
Display *x11_display;
-#ifdef XIM_DEBUG
+# ifdef XIM_DEBUG
xim_log("xim_init()\n");
-#endif
+# endif
gui_get_x11_windis(&x11_window, &x11_display);
@@ -6101,10 +6113,10 @@ xim_init(void)
gui_set_shellsize(FALSE, FALSE, RESIZE_BOTH);
-#ifdef USE_X11R6_XIM
+# ifdef USE_X11R6_XIM
XRegisterIMInstantiateCallback(x11_display, NULL, NULL, NULL,
xim_instantiate_cb, NULL);
-#endif
+# endif
}
static int
@@ -6116,7 +6128,7 @@ xim_real_init(Window x11_window, Display *x11_display)
*ns,
*end,
tmp[1024];
-#define IMLEN_MAX 40
+# define IMLEN_MAX 40
char buf[IMLEN_MAX + 7];
XIM xim = NULL;
XIMStyles *xim_styles;
@@ -6181,7 +6193,7 @@ xim_real_init(Window x11_window, Display *x11_display)
return FALSE;
}
-#ifdef USE_X11R6_XIM
+# ifdef USE_X11R6_XIM
{
XIMCallback destroy_cb;
@@ -6190,7 +6202,7 @@ xim_real_init(Window x11_window, Display *x11_display)
if (XSetIMValues(xim, XNDestroyCallback, &destroy_cb, NULL))
EMSG(_("E287: Warning: Could not set destroy callback to IM"));
}
-#endif
+# endif
if (XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL) || !xim_styles)
{
@@ -6266,7 +6278,7 @@ xim_real_init(Window x11_window, Display *x11_display)
/* A crash was reported when trying to pass gui.norm_font as XNFontSet,
* thus that has been removed. Hopefully the default works... */
-#ifdef FEAT_XFONTSET
+# ifdef FEAT_XFONTSET
if (gui.fontset != NOFONTSET)
{
preedit_list = XVaCreateNestedList(0,
@@ -6282,7 +6294,7 @@ xim_real_init(Window x11_window, Display *x11_display)
NULL);
}
else
-#endif
+# endif
{
preedit_list = XVaCreateNestedList(0,
XNSpotLocation, &over_spot,
@@ -6324,7 +6336,7 @@ xim_real_init(Window x11_window, Display *x11_display)
return TRUE;
}
-#endif /* FEAT_GUI_X11 */
+# endif /* FEAT_GUI_X11 */
/*
* Get IM status. When IM is on, return TRUE. Else return FALSE.
@@ -6335,6 +6347,10 @@ xim_real_init(Window x11_window, Display *x11_display)
int
im_get_status(void)
{
+# ifdef FEAT_EVAL
+ if (p_imsf[0] != NUL)
+ return call_imstatusfunc();
+# endif
return xim_has_focus;
}
@@ -6458,38 +6474,29 @@ xim_get_status_area_height(void)
#else /* !defined(FEAT_XIM) */
# ifndef FEAT_GUI_W32
+static int im_was_set_active = FALSE;
+
int
im_get_status()
{
# ifdef FEAT_EVAL
if (p_imsf[0] != NUL)
- {
- int is_active;
-
- /* FIXME: Don't execute user function in unsafe situation. */
- if (exiting
-# ifdef FEAT_AUTOCMD
- || is_autocmd_blocked()
-# endif
- )
- return FALSE;
- /* FIXME: :py print 'xxx' is shown duplicate result.
- * Use silent to avoid it. */
- ++msg_silent;
- is_active = call_func_retnr(p_imsf, 0, NULL, FALSE);
- --msg_silent;
- return (is_active > 0);
- }
+ return call_imstatusfunc();
# endif
- return FALSE;
+ return im_was_set_active;
}
void
-im_set_active(int active)
+im_set_active(int active_arg)
{
-# if defined(USE_IM_CONTROL) && defined(FEAT_EVAL)
- if (p_imaf[0] != NUL)
- call_imactivatefunc(p_imdisable ? FALSE : active);
+# if defined(FEAT_MBYTE) && defined(FEAT_EVAL)
+ int active = !p_imdisable && active_arg;
+
+ if (p_imaf[0] != NUL && active != im_get_status())
+ {
+ call_imactivatefunc(active);
+ im_was_set_active = active;
+ }
# endif
}
# endif
diff --git a/src/normal.c b/src/normal.c
index fb0129aec..76eb18a21 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -892,7 +892,7 @@ getcount:
int lit = FALSE; /* get extra character literally */
int langmap_active = FALSE; /* using :lmap mappings */
int lang; /* getting a text character */
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
int save_smd; /* saved value of p_smd */
#endif
@@ -957,7 +957,7 @@ getcount:
State = LANGMAP;
langmap_active = TRUE;
}
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
save_smd = p_smd;
p_smd = FALSE; /* Don't let the IM code show the mode here */
if (lang && curbuf->b_p_iminsert == B_IMODE_IM)
@@ -973,7 +973,7 @@ getcount:
++allow_keys;
State = NORMAL_BUSY;
}
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
if (lang)
{
if (curbuf->b_p_iminsert != B_IMODE_LMAP)
diff --git a/src/option.c b/src/option.c
index ac0918dac..a86760860 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1539,7 +1539,7 @@ static struct vimoption options[] =
(char_u *)&p_ic, PV_NONE,
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
{"imactivatefunc","imaf",P_STRING|P_VI_DEF|P_SECURE,
-#if defined(FEAT_EVAL) && defined(USE_IM_CONTROL)
+#if defined(FEAT_EVAL) && defined(FEAT_MBYTE)
(char_u *)&p_imaf, PV_NONE,
{(char_u *)"", (char_u *)NULL}
# else
@@ -1555,14 +1555,14 @@ static struct vimoption options[] =
#endif
{(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
{"imcmdline", "imc", P_BOOL|P_VI_DEF,
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
(char_u *)&p_imcmdline, PV_NONE,
#else
(char_u *)NULL, PV_NONE,
#endif
{(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
{"imdisable", "imd", P_BOOL|P_VI_DEF,
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
(char_u *)&p_imdisable, PV_NONE,
#else
(char_u *)NULL, PV_NONE,
@@ -1582,7 +1582,7 @@ static struct vimoption options[] =
{(char_u *)B_IMODE_USE_INSERT, (char_u *)0L}
SCRIPTID_INIT},
{"imstatusfunc","imsf",P_STRING|P_VI_DEF|P_SECURE,
-#if defined(FEAT_EVAL) && defined(USE_IM_CONTROL)
+#if defined(FEAT_EVAL) && defined(FEAT_MBYTE)
(char_u *)&p_imsf, PV_NONE,
{(char_u *)"", (char_u *)NULL}
#else
@@ -8469,7 +8469,7 @@ set_bool_option(
}
#endif
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
/* 'imdisable' */
else if ((int *)varp == &p_imdisable)
{
diff --git a/src/option.h b/src/option.h
index 57126a31b..c9fa4d35f 100644
--- a/src/option.h
+++ b/src/option.h
@@ -585,11 +585,11 @@ EXTERN char_u *p_imak; /* 'imactivatekey' */
#define IM_OVER_THE_SPOT 1L
EXTERN long p_imst; /* 'imstyle' */
#endif
-#if defined(FEAT_EVAL) && defined(USE_IM_CONTROL)
+#if defined(FEAT_EVAL) && defined(FEAT_MBYTE)
EXTERN char_u *p_imaf; /* 'imactivatefunc' */
EXTERN char_u *p_imsf; /* 'imstatusfunc' */
#endif
-#ifdef USE_IM_CONTROL
+#ifdef FEAT_MBYTE
EXTERN int p_imcmdline; /* 'imcmdline' */
EXTERN int p_imdisable; /* 'imdisable' */
#endif
diff --git a/src/ui.c b/src/ui.c
index 1b2b3c563..7d969fec8 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -3307,7 +3307,7 @@ ui_focus_change(
}
#endif
-#if defined(USE_IM_CONTROL) || defined(PROTO)
+#if defined(FEAT_MBYTE) || defined(PROTO)
/*
* Save current Input Method status to specified place.
*/
diff --git a/src/version.c b/src/version.c
index 6a1162bcf..8cce07899 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1338,
+/**/
1337,
/**/
1336,
diff --git a/src/vim.h b/src/vim.h
index 1d481ca46..1c2b7950e 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -534,13 +534,6 @@ typedef unsigned long u8char_T; /* long should be 32 bits or more */
#endif
/*
- * Check input method control.
- */
-#if defined(FEAT_MBYTE)
-# define USE_IM_CONTROL
-#endif
-
-/*
* For dynamically loaded gettext library. Currently, only for Win32.
*/
#ifdef DYNAMIC_GETTEXT