anchor.diff:  goto :eof
   
   :Echo.Verbose
  +:Echo.V
   %IF_VERBOSE% goto :Echo
   goto :Echo.Log
   
   :Echo.Debug
  -%IF_DEBUG% goto :Echo
  +:Echo.D
  +%IF_DEBUG% %>DEBUGOUT% echo.%INDENT%%*
   goto :Echo.Log
   
   :Echo.Eval2DebugOut %1=Name of string, with !variables! that need to be evaluated first
  
positive.code: :#                  %EXEC.ARGS%	Arguments to recursively pass to subcommands  #
  :#                              with the same execution options conventions.  #
  :#                                                                            #
  :#  Notes           This framework can't be used from inside () blocks.       #
  :#                  This is because these blocks are executed separately      #
  :#                  in a child shell.                                         #
  :#                                                                            #
  :#  History                                                                   #
  :#   2010-05-19 JFL Created this routine.                                     #
  
negative.code:       ) %\n%
        call set "DEBUG.MSG=%'!%DEBUG.MSG:%%=%%DEBUG.excl%%%'!%" %# Change all percent to ! #%  %\n%
        if defined ^^%>%DEBUGOUT ( %# If we use a debugging stream distinct from stdout #% %\n%
  	%LCALL% :Echo.Eval2DebugOut DEBUG.MSG %# Use a helper routine, as delayed redirection does not work #% %\n%
        ) else ( %# Output directly here, which is faster #% %\n%
  	for /f "delims=" %%c in ("%'!%INDENT%'!%%'!%DEBUG.MSG%'!%") do echo %%c%# Use a for loop to do a double !variable! expansion #%%\n%
        ) %\n%
        if defined LOGFILE ( %# If we have to send a copy to a log file #% %\n%
  	%LCALL% :Echo.Eval2LogFile DEBUG.MSG %# Use a helper routine, as delayed redirection does not work #% %\n%
        ) %\n%
      ) %\n%
      for %%r in (%!%DEBUG.EXITCODE%!%) do ( %# Carry the return values through the endlocal barriers #% %\n%
  