Mercurial > vim
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");