Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
@echo off setlocal
if "%1" == "" goto usage
rem -- detect whether 4Dos/NT or CMD is the shell if %@eval[2+2] == 4 goto altshell
rem -- iterate thru specified files, with CMD
for /f "tokens=1,2 delims=-" %%i in ("x%1") do (set back=%%j&set beg=%%i) if not "%beg%" == "x" goto usage if "%back%" == "" goto usage set /a bogus=back if not "%bogus%" == "%back%" goto usage
shift if not "%2" == "" goto usage
for /f "tokens=1,2 delims=#" %%i in ('sd files %1') do call :doit %1 %%j goto :eof
:doit @echo off rem -- subroutine: do appropriate diffs for /f "tokens=1,2" %%i in ("%2") do set head=%%i set /a beg=head - back :loopbeg set /a rev=beg set /a beg=beg + 1 sd diff2 %1#%rev% %1#%beg% if not %beg% == %2 goto loopbeg goto :eof
:altshell rem -- iterate thru specified files, with 4Dos/NT
iff %@left[1,%1] == - then set back=%@eval[0-(0%1)] if %back == 0 goto usage shift else goto usage endiff
if not "%2" == "" goto usage
set SDCOMPTMPFILE=%temp%\~sdcomp.tmp sd files %1 > %SDCOMPTMPFILE%
for /f "tokens=1,2 delims=#" %%i in ( %SDCOMPTMPFILE% ) do gosub perfile
*del /q %SDCOMPTMPFILE% goto :eof
:perfile @echo off rem -- subroutine: do appropriate diffs set head=%@word[0,%j] set beg=%@eval[%head - %back + 1]
do rev = %beg to %head sd diff2 %1#%@dec[%rev] %1#%rev enddo return
:usage echo SDCOMP - emulate subset of scomp for use with Source Depot. echo Syntax: SDCOMP -n filespec echo Works backward, getting the last n diffs to filespec.
|