anchor.diff:  
   :#----------------------------------------------------------------------------#
   :#                                                                            #
  -:#  Function        PopArg                                                    #
  -:#                                                                            #
  -:#  Description     Pop the first argument from %ARGS% into %ARG% and %"ARG"% #
  -:#                                                                            #
  -:#  Macros          %POPARG%        Pop one argument                          #
  -:#                  %POPSARG%       Faster version, not supporting ! or ^ val.#
  -:#                                                                            #
  -:#  Input           %ARGS%	    Command line arguments                    #
  -:#                                                                            #
  -:#  Output          %ARG%           The unquoted argument                     #
  +:#  Function	    Library.Init					      #
  +:#                                                                            #
  +:#  Description     Initialize the most commonly used library components      #
  +:#                                                                            #
  +:#----------------------------------------------------------------------------#
  +
  +:Library.Init
  +:# Initialize this library modules definitions.
  +:# Each one depends on the preceding ones, so if you need one, you need all the preceding ones as well.
  +call :Call.Init			&:# Function calls and argument extraction
  +call :Macro.Init		&:# Inline macros generation
  +call :Debug.Init		&:# Debug routines
  +call :Exec.Init			&:# Conditional execution routines
  +
  +:# FOREACHLINE macro. (Changes the delimiter to none to catch the whole lines.)
  +set FOREACHLINE=for /f "delims="
  +
  +:# HOME variable. For analogy with Unix systems.
  +if not defined HOME set "HOME=%HOMEDRIVE%%HOMEPATH%"
  +
  +goto :eof
  +
  +:#----------------------------------------------------------------------------#
  +:#                                                                            #
  +:#  Module	    Call						      #
  +:#                                                                            #
  +:#  Description     Manage function calls and argument extraction             #
  +:#                                                                            #
  +:#  Functions	    PopArg          Pop the first argument from %ARGS% into   #
  +:#				     %ARG% and %"ARG"%			      #
  +:#		    PopSimpleArg    Simpler and faster version, incompatible  #
  +:#                                   with ! or ^ characters in ARG values.    #
  +:#		    Prep2ExpandVars Prepare variables to return from the      #
  +:#		 		    local scope (with expansion on or off)    #
  +:#				    to a parent scope with expansion on.      #
  +:#		    PrepArgVars     Prepare variables containing pathnames    #
  +:#				    that will be passed as arguments.	      #
  +:#                                                                            #
  +:#  Macros	    %POPARG%        Pop one argument using :PopArg            #
  +:#                  %POPSARG%       Pop one argument using :PopSimpleArg      #
  +:#                  %LCALL%         Call a routine in this library, either    #
  +:#                                   locally, or from an outside script.      #
  +:#                  %XCALL%         Call an outside script routine, from      #
  +:#                                   another instance of that outside script. #
  +:#                  %XCALL@%        Idem, but with all args stored in one var.#
  +:#                                                                            #
  +:#  Variables	    %ARG%           The unquoted argument                     #
   :#                  %"ARG"%         The actual argument, possibly quoted      #
   :#                  %ARGS%	    Remaining command line arguments          #
   :#                                                                            #
  -:#  Notes 	    Works around the defect of the shift command, which       #
  -:#                  pops the first argument from the %* list, but does not    #
  -:#                  remove it from %*.                                        #
  +:#                  %CR%            An ASCII Carrier Return character '\x0D'  #
  +:#                  %LF%            An ASCII Line Feed character '\x0A'       #
  +:#                  %BS%            An ASCII Back Space character '\x08'      #
  +:#                  %FF%            An ASCII Form Feed character '\x0C'       #
  +:#                                                                            #
  +:#  Notes 	    PopArg works around the defect of the shift command,      #
  +:#                  which pops the first argument from the %* list, but does  #
  +:#                  not remove it from %*.                                    #
   :#                  Also works around another defect with tricky characters   #
   :#                  like ! or ^ being lost when variable expansion is on.     #
   :#                                                                            #
  
positive.code: 
  :# Under NT, save the initial code page, and change it to Windows 1252 code page.
  :chcp
  if not "%OS%"=="Windows_NT" goto skipchcp
  for /f "tokens=2 delims=:" %%n in ('chcp') do set OLDCP=%%n
  chcp 1252
  :skipchcp
  
  :# Restore the initial code page
  :rscp
  if not "%OS%"=="Windows_NT" goto skiprscp
  chcp %OLDCP%
  :skiprscp
  
  :#----------------------------------------------------------------------------#
  :#                                                                            #
  
negative.code: set "EXEC.ARGS=%EXEC.ARGS: -v=% -v"
  set "EXEC.ARGS=%EXEC.ARGS:~1%"
  :# Reverse the above optimization
  set "ECHO.V=%LCALL% :Echo.Verbose"
  set "ECHOVARS.V=%LCALL% :EchoVars.Verbose"
  goto :eof
  
  :# Echo and log a string, indented at the same level as the debug output.
  