From 94f86465e642eb2d4985499c9ec0324f965afaa5 Mon Sep 17 00:00:00 2001 From: earthlng Date: Wed, 25 Apr 2018 21:28:09 +0200 Subject: [PATCH] updater for Windows v4.5 (#407) support commenting-out active user-prefs with the merge function --- updater.bat | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/updater.bat b/updater.bat index baa96cc5..21c83a21 100644 --- a/updater.bat +++ b/updater.bat @@ -3,7 +3,7 @@ TITLE ghacks user.js updater REM ## ghacks-user.js updater for Windows REM ## author: @claustromaniac -REM ## version: 4.4 +REM ## version: 4.5 REM ## instructions: https://github.com/ghacksuserjs/ghacks-user.js/wiki/3.3-Updater-Scripts SET _myname=%~n0 @@ -75,7 +75,7 @@ ECHO: ECHO: ######################################## ECHO: #### user.js Updater for Windows #### ECHO: #### by claustromaniac #### -ECHO: #### v4.4 #### +ECHO: #### v4.5 #### ECHO: ######################################## ECHO: SET /A "_line=0" @@ -191,8 +191,9 @@ GOTO :EOF REM ############ Merge function ############ :merge SETLOCAL DisableDelayedExpansion +FOR /F tokens^=2^,^*^ delims^=^'^" %%G IN ('FINDSTR /R /C:"^user_pref[ ]*\([ ]*[\"'].*[\"'][ ]*,.*\)[ ]*;" "%~1"') DO (SET "[%%G]=%%H") +FOR /F tokens^=2^,^*^ delims^=^' %%G IN ('FINDSTR /R /C:"^//// --- comment-out --- '[^'][^']*'.*" "%~1"') DO (SET "__unset__%%G=1") ( - FOR /F tokens^=2^,^*^ delims^=^'^" %%G IN ('FINDSTR /B /R /C:"user_pref.*\)[ ]*;" "%~1"') DO (IF NOT "%%H"=="" (SET "%%G=%%H")) FOR /F "tokens=1,* delims=:" %%I IN ('FINDSTR /N "^" "%~1"') DO ( SET "_temp=%%J" SETLOCAL EnableDelayedExpansion @@ -205,11 +206,15 @@ SETLOCAL DisableDelayedExpansion ENDLOCAL FOR /F tokens^=2^ delims^=^'^" %%K IN ("%%J") DO ( IF NOT "_user.js.parrot"=="%%K" ( - IF DEFINED %%K ( - SETLOCAL EnableDelayedExpansion - FOR /F "delims=" %%L IN ("!%%K!") DO ( - ENDLOCAL & ECHO:user_pref("%%K"%%L - SET "%%K=" + IF DEFINED __unset__%%K ( + ECHO://%%J + ) ELSE ( + IF DEFINED [%%K] ( + SETLOCAL EnableDelayedExpansion + FOR /F "delims=" %%L IN ("![%%K]!") DO ( + ENDLOCAL & ECHO:user_pref("%%K"%%L + SET "[%%K]=" + ) ) ) ) ELSE (ECHO:%%J)