{
m_status.bBinaries = TRUE;
if (bin_flag == -1)
- m_status.bBinariesIdentical = FALSE;
+ m_status.bIdentical = FALSE;
else
- m_status.bBinariesIdentical = TRUE;
+ m_status.bIdentical = TRUE;
}
else
+ { // text files according to diffutils, so change script exists
+ m_status.bIdentical = (script == 0);
m_status.bBinaries = FALSE;
+ }
m_status.bLeftMissingNL = inf[0].missing_newline;
m_status.bRightMissingNL = inf[1].missing_newline;
BOOL bLeftMissingNL; /**< Left file is missing EOL before EOF */
BOOL bRightMissingNL; /**< Right file is missing EOL before EOF */
BOOL bBinaries; /**< Files are binaries */
- BOOL bBinariesIdentical; /**< Binary files are identical. */
+ BOOL bIdentical; /**< diffutils said files are identical */
BOOL bPatchFileFailed; /**< Creating patch file failed */
+
+ DIFFSTATUS() { memset(this, 0, sizeof(*this)); } // start out with all flags clear
};
/**
BOOL bForced /* =FALSE */)
{
DIFFOPTIONS diffOptions = {0};
- DIFFSTATUS status = {0};
DiffFileInfo fileInfo;
BOOL diffSuccess;
int nResult = RESCAN_OK;
diffSuccess = m_diffWrapper.RunFileDiff();
// Read diff-status
+ DIFFSTATUS status;
m_diffWrapper.GetDiffStatus(&status);
if (bBinary) // believe caller if we were told these are binaries
status.bBinaries = TRUE;
status.bRightMissingNL);
}
+ // set identical/diff result as recorded by diffutils
+ bIdentical = status.bIdentical;
+
// Determine errors and binary file compares
if (!diffSuccess)
nResult = RESCAN_FILE_ERR;
else if (status.bBinaries)
{
bBinary = TRUE;
- if (status.bBinariesIdentical)
- bIdentical = TRUE;
}
else
{
*/
int CPatchTool::CreatePatch()
{
- DIFFSTATUS status = {0};
+ DIFFSTATUS status;
BOOL bResult = TRUE;
BOOL bDiffSuccess;
int retVal = 0;
+2005-07-22 Perry
+ PATCH: [ 1242339 ] Fix CMergeDoc::Rescan to set bIdentical in all cases
+ Src: DiffWrapper.cpp DiffWrapper.h MergeDoc.cpp PatchTool.cpp
+
2005-07-21 Perry
PATCH: [ 1226311 ] Record notes about why compare failed
Src: DiffItem.h DiffWrapper.cpp DiffWrapper.h