diff --git a/recipes/vim/vim.patch b/recipes/vim/vim.patch
index 26d5ad6982ab3539dc2c1d345fd182a30d75a0c1..a88aab2fecd3d6d5644cc798fe426586d69d6f1f 100644
--- a/recipes/vim/vim.patch
+++ b/recipes/vim/vim.patch
@@ -1,211 +1,212 @@
 diff -ru source/src/channel.c source-new/src/channel.c
---- source/src/channel.c	2017-10-30 17:21:14.784946514 -0700
-+++ source-new/src/channel.c	2017-10-30 17:27:08.234992143 -0700
-@@ -852,29 +852,27 @@
+--- source/src/channel.c	2017-04-07 04:57:11.000000000 -0700
++++ source-new/src/channel.c	2017-11-04 14:36:18.494841805 -0700
+@@ -852,27 +852,29 @@
  	     * actually able to connect.
  	     * We detect a failure to connect when either read and write fds
  	     * are set.  Use getsockopt() to find out what kind of failure. */
--/*
-- *            if (FD_ISSET(sd, &rfds) || FD_ISSET(sd, &wfds))
-- *            {
-- *                ret = getsockopt(sd,
-- *                              SOL_SOCKET, SO_ERROR, &so_error, &so_error_len);
-- *                if (ret < 0 || (so_error != 0
-- *                        && so_error != EWOULDBLOCK
-- *                        && so_error != ECONNREFUSED
-- *# ifdef EINPROGRESS
-- *                        && so_error != EINPROGRESS
-- *# endif
-- *                        ))
-- *                {
-- *                    ch_errorn(channel,
-- *                            "channel_open: Connect failed with errno %d",
-- *                            so_error);
-- *                    PERROR(_(e_cannot_connect));
-- *                    sock_close(sd);
-- *                    channel_free(channel);
-- *                    return NULL;
-- *                }
-- *            }
-- */
-+	    if (FD_ISSET(sd, &rfds) || FD_ISSET(sd, &wfds))
-+	    {
-+		ret = getsockopt(sd,
-+			      SOL_SOCKET, SO_ERROR, &so_error, &so_error_len);
-+		if (ret < 0 || (so_error != 0
-+			&& so_error != EWOULDBLOCK
-+			&& so_error != ECONNREFUSED
-+# ifdef EINPROGRESS
-+			&& so_error != EINPROGRESS
-+# endif
-+			))
-+		{
-+		    ch_errorn(channel,
-+			    "channel_open: Connect failed with errno %d",
-+			    so_error);
-+		    PERROR(_(e_cannot_connect));
-+		    sock_close(sd);
-+		    channel_free(channel);
-+		    return NULL;
-+		}
-+	    }
+-	    if (FD_ISSET(sd, &rfds) || FD_ISSET(sd, &wfds))
+-	    {
+-		ret = getsockopt(sd,
+-			      SOL_SOCKET, SO_ERROR, &so_error, &so_error_len);
+-		if (ret < 0 || (so_error != 0
+-			&& so_error != EWOULDBLOCK
+-			&& so_error != ECONNREFUSED
+-# ifdef EINPROGRESS
+-			&& so_error != EINPROGRESS
+-# endif
+-			))
+-		{
+-		    ch_errorn(channel,
+-			    "channel_open: Connect failed with errno %d",
+-			    so_error);
+-		    PERROR(_(e_cannot_connect));
+-		    sock_close(sd);
+-		    channel_free(channel);
+-		    return NULL;
+-		}
+-	    }
++/*
++ *            if (FD_ISSET(sd, &rfds) || FD_ISSET(sd, &wfds))
++ *            {
++ *                ret = getsockopt(sd,
++ *                              SOL_SOCKET, SO_ERROR, &so_error, &so_error_len);
++ *                if (ret < 0 || (so_error != 0
++ *                        && so_error != EWOULDBLOCK
++ *                        && so_error != ECONNREFUSED
++ *# ifdef EINPROGRESS
++ *                        && so_error != EINPROGRESS
++ *# endif
++ *                        ))
++ *                {
++ *                    ch_errorn(channel,
++ *                            "channel_open: Connect failed with errno %d",
++ *                            so_error);
++ *                    PERROR(_(e_cannot_connect));
++ *                    sock_close(sd);
++ *                    channel_free(channel);
++ *                    return NULL;
++ *                }
++ *            }
++ */
  
  	    if (FD_ISSET(sd, &wfds) && so_error == 0)
  		/* Did not detect an error, connection is established. */
 diff -ru source/src/memfile.c source-new/src/memfile.c
