diff --git a/z.cmd b/z.cmd index b917f5f..f632aea 100644 --- a/z.cmd +++ b/z.cmd @@ -106,13 +106,23 @@ if /i "%RunMode%"=="-n" ( pushd !NewPath! pushd !NewPath! endlocal - popd + goto popdir ) ) ) else ( call "%LuaExe%" "%LuaScript%" "%RunMode%" %MatchType% %StrictSub% %InterMode% %StripMode% %* ) +goto end + +:popdir +rem -- Exploits variable expansion and the pushd stack to set the current +rem -- directory without leaking a pushd. +popd +setlocal +set NewPath=%CD% +endlocal & popd & cd /d "%NewPath%" + :end echo.