# HG changeset patch # User Bram Moolenaar # Date 1556984706 -7200 # Node ID 5412fcd03ecb0315392f4a47cdf35e09ef562a70 # Parent 8f85d2c73e7e834b4daf545e79ca48eb591e64f0 patch 8.1.1267: cannot check if GPM mouse support is working commit https://github.com/vim/vim/commit/4b8366b56edbf4f3efcaeedbaba491c49c5788ca Author: Bram Moolenaar Date: Sat May 4 17:34:34 2019 +0200 patch 8.1.1267: cannot check if GPM mouse support is working Problem: Cannot check if GPM mouse support is working. Solution: Add the "mouse_gpm_enable" feature. diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -10532,6 +10532,7 @@ modify_fname Compiled with file name mo mouse Compiled with support mouse. mouse_dec Compiled with support for Dec terminal mouse. mouse_gpm Compiled with support for gpm (Linux console mouse) +mouse_gpm_enabled GPM mouse is working mouse_netterm Compiled with support for netterm mouse. mouse_pterm Compiled with support for qnx pterm mouse. mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse) diff --git a/src/evalfunc.c b/src/evalfunc.c --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -6810,6 +6810,10 @@ f_has(typval_T *argvars, typval_T *rettv else if (STRICMP(name, "netbeans_enabled") == 0) n = netbeans_active(); #endif +#ifdef FEAT_MOUSE_GPM + else if (STRICMP(name, "mouse_gpm_enabled") == 0) + n = gpm_enabled(); +#endif #if defined(FEAT_TERMINAL) && defined(MSWIN) else if (STRICMP(name, "terminal") == 0) n = terminal_enabled(); diff --git a/src/os_unix.c b/src/os_unix.c --- a/src/os_unix.c +++ b/src/os_unix.c @@ -7022,7 +7022,7 @@ mch_rename(const char *src, const char * } #endif /* !HAVE_RENAME */ -#ifdef FEAT_MOUSE_GPM +#if defined(FEAT_MOUSE_GPM) || defined(PROTO) /* * Initializes connection with gpm (if it isn't already opened) * Return 1 if succeeded (or connection already opened), 0 if failed @@ -7059,12 +7059,21 @@ gpm_open(void) } /* + * Returns TRUE if the GPM mouse is enabled. + */ + int +gpm_enabled(void) +{ + return gpm_flag && gpm_fd >= 0; +} + +/* * Closes connection to gpm */ static void gpm_close(void) { - if (gpm_flag && gpm_fd >= 0) /* if Open */ + if (gpm_enabled()) Gpm_Close(); } diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro --- a/src/proto/os_unix.pro +++ b/src/proto/os_unix.pro @@ -72,6 +72,7 @@ int mch_expand_wildcards(int num_pat, ch int mch_has_exp_wildcard(char_u *p); int mch_has_wildcard(char_u *p); int mch_rename(const char *src, const char *dest); +int gpm_enabled(void); int mch_libcall(char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result); void setup_term_clip(void); void start_xterm_trace(int button); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -768,6 +768,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1267, +/**/ 1266, /**/ 1265,