---- source/src/memfile.c	2017-10-30 17:24:53.944974807 -0700
-+++ source-new/src/memfile.c	2017-10-30 17:27:08.244992145 -0700
+--- source/src/memfile.c	2016-11-10 09:24:37.000000000 -0800
++++ source-new/src/memfile.c	2017-11-04 14:36:18.494841805 -0700
 @@ -596,88 +596,88 @@
      if (hp == NULL || status == FAIL)
  	mfp->mf_dirty = FALSE;
  
--/*    if ((flags & MFS_FLUSH) && *p_sws != NUL)*/
--    /*{*/
--/*#if defined(UNIX)*/
--/*# ifdef HAVE_FSYNC*/
-+    if ((flags & MFS_FLUSH) && *p_sws != NUL)
-+    {
-+#if defined(UNIX)
-+# ifdef HAVE_FSYNC
+-    if ((flags & MFS_FLUSH) && *p_sws != NUL)
+-    {
+-#if defined(UNIX)
+-# ifdef HAVE_FSYNC
++/*    if ((flags & MFS_FLUSH) && *p_sws != NUL)*/
++    /*{*/
++/*#if defined(UNIX)*/
++/*# ifdef HAVE_FSYNC*/
  	/*
  	 * most Unixes have the very useful fsync() function, just what we need.
  	 */
--	/*if (STRCMP(p_sws, "fsync") == 0)*/
--	/*{*/
--	    /*if (fsync(mfp->mf_fd))*/
--		/*status = FAIL;*/
--	/*}*/
--	/*else*/
--/*# endif*/
--	    /*[> OpenNT is strictly POSIX (Benzinger) <]*/
--	    /*[> Tandem/Himalaya NSK-OSS doesn't have sync() <]*/
--	    /*[> No sync() on Stratus VOS <]*/
--/*# if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__)*/
--	    /*fflush(NULL);*/
--/*# else*/
--	    /*//sync();*/
--/*# endif*/
--/*#endif*/
--/*#ifdef VMS*/
--	/*if (STRCMP(p_sws, "fsync") == 0)*/
--	/*{*/
--	    /*if (fsync(mfp->mf_fd))*/
--		/*status = FAIL;*/
--	/*}*/
--/*#endif*/
--/*#ifdef SYNC_DUP_CLOSE*/
-+	if (STRCMP(p_sws, "fsync") == 0)
-+	{
-+	    if (fsync(mfp->mf_fd))
-+		status = FAIL;
-+	}
-+	else
-+# endif
-+	    /* OpenNT is strictly POSIX (Benzinger) */
-+	    /* Tandem/Himalaya NSK-OSS doesn't have sync() */
-+	    /* No sync() on Stratus VOS */
-+# if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__)
-+	    fflush(NULL);
-+# else
-+	    sync();
-+# endif
-+#endif
-+#ifdef VMS
-+	if (STRCMP(p_sws, "fsync") == 0)
-+	{
-+	    if (fsync(mfp->mf_fd))
-+		status = FAIL;
-+	}
-+#endif
-+#ifdef SYNC_DUP_CLOSE
+-	if (STRCMP(p_sws, "fsync") == 0)
+-	{
+-	    if (fsync(mfp->mf_fd))
+-		status = FAIL;
+-	}
+-	else
+-# endif
+-	    /* OpenNT is strictly POSIX (Benzinger) */
+-	    /* Tandem/Himalaya NSK-OSS doesn't have sync() */
+-	    /* No sync() on Stratus VOS */
+-# if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__)
+-	    fflush(NULL);
+-# else
+-	    sync();
+-# endif
+-#endif
+-#ifdef VMS
+-	if (STRCMP(p_sws, "fsync") == 0)
+-	{
+-	    if (fsync(mfp->mf_fd))
+-		status = FAIL;
+-	}
+-#endif
+-#ifdef SYNC_DUP_CLOSE
++	/*if (STRCMP(p_sws, "fsync") == 0)*/
++	/*{*/
++	    /*if (fsync(mfp->mf_fd))*/
++		/*status = FAIL;*/
++	/*}*/
++	/*else*/
++/*# endif*/
++	    /*[> OpenNT is strictly POSIX (Benzinger) <]*/
++	    /*[> Tandem/Himalaya NSK-OSS doesn't have sync() <]*/
++	    /*[> No sync() on Stratus VOS <]*/
++/*# if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__)*/
++	    /*fflush(NULL);*/
++/*# else*/
++	    /*//sync();*/
++/*# endif*/
++/*#endif*/
++/*#ifdef VMS*/
++	/*if (STRCMP(p_sws, "fsync") == 0)*/
++	/*{*/
++	    /*if (fsync(mfp->mf_fd))*/
++		/*status = FAIL;*/
++	/*}*/
++/*#endif*/
++/*#ifdef SYNC_DUP_CLOSE*/
  	/*
  	 * Win32 is a bit more work: Duplicate the file handle and close it.
  	 * This should flush the file to disk.
  	 */
--	/*if ((fd = dup(mfp->mf_fd)) >= 0)*/
--	    /*close(fd);*/
--/*#endif*/
--/*#ifdef AMIGA*/
--/*# if defined(__AROS__) || defined(__amigaos4__)*/
--	/*if (fsync(mfp->mf_fd) != 0)*/
--	    /*status = FAIL;*/
--/*# else*/
-+	if ((fd = dup(mfp->mf_fd)) >= 0)
-+	    close(fd);
-+#endif
-+#ifdef AMIGA
-+# if defined(__AROS__) || defined(__amigaos4__)
-+	if (fsync(mfp->mf_fd) != 0)
-+	    status = FAIL;
-+# else
+-	if ((fd = dup(mfp->mf_fd)) >= 0)
+-	    close(fd);
+-#endif
+-#ifdef AMIGA
+-# if defined(__AROS__) || defined(__amigaos4__)
+-	if (fsync(mfp->mf_fd) != 0)
+-	    status = FAIL;
+-# else
++	/*if ((fd = dup(mfp->mf_fd)) >= 0)*/
++	    /*close(fd);*/
++/*#endif*/
++/*#ifdef AMIGA*/
++/*# if defined(__AROS__) || defined(__amigaos4__)*/
++	/*if (fsync(mfp->mf_fd) != 0)*/
++	    /*status = FAIL;*/
++/*# else*/
  	/*
  	 * Flush() only exists for AmigaDos 2.0.
  	 * For 1.3 it should be done with close() + open(), but then the risk
  	 * is that the open() may fail and lose the file....
  	 */
--/*#  ifdef FEAT_ARP*/
--	/*if (dos2)*/
--/*#  endif*/
--/*#  ifdef SASC*/
--	/*{*/
--	    /*struct UFB *fp = chkufb(mfp->mf_fd);*/
-+#  ifdef FEAT_ARP
-+	if (dos2)
-+#  endif
-+#  ifdef SASC
-+	{
-+	    struct UFB *fp = chkufb(mfp->mf_fd);
+-#  ifdef FEAT_ARP
+-	if (dos2)
+-#  endif
+-#  ifdef SASC
+-	{
+-	    struct UFB *fp = chkufb(mfp->mf_fd);
++/*#  ifdef FEAT_ARP*/
++	/*if (dos2)*/
++/*#  endif*/
++/*#  ifdef SASC*/
++	/*{*/
++	    /*struct UFB *fp = chkufb(mfp->mf_fd);*/
  
--	    /*if (fp != NULL)*/
--		/*Flush(fp->ufbfh);*/
--	/*}*/
--/*#  else*/
--/*#   if defined(_DCC) || defined(__GNUC__) || defined(__MORPHOS__)*/
--	/*{*/
--/*#    if defined(__GNUC__) && !defined(__MORPHOS__) && defined(__libnix__)*/
-+	    if (fp != NULL)
-+		Flush(fp->ufbfh);
-+	}
-+#  else
-+#   if defined(_DCC) || defined(__GNUC__) || defined(__MORPHOS__)
-+	{
-+#    if defined(__GNUC__) && !defined(__MORPHOS__) && defined(__libnix__)
+-	    if (fp != NULL)
+-		Flush(fp->ufbfh);
+-	}
+-#  else
+-#   if defined(_DCC) || defined(__GNUC__) || defined(__MORPHOS__)
+-	{
+-#    if defined(__GNUC__) && !defined(__MORPHOS__) && defined(__libnix__)
++	    /*if (fp != NULL)*/
++		/*Flush(fp->ufbfh);*/
++	/*}*/
++/*#  else*/
++/*#   if defined(_DCC) || defined(__GNUC__) || defined(__MORPHOS__)*/
++	/*{*/
++/*#    if defined(__GNUC__) && !defined(__MORPHOS__) && defined(__libnix__)*/
  	    /* Have function (in libnix at least),
  	     * but ain't got no prototype anywhere. */
--	    /*extern unsigned long fdtofh(int filedescriptor);*/
--/*#    endif*/
--/*#    if !defined(__libnix__)*/
--	    /*fflush(NULL);*/
--/*#    else*/
--	    /*BPTR fh = (BPTR)fdtofh(mfp->mf_fd);*/
-+	    extern unsigned long fdtofh(int filedescriptor);
-+#    endif
-+#    if !defined(__libnix__)
-+	    fflush(NULL);
-+#    else
-+	    BPTR fh = (BPTR)fdtofh(mfp->mf_fd);
+-	    extern unsigned long fdtofh(int filedescriptor);
+-#    endif
+-#    if !defined(__libnix__)
+-	    fflush(NULL);
+-#    else
+-	    BPTR fh = (BPTR)fdtofh(mfp->mf_fd);
++	    /*extern unsigned long fdtofh(int filedescriptor);*/
++/*#    endif*/
++/*#    if !defined(__libnix__)*/
++	    /*fflush(NULL);*/
++/*#    else*/
++	    /*BPTR fh = (BPTR)fdtofh(mfp->mf_fd);*/
  
--	    /*if (fh != 0)*/
--		/*Flush(fh);*/
--/*#    endif*/
--	/*}*/
--/*#   else [> assume Manx <]*/
--	    /*Flush(_devtab[mfp->mf_fd].fd);*/
--/*#   endif*/
--/*#  endif*/
--/*# endif*/
--/*#endif [> AMIGA <]*/
--    /*}*/
-+	    if (fh != 0)
-+		Flush(fh);
-+#    endif
-+	}
-+#   else /* assume Manx */
-+	    Flush(_devtab[mfp->mf_fd].fd);
-+#   endif
-+#  endif
-+# endif
-+#endif /* AMIGA */
-+    }
+-	    if (fh != 0)
+-		Flush(fh);
+-#    endif
+-	}
+-#   else /* assume Manx */
+-	    Flush(_devtab[mfp->mf_fd].fd);
+-#   endif
+-#  endif
+-# endif
+-#endif /* AMIGA */
+-    }
++	    /*if (fh != 0)*/
++		/*Flush(fh);*/
++/*#    endif*/
++	/*}*/
++/*#   else [> assume Manx <]*/
++	    /*Flush(_devtab[mfp->mf_fd].fd);*/
++/*#   endif*/
++/*#  endif*/
++/*# endif*/
++/*#endif [> AMIGA <]*/
++    /*}*/
  
      got_int |= got_int_save;
+