mirror of
				https://github.com/cmderdev/cmder.git
				synced 2025-10-31 17:32:27 +08:00 
			
		
		
		
	fix path with ! in dir
This commit is contained in:
		
							
								
								
									
										71
									
								
								vendor/init.bat
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								vendor/init.bat
									
									
									
									
										vendored
									
									
								
							| @@ -165,7 +165,6 @@ if not defined TERM set TERM=cygwin | |||||||
| :: * test if a git is in path and if yes, use that | :: * test if a git is in path and if yes, use that | ||||||
| :: * last, use our vendored git | :: * last, use our vendored git | ||||||
| :: also check that we have a recent enough version of git by examining the version string | :: also check that we have a recent enough version of git by examining the version string | ||||||
| setlocal enabledelayedexpansion |  | ||||||
| if defined GIT_INSTALL_ROOT ( | if defined GIT_INSTALL_ROOT ( | ||||||
|     if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT |     if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT | ||||||
| ) else if "%fast_init%" == "1" ( | ) else if "%fast_init%" == "1" ( | ||||||
| @@ -182,6 +181,7 @@ if defined GIT_INSTALL_ROOT ( | |||||||
| %lib_git% validate_version VENDORED %GIT_VERSION_VENDORED% | %lib_git% validate_version VENDORED %GIT_VERSION_VENDORED% | ||||||
|  |  | ||||||
| :: check if git is in path... | :: check if git is in path... | ||||||
|  | setlocal enabledelayedexpansion | ||||||
| for /F "delims=" %%F in ('where git.exe 2^>nul') do ( | for /F "delims=" %%F in ('where git.exe 2^>nul') do ( | ||||||
|     :: get the absolute path to the user provided git binary |     :: get the absolute path to the user provided git binary | ||||||
|     pushd %%~dpF |     pushd %%~dpF | ||||||
| @@ -219,21 +219,19 @@ for /F "delims=" %%F in ('where git.exe 2^>nul') do ( | |||||||
|             set test_dir= |             set test_dir= | ||||||
|         ) |         ) | ||||||
|     ) else ( |     ) else ( | ||||||
|  |  | ||||||
|         :: if the user provided git executable is not found |         :: if the user provided git executable is not found | ||||||
|         if !errorlevel! equ -255 ( |         if !errorlevel! equ -255 ( | ||||||
|             call :verbose_output No git at "!git_executable!" found. |             call :verbose_output No git at "!git_executable!" found. | ||||||
|             set test_dir= |             set test_dir= | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     ) |     ) | ||||||
| ) | ) | ||||||
|  | endlocal & set "GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" & set "GIT_VERSION_VENDORED=%GIT_VERSION_VENDORED%" | ||||||
|  |  | ||||||
| :: our last hope: our own git... | :: our last hope: our own git... | ||||||
| :VENDORED_GIT | :VENDORED_GIT | ||||||
| if exist "%CMDER_ROOT%\vendor\git-for-windows" ( | if exist "%CMDER_ROOT%\vendor\git-for-windows" ( | ||||||
|     set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows" |     set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows" | ||||||
|     %lib_console% debug_output "Using vendored Git '!GIT_VERSION_VENDORED!' from '!GIT_INSTALL_ROOT!..." |  | ||||||
|     goto :CONFIGURE_GIT |     goto :CONFIGURE_GIT | ||||||
| ) else ( | ) else ( | ||||||
|     goto :NO_GIT |     goto :NO_GIT | ||||||
| @@ -249,43 +247,42 @@ goto :CONFIGURE_GIT | |||||||
|  |  | ||||||
| :CONFIGURE_GIT | :CONFIGURE_GIT | ||||||
| :: Add git to the path | :: Add git to the path | ||||||
| if defined GIT_INSTALL_ROOT ( | rem add the unix commands at the end to not shadow windows commands like more | ||||||
|     rem add the unix commands at the end to not shadow windows commands like more | if %nix_tools% equ 1 ( | ||||||
|     if %nix_tools% equ 1 ( |  | ||||||
|     %lib_console% debug_output init.bat "Preferring Windows commands" |     %lib_console% debug_output init.bat "Preferring Windows commands" | ||||||
|     set "path_position=append" |     set "path_position=append" | ||||||
|     ) else ( | ) else ( | ||||||
|     %lib_console% debug_output init.bat "Preferring *nix commands" |     %lib_console% debug_output init.bat "Preferring *nix commands" | ||||||
|     set "path_position=" |     set "path_position=" | ||||||
|     ) | ) | ||||||
|  |  | ||||||
|     if exist "!GIT_INSTALL_ROOT!\cmd\git.exe" %lib_path% enhance_path "!GIT_INSTALL_ROOT!\cmd" !path_position! | if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" %lib_path% enhance_path "%GIT_INSTALL_ROOT%\cmd" %path_position% | ||||||
|     if exist "!GIT_INSTALL_ROOT!\mingw32" ( | if exist "%GIT_INSTALL_ROOT%\mingw32" ( | ||||||
|         %lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw32\bin" !path_position! |     %lib_path% enhance_path "%GIT_INSTALL_ROOT%\mingw32\bin" %path_position% | ||||||
|     ) else if exist "!GIT_INSTALL_ROOT!\mingw64" ( | ) else if exist "%GIT_INSTALL_ROOT%\mingw64" ( | ||||||
|         %lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw64\bin" !path_position! |     %lib_path% enhance_path "%GIT_INSTALL_ROOT%\mingw64\bin" %path_position% | ||||||
|     ) | ) | ||||||
|  |  | ||||||
|     if %nix_tools% geq 1 ( | if %nix_tools% geq 1 ( | ||||||
|         %lib_path% enhance_path "!GIT_INSTALL_ROOT!\usr\bin" !path_position! |     %lib_path% enhance_path "%GIT_INSTALL_ROOT%\usr\bin" %path_position% | ||||||
|     ) | ) | ||||||
|  |  | ||||||
|     :: define SVN_SSH so we can use git svn with ssh svn repositories | :: define SVN_SSH so we can use git svn with ssh svn repositories | ||||||
|     if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe" | if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe" | ||||||
|  |  | ||||||
|     if not defined LANG ( | :: Find locale.exe: From the git install root, from the path, using the git installed env, or fallback using the env from the path. | ||||||
|         :: Find locale.exe: From the git install root, from the path, using the git installed env, or fallback using the env from the path. | if not defined git_locale if exist "%GIT_INSTALL_ROOT%\usr\bin\locale.exe" set git_locale="%GIT_INSTALL_ROOT%\usr\bin\locale.exe" | ||||||
|         if not defined git_locale if exist "!GIT_INSTALL_ROOT!\usr\bin\locale.exe" set git_locale="!GIT_INSTALL_ROOT!\usr\bin\locale.exe" | if not defined git_locale for /F "delims=" %%F in ('where locale.exe 2^>nul') do (if not defined git_locale  set git_locale="%%F") | ||||||
|         if not defined git_locale for /F "delims=" %%F in ('where locale.exe 2^>nul') do (if not defined git_locale  set git_locale="%%F") | if not defined git_locale if exist "%GIT_INSTALL_ROOT%\usr\bin\env.exe" set git_locale="%GIT_INSTALL_ROOT%\usr\bin\env.exe" /usr/bin/locale | ||||||
|         if not defined git_locale if exist "!GIT_INSTALL_ROOT!\usr\bin\env.exe" set git_locale="!GIT_INSTALL_ROOT!\usr\bin\env.exe" /usr/bin/locale | if not defined git_locale set git_locale=env /usr/bin/locale | ||||||
|         if not defined git_locale set git_locale=env /usr/bin/locale |  | ||||||
|         for /F "delims=" %%F in ('!git_locale! -uU 2') do ( | %lib_console% debug_output init.bat "Env Var - git_locale=%git_locale%" | ||||||
|  | if not defined LANG ( | ||||||
|  |     for /F "delims=" %%F in ('%git_locale% -uU 2') do ( | ||||||
|         set "LANG=%%F" |         set "LANG=%%F" | ||||||
|     ) |     ) | ||||||
|     ) |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| endlocal & set "PATH=%PATH%" & set "LANG=%LANG%" & set "SVN_SSH=%SVN_SSH%" & set "GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" |  | ||||||
| %lib_console% debug_output init.bat "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" | %lib_console% debug_output init.bat "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" | ||||||
| %lib_console% debug_output init.bat "Found Git in: '%GIT_INSTALL_ROOT%'" | %lib_console% debug_output init.bat "Found Git in: '%GIT_INSTALL_ROOT%'" | ||||||
| goto :PATH_ENHANCE | goto :PATH_ENHANCE | ||||||
| @@ -331,22 +328,12 @@ if "%CMDER_ALIASES%" == "1" ( | |||||||
|   ) |   ) | ||||||
|  |  | ||||||
|   REM Make sure we have a self-extracting user_aliases.cmd file |   REM Make sure we have a self-extracting user_aliases.cmd file | ||||||
|   setlocal enabledelayedexpansion |   REM setlocal enabledelayedexpansion | ||||||
|   if not exist "%user_aliases%" ( |   if not exist "%user_aliases%" ( | ||||||
|       echo Creating initial user_aliases store in "%user_aliases%"... |       echo Creating initial user_aliases store in "%user_aliases%"... | ||||||
|       copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%" |       copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%" | ||||||
|   ) else ( |   ) else ( | ||||||
|       type "%user_aliases%" | %WINDIR%\System32\findstr /i ";= Add aliases below here" >nul |     %lib_base% update_legacy_aliases | ||||||
|       if "!errorlevel!" == "1" ( |  | ||||||
|           echo Creating initial user_aliases store in "%user_aliases%"... |  | ||||||
|           if defined CMDER_USER_CONFIG ( |  | ||||||
|               copy "%user_aliases%" "%user_aliases%.old_format" |  | ||||||
|               copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%" |  | ||||||
|           ) else ( |  | ||||||
|               copy "%user_aliases%" "%user_aliases%.old_format" |  | ||||||
|               copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%" |  | ||||||
|           ) |  | ||||||
|       ) |  | ||||||
|   ) |   ) | ||||||
|  |  | ||||||
|   :: Update old 'user_aliases' to new self executing 'user_aliases.cmd' |   :: Update old 'user_aliases' to new self executing 'user_aliases.cmd' | ||||||
| @@ -359,7 +346,7 @@ if "%CMDER_ALIASES%" == "1" ( | |||||||
|     type "%user_aliases%.old_format" >> "%user_aliases%" |     type "%user_aliases%.old_format" >> "%user_aliases%" | ||||||
|     del "%user_aliases%.old_format" |     del "%user_aliases%.old_format" | ||||||
|   ) |   ) | ||||||
|   endlocal |   REM endlocal | ||||||
| ) | ) | ||||||
|  |  | ||||||
| :: Add aliases to the environment | :: Add aliases to the environment | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								vendor/lib/lib_base.cmd
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/lib/lib_base.cmd
									
									
									
									
										vendored
									
									
								
							| @@ -65,17 +65,26 @@ exit /b | |||||||
|     echo %comspec% | %WINDIR%\System32\find /i "\tcc.exe" > nul && set "CMDER_SHELL=tcc" |     echo %comspec% | %WINDIR%\System32\find /i "\tcc.exe" > nul && set "CMDER_SHELL=tcc" | ||||||
|     echo %comspec% | %WINDIR%\System32\find /i "\tccle" > nul && set "CMDER_SHELL=tccle" |     echo %comspec% | %WINDIR%\System32\find /i "\tccle" > nul && set "CMDER_SHELL=tccle" | ||||||
|  |  | ||||||
|     if not defined CMDER_CLINK ( |  | ||||||
|     set CMDER_CLINK=1 |     set CMDER_CLINK=1 | ||||||
|     if "%CMDER_SHELL%" equ "tcc" set CMDER_CLINK=0 |     if "%CMDER_SHELL%" equ "tcc" set CMDER_CLINK=0 | ||||||
|     if "%CMDER_SHELL%" equ "tccle" set CMDER_CLINK=0 |     if "%CMDER_SHELL%" equ "tccle" set CMDER_CLINK=0 | ||||||
|     ) |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     if not defined CMDER_ALIASES ( |  | ||||||
|     set CMDER_ALIASES=1 |     set CMDER_ALIASES=1 | ||||||
|     if "%CMDER_SHELL%" equ "tcc" set CMDER_ALIASES=0 |     if "%CMDER_SHELL%" equ "tcc" set CMDER_ALIASES=0 | ||||||
|     if "%CMDER_SHELL%" equ "tccle" set CMDER_ALIASES=0 |     if "%CMDER_SHELL%" equ "tccle" set CMDER_ALIASES=0 | ||||||
|     ) |  | ||||||
|  |  | ||||||
|     exit /b |     exit /b | ||||||
|  |  | ||||||
|  | :update_legacy_aliases | ||||||
|  |     type "%user_aliases%" | %WINDIR%\System32\findstr /i ";= Add aliases below here" >nul | ||||||
|  |     if "%errorlevel%" == "1" ( | ||||||
|  |         echo Creating initial user_aliases store in "%user_aliases%"... | ||||||
|  |         if defined CMDER_USER_CONFIG ( | ||||||
|  |             copy "%user_aliases%" "%user_aliases%.old_format" | ||||||
|  |             copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%" | ||||||
|  |         ) else ( | ||||||
|  |             copy "%user_aliases%" "%user_aliases%.old_format" | ||||||
|  |             copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%" | ||||||
|  |         ) | ||||||
|  |     ) | ||||||
|  |     exit /b | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								vendor/lib/lib_git.cmd
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/lib/lib_git.cmd
									
									
									
									
										vendored
									
									
								
							| @@ -34,6 +34,8 @@ exit /b | |||||||
| :::  GIT_VERSION_[GIT SCOPE] <out> Env variable containing Git semantic version string | :::  GIT_VERSION_[GIT SCOPE] <out> Env variable containing Git semantic version string | ||||||
| :::------------------------------------------------------------------------------- | :::------------------------------------------------------------------------------- | ||||||
|  |  | ||||||
|  | echo CMDER_HERE1.2 | ||||||
|  |  | ||||||
|     setlocal enabledelayedexpansion |     setlocal enabledelayedexpansion | ||||||
|     :: clear the variables |     :: clear the variables | ||||||
|     set GIT_VERSION_%~1= |     set GIT_VERSION_%~1= | ||||||
| @@ -88,11 +90,8 @@ exit /b | |||||||
| :::  [SCOPE]_BUILD <out> Scoped Build version. | :::  [SCOPE]_BUILD <out> Scoped Build version. | ||||||
| :::------------------------------------------------------------------------------- | :::------------------------------------------------------------------------------- | ||||||
|  |  | ||||||
|  |     setlocal enabledelayedexpansion | ||||||
|     :: process a `x.x.x.xxxx.x` formatted string |     :: process a `x.x.x.xxxx.x` formatted string | ||||||
|     set "%~1_MAJOR=" |  | ||||||
|     set "%~1_MINOR=" |  | ||||||
|     set "%~1_PATCH=" |  | ||||||
|     set "%~1_BUILD=" |  | ||||||
|     %lib_console% debug_output :parse_version "ARGV[1]=%~1, ARGV[2]=%~2" |     %lib_console% debug_output :parse_version "ARGV[1]=%~1, ARGV[2]=%~2" | ||||||
|     for /F "tokens=1-3* delims=.,-" %%A in ("%2") do ( |     for /F "tokens=1-3* delims=.,-" %%A in ("%2") do ( | ||||||
|         set "%~1_MAJOR=%%A" |         set "%~1_MAJOR=%%A" | ||||||
| @@ -101,6 +100,7 @@ exit /b | |||||||
|         set "%~1_BUILD=%%D" |         set "%~1_BUILD=%%D" | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|  |     endlocal & set "%~1_MAJOR=!%~1_MAJOR!" & set "%~1_MINOR=!%~1_MINOR!" & set "%~1_PATCH=!%~1_PATCH!" & set "%~1_BUILD=!%~1_BUILD!" | ||||||
|     exit /b |     exit /b | ||||||
|  |  | ||||||
| :validate_version | :validate_version | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								vendor/lib/lib_path.cmd
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/lib/lib_path.cmd
									
									
									
									
										vendored
									
									
								
							| @@ -38,7 +38,6 @@ exit /b | |||||||
| :::  path       <out> Sets the path env variable if required. | :::  path       <out> Sets the path env variable if required. | ||||||
| :::------------------------------------------------------------------------------- | :::------------------------------------------------------------------------------- | ||||||
|  |  | ||||||
|     setlocal enabledelayedexpansion |  | ||||||
|     if "%~1" neq "" ( |     if "%~1" neq "" ( | ||||||
|         set "add_path=%~1" |         set "add_path=%~1" | ||||||
|     ) else ( |     ) else ( | ||||||
| @@ -58,9 +57,15 @@ exit /b | |||||||
|       ) else ( |       ) else ( | ||||||
|         set "PATH=%add_path%;%PATH%" |         set "PATH=%add_path%;%PATH%" | ||||||
|       ) |       ) | ||||||
|       goto :end_enhance_path |  | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|  |     set "PATH=%PATH:;;=;%" | ||||||
|  |     if "%fast_init%" == "1" ( | ||||||
|  |       exit /b | ||||||
|  |     ) | ||||||
|  |  | ||||||
|  |     setlocal enabledelayedexpansion | ||||||
|  |  | ||||||
|     set found=0 |     set found=0 | ||||||
|     set "find_query=%add_path%" |     set "find_query=%add_path%" | ||||||
|     set "find_query=%find_query:\=\\%" |     set "find_query=%find_query:\=\\%" | ||||||
| @@ -125,7 +130,6 @@ exit /b | |||||||
| :::. | :::. | ||||||
| :::  path       <out> Sets the path env variable if required. | :::  path       <out> Sets the path env variable if required. | ||||||
| :::------------------------------------------------------------------------------- | :::------------------------------------------------------------------------------- | ||||||
|     setlocal enabledelayedexpansion |  | ||||||
|     if "%~1" neq "" ( |     if "%~1" neq "" ( | ||||||
|         set "add_path=%~1" |         set "add_path=%~1" | ||||||
|     ) else ( |     ) else ( | ||||||
| @@ -147,9 +151,14 @@ exit /b | |||||||
|  |  | ||||||
|     if "%fast_init%" == "1" ( |     if "%fast_init%" == "1" ( | ||||||
|       call :enhance_path "%add_path%" %position% |       call :enhance_path "%add_path%" %position% | ||||||
|       goto :end_enhance_path_recursive |  | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|  |     set "PATH=%PATH:;;=;%" | ||||||
|  |     if "%fast_init%" == "1" ( | ||||||
|  |       exit /b | ||||||
|  |     ) | ||||||
|  |  | ||||||
|  |     setlocal enabledelayedexpansion | ||||||
|      if "%depth%" == "" set depth=0 |      if "%depth%" == "" set depth=0 | ||||||
|  |  | ||||||
|     %lib_console% debug_output  :enhance_path_recursive "Env Var - add_path=%add_path%" |     %lib_console% debug_output  :enhance_path_recursive "Env Var - add_path=%add_path%" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user