changeset 19762:b97112a4e3e4 v8.2.0437

patch 8.2.0437: MS-Windows installer contains old stuff Commit: https://github.com/vim/vim/commit/0df541963d406edd69d3ebe8de3912eb87b05414 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Mar 23 22:17:11 2020 +0100 patch 8.2.0437: MS-Windows installer contains old stuff Problem: MS-Windows installer contains old stuff. Solution: Rely on Windows NT. (Ken Takata, closes https://github.com/vim/vim/issues/5832)
author Bram Moolenaar <Bram@vim.org>
date Mon, 23 Mar 2020 22:30:03 +0100
parents 635c86919ed2
children 1616cb679e62
files src/dosinst.c src/version.c
diffstat 2 files changed, 33 insertions(+), 72 deletions(-) [+]
line wrap: on
line diff
--- a/src/dosinst.c
+++ b/src/dosinst.c
@@ -847,8 +847,7 @@ install_bat_choice(int idx)
 
 	    /*
 	     * Don't use double quotes for the "set" argument, also when it
-	     * contains a space.  The quotes would be included in the value
-	     * for MSDOS and NT.
+	     * contains a space.  The quotes would be included in the value.
 	     * The order of preference is:
 	     * 1. $VIMRUNTIME/vim.exe	    (user preference)
 	     * 2. $VIM/vim81/vim.exe	    (hard coded version)
@@ -861,92 +860,52 @@ install_bat_choice(int idx)
 	    fprintf(fd, "\n");
 
 	    // Give an error message when the executable could not be found.
-	    fprintf(fd, "if exist \"%%VIM_EXE_DIR%%\\%s\" goto havevim\n",
-								     exename);
-	    fprintf(fd, "echo \"%%VIM_EXE_DIR%%\\%s\" not found\n", exename);
-	    fprintf(fd, "goto eof\n");
-	    fprintf(fd, "\n");
-	    fprintf(fd, ":havevim\n");
-
-	    fprintf(fd, "rem collect the arguments in VIMARGS for Win95\n");
-	    fprintf(fd, "set VIMARGS=\n");
-	    if (*exename == 'g')
-		fprintf(fd, "set VIMNOFORK=\n");
-	    fprintf(fd, ":loopstart\n");
-	    fprintf(fd, "if .%%1==. goto loopend\n");
-	    if (*exename == 'g')
-	    {
-		fprintf(fd, "if NOT .%%1==.--nofork goto noforklongarg\n");
-		fprintf(fd, "set VIMNOFORK=1\n");
-		fprintf(fd, ":noforklongarg\n");
-		fprintf(fd, "if NOT .%%1==.-f goto noforkarg\n");
-		fprintf(fd, "set VIMNOFORK=1\n");
-		fprintf(fd, ":noforkarg\n");
-	    }
-	    fprintf(fd, "set VIMARGS=%%VIMARGS%% %%1\n");
-	    fprintf(fd, "shift\n");
-	    fprintf(fd, "goto loopstart\n");
-	    fprintf(fd, ":loopend\n");
-	    fprintf(fd, "\n");
-
-	    fprintf(fd, "if .%%OS%%==.Windows_NT goto ntaction\n");
-	    fprintf(fd, "\n");
-
-	    // For gvim.exe use "start" to avoid that the console window stays
-	    // open.
-	    if (*exename == 'g')
-	    {
-		fprintf(fd, "if .%%VIMNOFORK%%==.1 goto nofork\n");
-		fprintf(fd, "start ");
-	    }
-
-	    // Always use quotes, $VIM or $VIMRUNTIME might have a space.
-	    fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%VIMARGS%%\n",
-							     exename, vimarg);
-	    fprintf(fd, "goto eof\n");
+	    fprintf(fd, "if not exist \"%%VIM_EXE_DIR%%\\%s\" (\n", exename);
+	    fprintf(fd, "    echo \"%%VIM_EXE_DIR%%\\%s\" not found\n", exename);
+	    fprintf(fd, "    goto :eof\n");
+	    fprintf(fd, ")\n");
 	    fprintf(fd, "\n");
 
 	    if (*exename == 'g')
 	    {
-		fprintf(fd, ":nofork\n");
-		fprintf(fd, "start /w ");
-		// Always use quotes, $VIM or $VIMRUNTIME might have a space.
-		fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%VIMARGS%%\n",
-							     exename, vimarg);
-		fprintf(fd, "goto eof\n");
+		fprintf(fd, "rem check --nofork argument\n");
+		fprintf(fd, "set VIMNOFORK=\n");
+		fprintf(fd, ":loopstart\n");
+		fprintf(fd, "if .%%1==. goto loopend\n");
+		fprintf(fd, "if .%%1==.--nofork (\n");
+		fprintf(fd, "    set VIMNOFORK=1\n");
+		fprintf(fd, ") else if .%%1==.-f (\n");
+		fprintf(fd, "    set VIMNOFORK=1\n");
+		fprintf(fd, ")\n");
+		fprintf(fd, "shift\n");
+		fprintf(fd, "goto loopstart\n");
+		fprintf(fd, ":loopend\n");
 		fprintf(fd, "\n");
 	    }
 
-	    fprintf(fd, ":ntaction\n");
-	    fprintf(fd, "rem for WinNT we can use %%*\n");
-
-	    // For gvim.exe use "start /b" to avoid that the console window
-	    // stays open.
 	    if (*exename == 'g')
 	    {
-		fprintf(fd, "if .%%VIMNOFORK%%==.1 goto noforknt\n");
-		fprintf(fd, "start \"dummy\" /b ");
+		// For gvim.exe use "start /b" to avoid that the console window
+		// stays open.
+		fprintf(fd, "if .%%VIMNOFORK%%==.1 (\n");
+		fprintf(fd, "    start \"dummy\" /b /wait ");
+		// Always use quotes, $VIM or $VIMRUNTIME might have a space.
+		fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%*\n",
+							     exename, vimarg);
+		fprintf(fd, ") else (\n");
+		fprintf(fd, "    start \"dummy\" /b ");
+		// Always use quotes, $VIM or $VIMRUNTIME might have a space.
+		fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%*\n",
+							     exename, vimarg);
+		fprintf(fd, ")\n");
 	    }
-
-	    // Always use quotes, $VIM or $VIMRUNTIME might have a space.
-	    fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%*\n", exename, vimarg);
-	    fprintf(fd, "goto eof\n");
-	    fprintf(fd, "\n");
-
-	    if (*exename == 'g')
+	    else
 	    {
-		fprintf(fd, ":noforknt\n");
-		fprintf(fd, "start \"dummy\" /b /wait ");
 		// Always use quotes, $VIM or $VIMRUNTIME might have a space.
 		fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%*\n",
 							     exename, vimarg);
 	    }
 
-	    fprintf(fd, "\n:eof\n");
-	    fprintf(fd, "set VIMARGS=\n");
-	    if (*exename == 'g')
-		fprintf(fd, "set VIMNOFORK=\n");
-
 	    fclose(fd);
 	    printf("%s has been %s\n", batpath,
 				 oldname == NULL ? "created" : "overwritten");
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    437,
+/**/
     436,
 /**/
     435,