changeset 20077:128963cd954f v8.2.0594

patch 8.2.0594: MS-Windows: cannot build with WINVER set to 0x0501 Commit: https://github.com/vim/vim/commit/b6fb0516ec862a18fdffe06c9400d507a7193835 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 18 18:24:18 2020 +0200 patch 8.2.0594: MS-Windows: cannot build with WINVER set to 0x0501 Problem: MS-Windows: cannot build with WINVER set to 0x0501. Solution: Only use inet_ntop() when available. (Ozaki Kiichi, closes https://github.com/vim/vim/issues/5946)
author Bram Moolenaar <Bram@vim.org>
date Sat, 18 Apr 2020 18:30:03 +0200
parents 023d3226e727
children 61222b5d173d
files src/Make_cyg_ming.mak src/Make_mvc.mak src/auto/configure src/channel.c src/config.h.in src/configure.ac src/version.c
diffstat 7 files changed, 35 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -625,6 +625,9 @@ endif
 
 ifeq ($(CHANNEL),yes)
 DEFINES += -DFEAT_JOB_CHANNEL -DFEAT_IPV6
+ ifeq ($(shell expr "$(WINVER)" \>= 0x600),1)
+DEFINES += -DHAVE_INET_NTOP
+ endif
 endif
 
 ifeq ($(TERMINAL),yes)
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -317,6 +317,10 @@ MSVCRT_NAME = vcruntime$(MSVCRT_VER)
 CPU = ix86
 !endif
 
+### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
+!ifndef WINVER
+WINVER = 0x0501
+!endif
 
 # Flag to turn on Win64 compatibility warnings for VC7.x and VC8.
 WP64CHECK = /Wp64
@@ -468,6 +472,9 @@ SOUND_LIB	= winmm.lib
 CHANNEL_PRO	= proto/channel.pro
 CHANNEL_OBJ	= $(OBJDIR)/channel.obj
 CHANNEL_DEFS	= -DFEAT_JOB_CHANNEL -DFEAT_IPV6
+! if $(WINVER) >= 0x600
+CHANNEL_DEFS	= $(CHANNEL_DEFS) -DHAVE_INET_NTOP
+! endif
 
 NETBEANS_LIB	= WSock32.lib Ws2_32.lib
 !endif
@@ -493,11 +500,6 @@ CON_LIB = oldnames.lib kernel32.lib adva
 CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
 !endif
 
-### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
-!ifndef WINVER
-WINVER = 0x0501
-!endif
-
 # If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
 # default, use these lines.
 #VIMRCLOC = somewhere
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -7872,6 +7872,17 @@ fi
   if test "x$vim_cv_ipv6_networking" = "xyes"; then
     $as_echo "#define FEAT_IPV6 1" >>confdefs.h
 
+    for ac_func in inet_ntop
+do :
+  ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
+if test "x$ac_cv_func_inet_ntop" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_INET_NTOP 1
+_ACEOF
+
+fi
+done
+
   else
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
--- a/src/channel.c
+++ b/src/channel.c
@@ -996,9 +996,11 @@ channel_open(
 
     for (addr = res; addr != NULL; addr = addr->ai_next)
     {
-	const char *dst = hostname;
-	const void *src = NULL;
-	char buf[NUMBUFLEN];
+	const char  *dst = hostname;
+	const void  *src = NULL;
+# ifdef HAVE_INET_NTOP
+	char	    buf[NUMBUFLEN];
+# endif
 
 	if (addr->ai_family == AF_INET6)
 	{
@@ -1014,12 +1016,16 @@ channel_open(
 	    sai->sin_port = htons(port);
 	    src = &sai->sin_addr;
 	}
+# ifdef HAVE_INET_NTOP
 	if (src != NULL)
 	{
 	    dst = inet_ntop(addr->ai_family, src, buf, sizeof(buf));
-	    if (dst != NULL && STRCMP(hostname, dst) != 0)
+	    if (dst == NULL)
+		dst = hostname;
+	    else if (STRCMP(hostname, dst) != 0)
 		ch_log(channel, "Resolved %s to %s", hostname, dst);
 	}
+# endif
 
 	ch_log(channel, "Trying to connect to %s port %d", dst, port);
 
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -174,6 +174,7 @@
 #undef HAVE_GETTIMEOFDAY
 #undef HAVE_GETWD
 #undef HAVE_ICONV
+#undef HAVE_INET_NTOP
 #undef HAVE_LOCALTIME_R
 #undef HAVE_LSTAT
 #undef HAVE_MEMSET
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -2077,6 +2077,7 @@ if test "$enable_channel" = "yes"; then
 
   if test "x$vim_cv_ipv6_networking" = "xyes"; then
     AC_DEFINE(FEAT_IPV6)
+    AC_CHECK_FUNCS(inet_ntop)
   else
     dnl On Solaris we need the nsl library.
     AC_CHECK_LIB(nsl, gethostbyname)
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    594,
+/**/
     593,
 /**/
     592,