# HG changeset patch # User Bram Moolenaar # Date 1584634504 -3600 # Node ID 831a3f3be6f4330efd5ab2846ee6627fe3daa5b4 # Parent 49f383f54ee0021cf6322075ec355a8fb6c3ee3e patch 8.2.0412: MS-Windows: cannot use vimtutor from the start menu Commit: https://github.com/vim/vim/commit/37f471df6ee422beb4d08ee4ccda35f8279e3bb7 Author: Bram Moolenaar Date: Thu Mar 19 17:13:40 2020 +0100 patch 8.2.0412: MS-Windows: cannot use vimtutor from the start menu Problem: MS-Windows: cannot use vimtutor from the start menu. Solution: Better check for writable directory. Use the right path for the executable. (Wu Yongwei, closes #5774, closes #5756) diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 412, +/**/ 411, /**/ 410, diff --git a/vimtutor.bat b/vimtutor.bat --- a/vimtutor.bat +++ b/vimtutor.bat @@ -10,7 +10,20 @@ :: When that also fails, it uses the English version. :: Use Vim to copy the tutor, it knows the value of $VIMRUNTIME -FOR %%d in (. "%TMP%" "%TEMP%") DO IF EXIST %%d\nul SET TUTORCOPY=%%d\$tutor$ +FOR %%d in (. %TMP% %TEMP%) DO ( + call :test_dir_writable %0 %%d + IF NOT ERRORLEVEL 1 GOTO dir_ok +) + +echo No working directory is found +GOTO end + +:test_dir_writable +SET TUTORCOPY=%2\$tutor$ +COPY %1 %TUTORCOPY% >nul 2>nul +GOTO end + +:dir_ok SET xx=%1 @@ -25,23 +38,11 @@ GOTO use_vim :: installation. :: The script tutor.vim tells Vim which file to copy. -:: For Windows NT "start" works a bit differently. -IF .%OS%==.Windows_NT GOTO ntaction - -start /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim" +start "dummy" /b /w "%~dp0gvim.exe" -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim" IF ERRORLEVEL 1 GOTO use_vim :: Start gvim without any .vimrc, set 'nocompatible' -start /w gvim -u NONE -c "set nocp" %TUTORCOPY% - -GOTO end - -:ntaction -start "dummy" /b /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim" -IF ERRORLEVEL 1 GOTO use_vim - -:: Start gvim without any .vimrc, set 'nocompatible' -start "dummy" /b /w gvim -u NONE -c "set nocp" %TUTORCOPY% +start "dummy" /b /w "%~dp0gvim.exe" -u NONE -c "set nocp" %TUTORCOPY% GOTO end