- /*
- * 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 DiffUnifiedDeleteFile( FileSys *f, Error *e );
- 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;
- const DiffFlags *flags;
- 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, WClass } sequence;
- enum Grid { Optimal, Guarded, TwoWay } grid;
- int contextCount;
- } ;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 7893 | Johan Nilsson | OFFLINE CHANGELIST 10 - SUBMITTED ON 2011/03/23 11:18:27 Upgrade project files to VS2010... and switching to msbuild for the entire project. Retargeted everything to .NET4 Client Profile for the time being, due to VS2010 C++ limitations (can't target anything other than 4.0 without complicating the setup too much). Shouldn't be too hard to retarget later if push comes to shove. Added VS2010 P4API stuff directly inside this project also to make things easier to get up and running for the moment. Removed old static P4API libraries. ____________________________________________________________ OFFLINE CHANGELIST 9 - SUBMITTED ON 2011/03/22 07:35:31 Converted to VS2010 « |
14 years ago |