home *** CD-ROM | disk | FTP | other *** search
- @echo off
- : merge - three-way file merge
- : $Id$
-
- set lbl=0
- set q=N
- set p=N
-
- : any arguments ??
- if not %1. == . goto HASARGS
- echo Usage: merge [-p] [-q] [-L label1 [-L label3]] file1 file2 file3
- goto EXIT
-
- :HASARGS
- if not %1. == -q. goto NOTQUIET
- set q=Y
- shift
-
- :NOTQUIET
- if not %1. == -p. goto NOTP
- set p=Y
- shift
-
- :NOTP
- if not %1. == -L. goto NOLABELS
- shift
- if %lbl% == 0 goto LABEL1
- if %lbl% == 1 goto LABEL3
- echo merge: too many labels given
- goto EXIT
-
- :LABEL1
- set l1=%1
- set lbl=1
- shift
- goto NOTP
-
- :LABEL3
- set l3=%1
- set lbl=3
- shift
- goto NOTP
-
- :NOLABELS
- if %l3%. == . set l3=%3
- if %l1%. == . set l1=%1
-
- diff3 -am -L %l1% -L %l3% %1 %2 %3 >merge.out
- if %q% == Y goto NOSAY
- if errorlevel 2 goto EXIT
- if errorlevel 1 echo merge: overlaps during merge
-
- :NOSAY
- if errorlevel 1 goto EXIT
- if not %p% == N type merge.out
- if %p% == N copy merge.out %1 > nul
- del merge.out
-
- :EXIT
- set lbl=
- set q=
- set p=
- set l1=
- set l3=
-