Revision: 7222
http://winmerge.svn.sourceforge.net/winmerge/?rev=7222&view=rev
Author: jtuc
Date: 2010-07-04 18:46:04 +0000 (Sun, 04 Jul 2010)
Log Message:
-----------
Make DIFFRANGE::op and respective function parameters type-safe
Modified Paths:
--------------
trunk/Src/DiffList.h
trunk/Src/DiffWrapper.cpp
trunk/Src/DiffWrapper.h
Modified: trunk/Src/DiffList.h
===================================================================
--- trunk/Src/DiffList.h 2010-07-04 11:02:24 UTC (rev 7221)
+++ trunk/Src/DiffList.h 2010-07-04 18:46:04 UTC (rev 7222)
@@ -29,6 +29,19 @@
#include <vector>
/**
+ * @brief Operations in diffranges.
+ * DIFFRANGE structs op-member can have these values
+ */
+enum OP_TYPE
+{
+ OP_NONE = 0,
+ OP_LEFTONLY,
+ OP_DIFF,
+ OP_RIGHTONLY,
+ OP_TRIVIAL
+};
+
+/**
* @brief One difference defined by linenumbers.
*
* This struct defines one set of different lines "diff".
@@ -51,7 +64,7 @@
UINT dend1; /**< Synchronised (ghost lines added) last diff line in file2 */
int blank0; /**< Number of blank lines in file1 */
int blank1; /**< Number of blank lines in file2 */
- BYTE op; /**< Operation done with this diff */
+ OP_TYPE op; /**< Operation done with this diff */
DIFFRANGE() { memset(this, 0, sizeof(*this)); }
void swap_sides();
};
@@ -95,19 +108,6 @@
};
/**
- * @brief Operations in diffranges.
- * DIFFRANGE structs op-member can have these values
- */
-enum
-{
- OP_NONE = 0,
- OP_LEFTONLY,
- OP_DIFF,
- OP_RIGHTONLY,
- OP_TRIVIAL
-};
-
-/**
* @brief Class for storing differences in files (difflist).
*
* This class stores diffs in list and also offers diff-related
Modified: trunk/Src/DiffWrapper.cpp
===================================================================
--- trunk/Src/DiffWrapper.cpp 2010-07-04 11:02:24 UTC (rev 7221)
+++ trunk/Src/DiffWrapper.cpp 2010-07-04 18:46:04 UTC (rev 7222)
@@ -68,12 +68,12 @@
const char * EndOfComment, const char * InLineComment,
const FilterCommentsSet& filtercommentsset);
static bool PostFilter(int StartPos, int EndPos, int Direction,
- int QtyLinesInBlock, int &Op, int FileNo,
+ int QtyLinesInBlock, OP_TYPE &Op, int FileNo,
const FilterCommentsSet& filtercommentsset);
-static void PostFilterSingleLine(const char* LineStr, int &Op,
+static void PostFilterSingleLine(const char* LineStr, OP_TYPE &Op,
const FilterCommentsSet& filtercommentsset, bool PartOfMultiLineCheck);
static void PostFilter(int LineNumberLeft, int QtyLinesLeft, int LineNumberRight,
- int QtyLinesRight, int &Op, const FilterCommentsManager &filtercommentsmanager,
+ int QtyLinesRight, OP_TYPE &Op, const FilterCommentsManager &filtercommentsmanager,
const TCHAR *FileNameExt);
@@ -363,7 +363,7 @@
In forward direction, returns false if none trivial data is found within QtyLinesInBlock
*/
static bool PostFilter(int StartPos, int EndPos, int Direction,
- int QtyLinesInBlock, int &Op, int FileNo,
+ int QtyLinesInBlock, OP_TYPE &Op, int FileNo,
const FilterCommentsSet& filtercommentsset)
{
const char* EolIndicators = "\r\n"; //List of characters used as EOL
@@ -485,7 +485,7 @@
@param [in] filtercommentsset - Comment marker set used to indicate comment blocks.
@param [in] PartOfMultiLineCheck- Set to true, if this block is a multiple line block
*/
-static void PostFilterSingleLine(const char* LineStr, int &Op,
+static void PostFilterSingleLine(const char* LineStr, OP_TYPE &Op,
const FilterCommentsSet& filtercommentsset, bool PartOfMultiLineCheck)
{
if (Op == OP_TRIVIAL)
@@ -528,7 +528,7 @@
@param [in] FileNameExt - The file name extension. Needs to be lower case string ("cpp", "java", "c")
*/
static void PostFilter(int LineNumberLeft, int QtyLinesLeft, int LineNumberRight,
- int QtyLinesRight, int &Op, const FilterCommentsManager &filtercommentsmanager,
+ int QtyLinesRight, OP_TYPE &Op, const FilterCommentsManager &filtercommentsmanager,
const TCHAR *FileNameExt)
{
if (Op == OP_TRIVIAL)
@@ -555,7 +555,7 @@
bool AllLinesAreComments = true;
for(int i = LineNumberLeft;i < LineNumberLeft + QtyLinesLeft;++i)
{
- int TestOp = 0;
+ OP_TYPE TestOp = OP_NONE;
PostFilterSingleLine(files[0].linbuf[i], TestOp, filtercommentsset, QtyLinesLeft > 1);
if (TestOp != OP_TRIVIAL)
{
@@ -580,7 +580,7 @@
bool AllLinesAreComments = true;
for(int i = LineNumberRight;i < LineNumberRight + QtyLinesRight;++i)
{
- int TestOp = 0;
+ OP_TYPE TestOp = OP_NONE;
PostFilterSingleLine(files[1].linbuf[i], TestOp, filtercommentsset, QtyLinesRight > 1);
if (TestOp != OP_TRIVIAL)
{
@@ -595,11 +595,11 @@
}
else
{
- int LeftOp = 0;
+ OP_TYPE LeftOp = OP_NONE;
if (PostFilter(LineNumberLeft, files[0].valid_lines, 1, QtyLinesLeft, LeftOp, 0, filtercommentsset))
PostFilter(LineNumberLeft, -1, -1, QtyLinesLeft, LeftOp, 0, filtercommentsset);
- int RightOp = 0;
+ OP_TYPE RightOp = OP_NONE;
if (PostFilter(LineNumberRight, files[1].valid_lines, 1, QtyLinesRight, RightOp, 1, filtercommentsset))
PostFilter(LineNumberRight, -1, -1, QtyLinesRight, RightOp, 1, filtercommentsset);
@@ -859,7 +859,7 @@
/**
* @brief Add diff to external diff-list
*/
-void CDiffWrapper::AddDiffRange(UINT begin0, UINT end0, UINT begin1, UINT end1, BYTE op)
+void CDiffWrapper::AddDiffRange(UINT begin0, UINT end0, UINT begin1, UINT end1, OP_TYPE op)
{
TRY {
DIFFRANGE dr;
@@ -931,7 +931,7 @@
dr.op = OP_TRIVIAL;
ASSERT(dr.begin0 == dr.begin1);
- AddDiffRange(dr.begin0, dr.end0, dr.begin1, dr.end1, dr.op);
+ AddDiffRange(dr.begin0, dr.end0, dr.begin1, dr.end1, dr.op);
}
}
@@ -1144,7 +1144,7 @@
/* Determine range of line numbers involved in each file. */
int first0=0, last0=0, first1=0, last1=0, deletes=0, inserts=0;
analyze_hunk (thisob, &first0, &last0, &first1, &last1, &deletes, &inserts);
- int op=0;
+ OP_TYPE op = OP_NONE;
if (deletes || inserts || thisob->trivial)
{
if (deletes && inserts)
@@ -1210,7 +1210,7 @@
op = OP_TRIVIAL;
}
- AddDiffRange(trans_a0-1, trans_b0-1, trans_a1-1, trans_b1-1, (BYTE)op);
+ AddDiffRange(trans_a0-1, trans_b0-1, trans_a1-1, trans_b1-1, op);
TRACE(_T("left=%d,%d right=%d,%d op=%d\n"),
trans_a0-1, trans_b0-1, trans_a1-1, trans_b1-1, op);
}
Modified: trunk/Src/DiffWrapper.h
===================================================================
--- trunk/Src/DiffWrapper.h 2010-07-04 11:02:24 UTC (rev 7221)
+++ trunk/Src/DiffWrapper.h 2010-07-04 18:46:04 UTC (rev 7222)
@@ -41,6 +41,7 @@
struct FilterCommentsSet;
class MovedLines;
class FilterList;
+enum OP_TYPE;
/** @enum COMPARE_TYPE
* @brief Different foldercompare methods.
@@ -163,7 +164,7 @@
void SetCodepage(int codepage) { m_codepage = codepage; }
BOOL RunFileDiff();
void GetDiffStatus(DIFFSTATUS *status);
- void AddDiffRange(UINT begin0, UINT end0, UINT begin1, UINT end1, BYTE op);
+ void AddDiffRange(UINT begin0, UINT end0, UINT begin1, UINT end1, OP_TYPE op);
void FixLastDiffRange(int leftBufferLines, int rightBufferLines, BOOL left, bool bIgnoreBlankLines);
MovedLines * GetMovedLines() { return m_pMovedLines; }
void SetCompareFiles(const String &OriginalFile1, const String &OriginalFile2);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|