summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/eval.txt1
-rw-r--r--src/evalfunc.c4
-rw-r--r--src/os_unix.c13
-rw-r--r--src/proto/os_unix.pro1
-rw-r--r--src/version.c2
5 files changed, 19 insertions, 2 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index c12e69e4a..bc18daaca 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -10532,6 +10532,7 @@ modify_fname Compiled with file name modifiers. |filename-modifiers|
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
index 7b6785cfa..a2be7b903 100644
--- 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
index 9f8a7b110..b5627b162 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -7022,7 +7022,7 @@ mch_rename(const char *src, const char *dest)
}
#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
index 721c07daa..0117b1ea1 100644
--- a/src/proto/os_unix.pro
+++ b/src/proto/os_unix.pro
@@ -72,6 +72,7 @@ int mch_expand_wildcards(int num_pat, char_u **pat, int *num_file, char_u ***fil
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
index 8458a8163..687767360 100644
--- 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,