From f6eb7aa4f8d1a2b730e83e38edd99c377abf5a80 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Thu, 6 Nov 2025 18:26:41 +0330 Subject: [PATCH] Improve path enhancement handling in lib_path.cmd Refactor path enhancement logic for clarity and robustness. --- vendor/lib/lib_path.cmd | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/vendor/lib/lib_path.cmd b/vendor/lib/lib_path.cmd index 4415388..6fc7609 100644 --- a/vendor/lib/lib_path.cmd +++ b/vendor/lib/lib_path.cmd @@ -91,13 +91,13 @@ exit /b if /i "!position!" == "append" ( if "!found!" == "0" ( - echo "!PATH!"|!WINDIR!\System32\findstr >nul /I /R /C:";!find_query!\"$" + echo "!PATH!"|!WINDIR!\System32\findstr >nul /I /R /C:";!find_query!$" call :set_found ) %print_debug% :enhance_path "Env Var END PATH !find_query! - found=!found!" ) else ( if "!found!" == "0" ( - echo "!PATH!"|!WINDIR!\System32\findstr >nul /I /R /C:"^\"!find_query!;" + echo "!PATH!"|!WINDIR!\System32\findstr >nul /I /R /C:"^!find_query!;" call :set_found ) %print_debug% :enhance_path "Env Var BEGIN PATH !find_query! - found=!found!" @@ -190,13 +190,28 @@ exit /b exit /b 1 ) + rem Parse arguments robustly: + rem Accept either public form: "[dir_path]" [max_depth] [append] + rem or internal recursive form: "[dir_path]" [depth] [max_depth] [append] set "depth=%~2" set "max_depth=%~3" + set "position=" - if "%~4" neq "" if /i "%~4" == "append" ( - set "position=%~4" - ) else ( - set "position=" + if /i "%~4" == "append" set "position=append" + if /i "%~3" == "append" ( + set "position=append" + set "max_depth=" + ) + + if not defined depth set "depth=0" + if not defined max_depth ( + if defined depth ( + rem If only one numeric argument provided, treat it as max_depth + set "max_depth=%depth%" + set "depth=0" + ) else ( + set "max_depth=1" + ) ) dir "%add_path%" 2>NUL | findstr -i -e "%find_pathext%" >NUL @@ -232,8 +247,6 @@ exit /b call :loop_depth ) - set "PATH=%PATH%" - exit /b :set_depth