]> granicus.if.org Git - vim/commitdiff
patch 8.2.0594: MS-Windows: cannot build with WINVER set to 0x0501 v8.2.0594
authorBram Moolenaar <Bram@vim.org>
Sat, 18 Apr 2020 16:24:18 +0000 (18:24 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 18 Apr 2020 16:24:18 +0000 (18:24 +0200)
Problem:    MS-Windows: cannot build with WINVER set to 0x0501.
Solution:   Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946)

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

index d767c79f92a798e84eb8f90aa8eb484d280fb437..750e940e067fc0d6f4b396551a9cba06249546c1 100644 (file)
@@ -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)
index e95a94ad5880342c6a0f09abfb10f8c4c291c797..ebc059f8623fea0e891d276320ac918e6df05a56 100644 (file)
@@ -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 advapi32.lib shell32.lib gdi32.lib \
 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
index 33bf663224f81dcca8f0fb6fcb58b7a4e04c401e..e72cf70cd44f7aa9e0c473f88d1f847719b7753c 100755 (executable)
@@ -7872,6 +7872,17 @@ $as_echo "$vim_cv_ipv6_networking" >&6; }
   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; }
index 0d86423b693736fd1136b1de39af4d2f7d3e70a8..9577f3dc46ae3d92a2d6e318d48c16e2fabf37d9 100644 (file)
@@ -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);
 
index 166724c9169f36fb6ef40daea6bd1eb66d971ca7..83549303f69a09b5fcebc557bdebc73de5fdb198 100644 (file)
 #undef HAVE_GETTIMEOFDAY
 #undef HAVE_GETWD
 #undef HAVE_ICONV
+#undef HAVE_INET_NTOP
 #undef HAVE_LOCALTIME_R
 #undef HAVE_LSTAT
 #undef HAVE_MEMSET
index 47502a99c40571309543e61380419529d0998ad2..972337b46188b9b60b454bd65aa8bb7f56759f8d 100644 (file)
@@ -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)
index c3a0a191d3c4862aa3239f56b98d2329d4d5e464..09dc67852151a0171141c07d8469f163440ce3c7 100644 (file)
@@ -746,6 +746,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    594,
 /**/
     593,
 /**/