From e42a6d250907e278707753d7d1ba91ffc2471db0 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 12 Nov 2017 19:21:51 +0100 Subject: patch 8.0.1295: cannot automatically get a server name in a terminal Problem: Cannot automatically get a server name in a terminal. Solution: Add the --enable-autoservername flag to configure. (Cimbali, closes #2317) --- runtime/doc/eval.txt | 1 + runtime/doc/various.txt | 1 + src/Makefile | 5 ++++- src/auto/configure | 18 ++++++++++++++++++ src/config.h.in | 3 +++ src/configure.ac | 9 +++++++++ src/evalfunc.c | 3 +++ src/feature.h | 8 ++++++++ src/main.c | 12 +++++++++--- src/version.c | 7 +++++++ 10 files changed, 63 insertions(+), 4 deletions(-) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index f2abcbdc07..f754892caa 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -8820,6 +8820,7 @@ amiga Amiga version of Vim. arabic Compiled with Arabic support |Arabic|. arp Compiled with ARP support (Amiga). autocmd Compiled with autocommand support. |autocommand| +autoservername Automatically enable |clientserver| balloon_eval Compiled with |balloon-eval| support. balloon_multiline GUI supports multiline balloons. beos BeOS version of Vim. diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index d994e7155a..07ec3b1941 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -309,6 +309,7 @@ g8 Print the hex values of the bytes used in the *+ARP* Amiga only: ARP support included B *+arabic* |Arabic| language support N *+autocmd* |:autocmd|, automatic commands +H *+autoservername* Automatically enable |clientserver| m *+balloon_eval* |balloon-eval| support. Included when compiling with supported GUI (Motif, GTK, GUI) and either Netbeans/Sun Workshop integration or |+eval| feature. diff --git a/src/Makefile b/src/Makefile index 1cdacf90fb..f544528842 100644 --- a/src/Makefile +++ b/src/Makefile @@ -570,6 +570,9 @@ CClink = $(CC) # This disables the dialog that asks you if you want to save files or not. #CONF_OPT_XSMP = --disable-xsmp-interact +# If you want to always automatically add a servername, also in the terminal. +#CONF_OPT_AUTOSERVE = --enable-autoservername + # COMPILER - Name of the compiler {{{1 # The default from configure will mostly be fine, no need to change this, just # an example. If a compiler is defined here, configure will use it rather than @@ -1866,7 +1869,7 @@ config auto/config.mk: auto/configure config.mk.in config.h.in CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \ LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \ ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \ - $(CONF_OPT_DARWIN) $(CONF_OPT_FAIL) \ + $(CONF_OPT_AUTOSERVE) $(CONF_OPT_DARWIN) $(CONF_OPT_FAIL) \ $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \ $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \ $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \ diff --git a/src/auto/configure b/src/auto/configure index 16cbcf30ae..f4cd8b492a 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -817,6 +817,7 @@ enable_workshop enable_netbeans enable_channel enable_terminal +enable_autoservername enable_multibyte enable_hangulinput enable_xim @@ -1495,6 +1496,7 @@ Optional Features: --disable-netbeans Disable NetBeans integration support. --disable-channel Disable process communication support. --enable-terminal Enable terminal emulation support. + --enable-autoservername Automatically define servername at vim startup. --enable-multibyte Include multibyte editing support. --enable-hangulinput Include Hangul input support. --enable-xim Include XIM input support. @@ -7516,6 +7518,22 @@ if test "$enable_terminal" = "yes"; then fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-autoservername argument" >&5 +$as_echo_n "checking --enable-autoservername argument... " >&6; } +# Check whether --enable-autoservername was given. +if test "${enable_autoservername+set}" = set; then : + enableval=$enable_autoservername; +else + enable_autoservername="no" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_autoservername" >&5 +$as_echo "$enable_autoservername" >&6; } +if test "$enable_autoservername" = "yes"; then + $as_echo "#define FEAT_AUTOSERVERNAME 1" >>confdefs.h + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-multibyte argument" >&5 $as_echo_n "checking --enable-multibyte argument... " >&6; } # Check whether --enable-multibyte was given. diff --git a/src/config.h.in b/src/config.h.in index e692d40ac5..ec9fc59202 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -384,6 +384,9 @@ /* Define if you want to include multibyte support. */ #undef FEAT_MBYTE +/* Define if you want to always define a server name at vim startup. */ +#undef FEAT_AUTOSERVERNAME + /* Define if you want to include fontset support. */ #undef FEAT_XFONTSET diff --git a/src/configure.ac b/src/configure.ac index e28712413c..7277f8745f 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -2066,6 +2066,15 @@ if test "$enable_terminal" = "yes"; then AC_SUBST(TERM_OBJ) fi +AC_MSG_CHECKING(--enable-autoservername argument) +AC_ARG_ENABLE(autoservername, + [ --enable-autoservername Automatically define servername at vim startup.], , + [enable_autoservername="no"]) +AC_MSG_RESULT($enable_autoservername) +if test "$enable_autoservername" = "yes"; then + AC_DEFINE(FEAT_AUTOSERVERNAME) +fi + AC_MSG_CHECKING(--enable-multibyte argument) AC_ARG_ENABLE(multibyte, [ --enable-multibyte Include multibyte editing support.], , diff --git a/src/evalfunc.c b/src/evalfunc.c index 5e22fe4bc3..1991aa7c62 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -5580,6 +5580,9 @@ f_has(typval_T *argvars, typval_T *rettv) #ifdef FEAT_AUTOCMD "autocmd", #endif +#ifdef FEAT_AUTOSERVERNAME + "autoservername", +#endif #ifdef FEAT_BEVAL "balloon_eval", # ifndef FEAT_GUI_W32 /* other GUIs always have multiline balloons */ diff --git a/src/feature.h b/src/feature.h index e90d7557b1..d100d6b31b 100644 --- a/src/feature.h +++ b/src/feature.h @@ -1167,6 +1167,14 @@ # define FEAT_CLIENTSERVER #endif +/* + * +autoservername Automatically generate a servername for clientserver + * when --servername is not passed on the command line. + */ +#if defined(FEAT_CLIENTSERVER) && !defined(FEAT_AUTOSERVERNAME) +/* # define FEAT_AUTOSERVERNAME */ +#endif + /* * +termresponse send t_RV to obtain terminal response. Used for xterm * to check if mouse dragging can be used and if term diff --git a/src/main.c b/src/main.c index 97f1b035f0..e8006c30bd 100644 --- a/src/main.c +++ b/src/main.c @@ -3673,12 +3673,18 @@ prepare_server(mparm_T *parmp) /* * Register for remote command execution with :serversend and --remote * unless there was a -X or a --servername '' on the command line. - * Only register nongui-vim's with an explicit --servername argument. + * Only register nongui-vim's with an explicit --servername argument, + * or when compiling with autoservername. * When running as root --servername is also required. */ if (X_DISPLAY != NULL && parmp->servername != NULL && ( -# ifdef FEAT_GUI - (gui.in_use +# if defined(FEAT_AUTOSERVERNAME) || defined(FEAT_GUI) + ( +# if defined(FEAT_AUTOSERVERNAME) + 1 +# else + gui.in_use +# endif # ifdef UNIX && getuid() != ROOT_UID # endif diff --git a/src/version.c b/src/version.c index 1fd6502c9e..2c190a6b3c 100644 --- a/src/version.c +++ b/src/version.c @@ -83,6 +83,11 @@ static char *(features[]) = #else "-autocmd", #endif +#ifdef FEAT_AUTOSERVERNAME + "+autoservername", +#else + "-autoservername", +#endif #ifdef FEAT_BEVAL "+balloon_eval", #else @@ -761,6 +766,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1295, /**/ 1294, /**/ -- cgit v1.2.3