/* * Copyright 1997 Perforce Software. All rights reserved. * * This file is part of Perforce - the FAST SCM System. * * Diff code written by James Strickland, May 1997. */ /* * Diff walkers: produce output according to diff style by walking * the diff results. * * Classes defined: * * Diff - compare two files, outputting the differences * DiffFlags - parse diff's -d<flags> * * Diff::Diff - set up for diff output * Diff::DiffWithFlags - produces diff output according to flags * Diff::DiffContext - produces diff -c output to a file * Diff::DiffUnified - produces diff -u output to a file * Diff::DiffNorm - produces normal diff output to a file * Diff::DiffRcs - produces diff -n output to a file * Diff::DiffHTML - produces html markup * Diff::DiffSummary - produces a single summary line * * Diff::CloseOutput - finish write and collect error status */ class DiffAnalyze; class DiffFlags; class Error; class FileSys; class Sequence; class StrPtr; typedef signed int LineNo; class Diff { public: Diff(); ~Diff(); void SetInput( FileSys *fx, FileSys *fy, const DiffFlags &flags, Error *e ); void SetOutput( const char *fout, Error *e ); void SetOutput( FILE *fout ); void CloseOutput( Error *e ); void DiffWithFlags( const DiffFlags &flags ); void DiffContext( int c = 0 ); void DiffUnified( int c = 0 ); void DiffNorm(); void DiffRcs(); void DiffHTML(); void DiffSummary(); void DiffFast() { fastMaxD = 1; } private: void Walker( const char *flags, Sequence *s, LineNo sx, LineNo sy ); Sequence *spx; Sequence *spy; FILE *out; DiffAnalyze *diff; int closeOut; LineType lineType; const char *newLines; int fastMaxD; } ; class DiffFlags { public: DiffFlags() { type = Normal; sequence = Line; } DiffFlags( const char *flags ) { Init( flags ); } DiffFlags( const StrPtr *flags ) { Init( flags ); } void Init( const char *flags ); void Init( const StrPtr *flags ); enum Type { Normal, Context, Unified, Rcs, HTML, Summary } type; enum Sequence { Line, Word, DashL, DashB, DashW } sequence; int contextCount; } ;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#4 | 6050 | Robert Cowham |
- Use P4API 2007.2 - Added SetProg, SetVersion, SetProtocol and GetProtocol |
||
#3 | 5197 | Robert Cowham | Updated to use 2005.1 P4API | ||
#2 | 4242 | Robert Cowham |
Fixed some String leaks. Fixed problem with writing to temporary files. Updated p4API to released version of 2003.2. Start of Delphi example. |
||
#1 | 3534 | Robert Cowham | Added complete test projects for VB6, VB.NET and C#(.NET) |