From cf53750d19433fe4dfe9d911815c7c8e17cb2fb8 Mon Sep 17 00:00:00 2001 From: Perry Rapp Date: Sat, 5 Mar 2005 00:21:44 +0000 Subject: [PATCH] PATCH: [ 1112871 ] new byte_compare function to bypass diffutils Src: DiffContext.h DiffWrapper.cpp DiffWrapper.h DirDoc.cpp DirScan.cpp Merge.dsp Src new files: ByteComparator.cpp ByteComparator.h --- Src/DiffContext.h | 1 + Src/DiffWrapper.cpp | 118 ++++++++++++++++++++- Src/DiffWrapper.h | 3 +- Src/DirDoc.cpp | 1 + Src/DirScan.cpp | 7 +- Src/Languages/Brazilian/MergeBrazilian.rc | 3 +- Src/Languages/Brazilian/resource.h | 5 +- Src/Languages/Bulgarian/MergeBulgarian.rc | 3 +- Src/Languages/Bulgarian/resource.h | 5 +- Src/Languages/Catalan/MergeCatalan.rc | 3 +- Src/Languages/Catalan/resource.h | 5 +- .../ChineseSimplified/MergeChineseSimplified.rc | 3 +- Src/Languages/ChineseSimplified/resource.h | 5 +- .../ChineseTraditional/MergeChineseTraditional.rc | 3 +- Src/Languages/ChineseTraditional/resource.h | 5 +- Src/Languages/Czech/MergeCzech.rc | 3 +- Src/Languages/Czech/resource.h | 5 +- Src/Languages/Danish/MergeDanish.rc | 3 +- Src/Languages/Danish/resource.h | 5 +- Src/Languages/Dutch/MergeDutch.rc | 3 +- Src/Languages/Dutch/resource.h | 5 +- Src/Languages/French/MergeFrench.rc | 3 +- Src/Languages/French/resource.h | 5 +- Src/Languages/German/MergeGerman.rc | 3 +- Src/Languages/German/resource.h | 5 +- Src/Languages/Hungarian/MergeHungarian.rc | 3 +- Src/Languages/Hungarian/resource.h | 5 +- Src/Languages/Italian/MergeItalian.rc | 3 +- Src/Languages/Italian/resource.h | 5 +- Src/Languages/Japanese/MergeJapanese.rc | 3 +- Src/Languages/Japanese/resource.h | 5 +- Src/Languages/Korean/MergeKorean.rc | 3 +- Src/Languages/Korean/resource.h | 5 +- Src/Languages/Norwegian/MergeNorwegian.rc | 3 +- Src/Languages/Norwegian/resource.h | 5 +- Src/Languages/Polish/MergePolish.rc | 3 +- Src/Languages/Polish/resource.h | 5 +- Src/Languages/Russian/MergeRussian.rc | 3 +- Src/Languages/Russian/resource.h | 5 +- Src/Languages/Slovak/MergeSlovak.rc | 3 +- Src/Languages/Slovak/resource.h | 5 +- Src/Languages/Spanish/MergeSpanish.rc | 3 +- Src/Languages/Spanish/resource.h | 5 +- Src/Languages/Swedish/MergeSwedish.rc | 3 +- Src/Languages/Swedish/resource.h | 5 +- Src/Merge.dsp | 54 ++++++---- Src/Merge.rc | 5 +- Src/PropCompare.cpp | 4 +- Src/readme.txt | 3 + Src/resource.h | 5 +- 50 files changed, 265 insertions(+), 96 deletions(-) diff --git a/Src/DiffContext.h b/Src/DiffContext.h index 7ef108a9f..f2fd611bf 100644 --- a/Src/DiffContext.h +++ b/Src/DiffContext.h @@ -160,6 +160,7 @@ public: UINT m_msgUpdateStatus; HWND m_hDirFrame; BOOL m_bGuessEncoding; + int m_nCompMethod; struct dirdata ddLeft, ddRight; char *pNamesLeft; diff --git a/Src/DiffWrapper.cpp b/Src/DiffWrapper.cpp index 175c42ad1..4e90174a0 100644 --- a/Src/DiffWrapper.cpp +++ b/Src/DiffWrapper.cpp @@ -35,6 +35,7 @@ #include "LogFile.h" #include "codepage.h" #include +#include "ByteComparator.h" extern int recursive; extern CLogFile gLog; @@ -987,7 +988,7 @@ void DiffFileData::GuessEncoding(int side, CDiffContext * pCtxt) } /** @brief Compare two specified files */ -int DiffFileData::just_compare_files(int depth) +int DiffFileData::diffutils_compare_files(int depth) { int bin_flag = 0; @@ -1552,7 +1553,7 @@ DiffFileData::prepAndCompareTwoFiles(CDiffContext * pCtxt, const CString & filep // affects behavior (also, we don't have an icon for unknown type) // Actually compare the files - // just_compare_files is a fairly thin front-end to diffutils + // diffutils_compare_files is a fairly thin front-end to diffutils if (filepathTransformed1 != filepathUnpacked1 || filepathTransformed2 != filepathUnpacked2) { //diffdata.m_sFilepath[0] = filepathTransformed1; @@ -1561,7 +1562,17 @@ DiffFileData::prepAndCompareTwoFiles(CDiffContext * pCtxt, const CString & filep goto exitPrepAndCompare; } - code = just_compare_files(0); + + if (pCtxt->m_nCompMethod == 0) + { + // use diffutils + code = diffutils_compare_files(0); + } + else + { + // use our own byte-by-byte compare + code = byte_compare_files(); + } if ((code & DIFFCODE::CMPERR) == 0) { @@ -1616,3 +1627,104 @@ BOOL DiffFileData::Diff2Files(struct change ** diffs, int depth, return bRet; } +struct FileHandle +{ + FileHandle() : m_fp(0) { } + void Assign(FILE * fp) { Close(); m_fp = fp; } + void Close() { if (m_fp) { fclose(m_fp); m_fp = 0; } } + ~FileHandle() { Close(); } + FILE * m_fp; +}; + +// TODO: Increase WMCMPBUFF (it is set low to help shake out bugs) +#define WMCMPBUFF 64 + +/** @brief Compare two specified files, byte-by-byte */ +int DiffFileData::byte_compare_files() +{ + // Close any descriptors open for diffutils + Reset(); + + // TODO + // Right now, we assume files are in 8-bit encoding + // because transform code converted any UCS-2 files to UTF-8 + // We could compare directly in UCS-2LE here, as an optimization, in that case + char buff[2][WMCMPBUFF]; // buffered access to files + FILE * fp[2]; // for files to compare + FileHandle fhd[2]; // to ensure file handles fp get closed + int i; + + // Open both files + for (i=0; i<2; ++i) + { + fp[i] = _tfopen(m_sFilepath[i], _T("r")); + if (!fp[i]) + return DIFFCODE::CMPERR; + fhd[i].Assign(fp[i]); + } + + int bfstart[2], bfend[2]; // area of buffer currently holding data + bool eof[2]; // if we've finished file + + // initialize our buffer pointers and end of file flags + for (i=0; i<2; ++i) + { + bfstart[i] = bfend[i] = 0; + eof[i] = false; + } + + ByteComparator comparator(ignore_case_flag, ignore_space_change_flag + , ignore_all_space_flag, ignore_eol_diff, ignore_blank_lines_flag); + + while (1) + { + // load or update buffers as appropriate + for (i=0; i<2; ++i) + { + if (!eof[i] && bfstart[i]==countof(buff[i])) + { + bfstart[i]=bfend[i] = 0; + } + if (!eof[i] && bfend[i]= orig0); + ASSERT(ptr1 >= orig1); + bfstart[0] += ptr0-orig0; + bfstart[1] += ptr1-orig1; + } +} diff --git a/Src/DiffWrapper.h b/Src/DiffWrapper.h index 195c855eb..b7fa55ebc 100644 --- a/Src/DiffWrapper.h +++ b/Src/DiffWrapper.h @@ -223,7 +223,8 @@ struct DiffFileData void Reset(); void Close() { Reset(); } - int just_compare_files(int depth); + int diffutils_compare_files(int depth); + int byte_compare_files(); void GuessEncoding(int side, CDiffContext * pCtxt); int prepAndCompareTwoFiles(CDiffContext * pCtxt, const CString & filepath1, const CString & filepath2); BOOL Diff2Files(struct change ** diffs, int depth, diff --git a/Src/DirDoc.cpp b/Src/DirDoc.cpp index 15526e675..a0a641653 100644 --- a/Src/DirDoc.cpp +++ b/Src/DirDoc.cpp @@ -189,6 +189,7 @@ void CDirDoc::Rescan() m_pCtxt->m_hDirFrame = pf->GetSafeHwnd(); m_pCtxt->m_msgUpdateStatus = MSG_STAT_UPDATE; m_pCtxt->m_bGuessEncoding = mf->m_options.GetBool(OPT_CP_DETECT); + m_pCtxt->m_nCompMethod = mf->m_nCompMethod; UpdateHeaderPath(TRUE); UpdateHeaderPath(FALSE); // draw the headers as active ones diff --git a/Src/DirScan.cpp b/Src/DirScan.cpp index a7bdb7fcf..eb45e719d 100644 --- a/Src/DirScan.cpp +++ b/Src/DirScan.cpp @@ -16,7 +16,6 @@ #include "logfile.h" #include "paths.h" #include "FileTransform.h" -#include "mainfrm.h" #include "codepage.h" #ifdef _DEBUG @@ -184,7 +183,7 @@ int DirScan(const CString & subdir, CDiffContext * pCtxt, bool casesensitive, nDiffCode |= DIFFCODE::SKIPPED; StoreDiffResult(subdir, &leftFiles[i], 0, nDiffCode, pCtxt); } - else if (mf->m_nCompMethod != 1) + else if (pCtxt->m_nCompMethod != 1) { // Compare file to itself to detect encoding CString filepath = sLeftDir + backslash + leftFiles[i].name; @@ -212,7 +211,7 @@ int DirScan(const CString & subdir, CDiffContext * pCtxt, bool casesensitive, nDiffCode |= DIFFCODE::SKIPPED; StoreDiffResult(subdir, 0, &rightFiles[j], nDiffCode, pCtxt); } - else if (mf->m_nCompMethod != 1) + else if (pCtxt->m_nCompMethod != 1) { // Compare file to itself to detect encoding CString filepath = sRightDir + backslash + rightFiles[j].name; @@ -252,7 +251,7 @@ int DirScan(const CString & subdir, CDiffContext * pCtxt, bool casesensitive, gLog.Write(_T("Comparing: n0=%s, n1=%s, d0=%s, d1=%s"), leftname, rightname, (LPCTSTR)sLeftDir, (LPCTSTR)sRightDir); - if (mf->m_nCompMethod == 1) + if (pCtxt->m_nCompMethod == 1) { // Compare only by modified date if (leftFiles[i].mtime == rightFiles[j].mtime) diff --git a/Src/Languages/Brazilian/MergeBrazilian.rc b/Src/Languages/Brazilian/MergeBrazilian.rc index 27d8af0c7..72c2f4be6 100644 --- a/Src/Languages/Brazilian/MergeBrazilian.rc +++ b/Src/Languages/Brazilian/MergeBrazilian.rc @@ -1515,7 +1515,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Modified date" END diff --git a/Src/Languages/Brazilian/resource.h b/Src/Languages/Brazilian/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Brazilian/resource.h +++ b/Src/Languages/Brazilian/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Bulgarian/MergeBulgarian.rc b/Src/Languages/Bulgarian/MergeBulgarian.rc index 7f84e598c..04473db7f 100644 --- a/Src/Languages/Bulgarian/MergeBulgarian.rc +++ b/Src/Languages/Bulgarian/MergeBulgarian.rc @@ -1399,7 +1399,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Ñúäúðæàíèå" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Ïðîìåíåíà äàòà" END diff --git a/Src/Languages/Bulgarian/resource.h b/Src/Languages/Bulgarian/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Bulgarian/resource.h +++ b/Src/Languages/Bulgarian/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Catalan/MergeCatalan.rc b/Src/Languages/Catalan/MergeCatalan.rc index 36ae3e389..ed855f236 100644 --- a/Src/Languages/Catalan/MergeCatalan.rc +++ b/Src/Languages/Catalan/MergeCatalan.rc @@ -1415,7 +1415,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contingut" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Data de modificació" END diff --git a/Src/Languages/Catalan/resource.h b/Src/Languages/Catalan/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Catalan/resource.h +++ b/Src/Languages/Catalan/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/ChineseSimplified/MergeChineseSimplified.rc b/Src/Languages/ChineseSimplified/MergeChineseSimplified.rc index 405135874..36f5d90ea 100644 --- a/Src/Languages/ChineseSimplified/MergeChineseSimplified.rc +++ b/Src/Languages/ChineseSimplified/MergeChineseSimplified.rc @@ -1385,7 +1385,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Modified date" END diff --git a/Src/Languages/ChineseSimplified/resource.h b/Src/Languages/ChineseSimplified/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/ChineseSimplified/resource.h +++ b/Src/Languages/ChineseSimplified/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/ChineseTraditional/MergeChineseTraditional.rc b/Src/Languages/ChineseTraditional/MergeChineseTraditional.rc index 2c08d82f8..0c5847dfa 100644 --- a/Src/Languages/ChineseTraditional/MergeChineseTraditional.rc +++ b/Src/Languages/ChineseTraditional/MergeChineseTraditional.rc @@ -1498,7 +1498,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Modified date" END diff --git a/Src/Languages/ChineseTraditional/resource.h b/Src/Languages/ChineseTraditional/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/ChineseTraditional/resource.h +++ b/Src/Languages/ChineseTraditional/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Czech/MergeCzech.rc b/Src/Languages/Czech/MergeCzech.rc index 34641dc1c..d55bb7351 100644 --- a/Src/Languages/Czech/MergeCzech.rc +++ b/Src/Languages/Czech/MergeCzech.rc @@ -1512,7 +1512,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Modified date" END diff --git a/Src/Languages/Czech/resource.h b/Src/Languages/Czech/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Czech/resource.h +++ b/Src/Languages/Czech/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Danish/MergeDanish.rc b/Src/Languages/Danish/MergeDanish.rc index 4a2473fae..586276d9d 100644 --- a/Src/Languages/Danish/MergeDanish.rc +++ b/Src/Languages/Danish/MergeDanish.rc @@ -1397,7 +1397,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Indhold" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Ændringsdato" END diff --git a/Src/Languages/Danish/resource.h b/Src/Languages/Danish/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Danish/resource.h +++ b/Src/Languages/Danish/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Dutch/MergeDutch.rc b/Src/Languages/Dutch/MergeDutch.rc index 64d1b64f9..a162ef114 100644 --- a/Src/Languages/Dutch/MergeDutch.rc +++ b/Src/Languages/Dutch/MergeDutch.rc @@ -1514,7 +1514,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Modified date" END diff --git a/Src/Languages/Dutch/resource.h b/Src/Languages/Dutch/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Dutch/resource.h +++ b/Src/Languages/Dutch/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/French/MergeFrench.rc b/Src/Languages/French/MergeFrench.rc index 63a131d39..038508d6b 100644 --- a/Src/Languages/French/MergeFrench.rc +++ b/Src/Languages/French/MergeFrench.rc @@ -1400,7 +1400,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contenu" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Date de modification" END diff --git a/Src/Languages/French/resource.h b/Src/Languages/French/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/French/resource.h +++ b/Src/Languages/French/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/German/MergeGerman.rc b/Src/Languages/German/MergeGerman.rc index da6a5c40f..440320c9c 100644 --- a/Src/Languages/German/MergeGerman.rc +++ b/Src/Languages/German/MergeGerman.rc @@ -1517,7 +1517,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Inhalt" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Änderungsdatum" END diff --git a/Src/Languages/German/resource.h b/Src/Languages/German/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/German/resource.h +++ b/Src/Languages/German/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Hungarian/MergeHungarian.rc b/Src/Languages/Hungarian/MergeHungarian.rc index 7d46214d5..f1c37e682 100644 --- a/Src/Languages/Hungarian/MergeHungarian.rc +++ b/Src/Languages/Hungarian/MergeHungarian.rc @@ -1398,7 +1398,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Tartalom" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Módosítási dátum" END diff --git a/Src/Languages/Hungarian/resource.h b/Src/Languages/Hungarian/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Hungarian/resource.h +++ b/Src/Languages/Hungarian/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Italian/MergeItalian.rc b/Src/Languages/Italian/MergeItalian.rc index 5aca62c6f..afb587200 100644 --- a/Src/Languages/Italian/MergeItalian.rc +++ b/Src/Languages/Italian/MergeItalian.rc @@ -1513,7 +1513,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contenuti" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Data ultima modifica" END diff --git a/Src/Languages/Italian/resource.h b/Src/Languages/Italian/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Italian/resource.h +++ b/Src/Languages/Italian/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Japanese/MergeJapanese.rc b/Src/Languages/Japanese/MergeJapanese.rc index e4523006a..89a780834 100644 --- a/Src/Languages/Japanese/MergeJapanese.rc +++ b/Src/Languages/Japanese/MergeJapanese.rc @@ -1402,7 +1402,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "“à—e" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "XV“úŽž" END diff --git a/Src/Languages/Japanese/resource.h b/Src/Languages/Japanese/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Japanese/resource.h +++ b/Src/Languages/Japanese/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Korean/MergeKorean.rc b/Src/Languages/Korean/MergeKorean.rc index 9b2b79885..954a49dad 100644 --- a/Src/Languages/Korean/MergeKorean.rc +++ b/Src/Languages/Korean/MergeKorean.rc @@ -1395,7 +1395,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "³»¿ë" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "º¯°æµÈ ³¯Â¥" END diff --git a/Src/Languages/Korean/resource.h b/Src/Languages/Korean/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Korean/resource.h +++ b/Src/Languages/Korean/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Norwegian/MergeNorwegian.rc b/Src/Languages/Norwegian/MergeNorwegian.rc index 3b1dce2ba..a73ec4f22 100644 --- a/Src/Languages/Norwegian/MergeNorwegian.rc +++ b/Src/Languages/Norwegian/MergeNorwegian.rc @@ -1511,7 +1511,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Innhold" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Endringsdato" END diff --git a/Src/Languages/Norwegian/resource.h b/Src/Languages/Norwegian/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Norwegian/resource.h +++ b/Src/Languages/Norwegian/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Polish/MergePolish.rc b/Src/Languages/Polish/MergePolish.rc index 5a6f15f8a..fe35330a5 100644 --- a/Src/Languages/Polish/MergePolish.rc +++ b/Src/Languages/Polish/MergePolish.rc @@ -1512,7 +1512,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Modified date" END diff --git a/Src/Languages/Polish/resource.h b/Src/Languages/Polish/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Polish/resource.h +++ b/Src/Languages/Polish/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Russian/MergeRussian.rc b/Src/Languages/Russian/MergeRussian.rc index 59269f762..9e328ca92 100644 --- a/Src/Languages/Russian/MergeRussian.rc +++ b/Src/Languages/Russian/MergeRussian.rc @@ -1409,7 +1409,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Ïî ñîäåðæèìîìó" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Ïî ðàçëè÷èÿì â äàòå" END diff --git a/Src/Languages/Russian/resource.h b/Src/Languages/Russian/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Russian/resource.h +++ b/Src/Languages/Russian/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Slovak/MergeSlovak.rc b/Src/Languages/Slovak/MergeSlovak.rc index 050476969..31c9e49d5 100644 --- a/Src/Languages/Slovak/MergeSlovak.rc +++ b/Src/Languages/Slovak/MergeSlovak.rc @@ -1512,7 +1512,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Modified date" END diff --git a/Src/Languages/Slovak/resource.h b/Src/Languages/Slovak/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Slovak/resource.h +++ b/Src/Languages/Slovak/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Spanish/MergeSpanish.rc b/Src/Languages/Spanish/MergeSpanish.rc index 6af429156..05426c164 100644 --- a/Src/Languages/Spanish/MergeSpanish.rc +++ b/Src/Languages/Spanish/MergeSpanish.rc @@ -1512,7 +1512,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Modified date" END diff --git a/Src/Languages/Spanish/resource.h b/Src/Languages/Spanish/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Spanish/resource.h +++ b/Src/Languages/Spanish/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Languages/Swedish/MergeSwedish.rc b/Src/Languages/Swedish/MergeSwedish.rc index 491ac57c9..9f98ea2b1 100644 --- a/Src/Languages/Swedish/MergeSwedish.rc +++ b/Src/Languages/Swedish/MergeSwedish.rc @@ -1511,7 +1511,8 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Innehåll" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" IDS_COMPMETHOD_MODDATE "Datum för förändring" END diff --git a/Src/Languages/Swedish/resource.h b/Src/Languages/Swedish/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/Languages/Swedish/resource.h +++ b/Src/Languages/Swedish/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 diff --git a/Src/Merge.dsp b/Src/Merge.dsp index fb4b1658b..a2c26bd47 100644 --- a/Src/Merge.dsp +++ b/Src/Merge.dsp @@ -113,7 +113,7 @@ LINK32=link.exe # ADD LINK32 version.lib shlwapi.lib imm32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"msvcrtd.lib" /out:"..\Build\MergeRelease/WinMerge.exe" /verbose:lib # SUBTRACT LINK32 /pdb:none # Begin Special Build Tool -TargetPath=\WinMerge\WinMerge_CVS\WinMerge\Build\MergeRelease\WinMerge.exe +TargetPath=\dev\sf\wm\cvsver\WinMerge\Build\MergeRelease\WinMerge.exe SOURCE="$(InputPath)" PostBuild_Cmds=StampVer -vstampver.inf -i4 -j4 -o2 $(TargetPath) # End Special Build Tool @@ -147,7 +147,7 @@ LINK32=link.exe # ADD LINK32 version.lib shlwapi.lib imm32.lib /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /nodefaultlib:"msvcrtd.lib" /out:"..\Build\MergeUnicodeRelease\WinMergeU.exe" /verbose:lib # SUBTRACT LINK32 /pdb:none # Begin Special Build Tool -TargetPath=\WinMerge\WinMerge_CVS\WinMerge\Build\MergeUnicodeRelease\WinMergeU.exe +TargetPath=\dev\sf\wm\cvsver\WinMerge\Build\MergeUnicodeRelease\WinMergeU.exe SOURCE="$(InputPath)" PostBuild_Cmds=StampVer -vstampver.inf -i4 -j4 -o2 $(TargetPath) # End Special Build Tool @@ -173,10 +173,19 @@ SOURCE=.\BCMenu.cpp # End Source File # Begin Source File +SOURCE=.\ByteComparator.cpp +# End Source File +# Begin Source File + SOURCE=.\CCPrompt.cpp # End Source File # Begin Source File +SOURCE=.\charsets.c +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + SOURCE=.\ChildFrm.cpp !IF "$(CFG)" == "Merge - Win32 Debug" @@ -444,6 +453,11 @@ SOURCE=.\MainFrm.cpp # End Source File # Begin Source File +SOURCE=.\markdown.cpp +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + SOURCE=.\Merge.cpp !IF "$(CFG)" == "Merge - Win32 Debug" @@ -551,16 +565,6 @@ SOURCE=.\paths.cpp # End Source File # Begin Source File -SOURCE=.\charsets.c -# SUBTRACT CPP /YX /Yc /Yu -# End Source File -# Begin Source File - -SOURCE=.\markdown.cpp -# SUBTRACT CPP /YX /Yc /Yu -# End Source File -# Begin Source File - SOURCE=.\PluginManager.cpp # End Source File # Begin Source File @@ -807,10 +811,18 @@ SOURCE=.\BCMenu.h # End Source File # Begin Source File +SOURCE=.\ByteComparator.h +# End Source File +# Begin Source File + SOURCE=.\CCPrompt.h # End Source File # Begin Source File +SOURCE=.\charsets.h +# End Source File +# Begin Source File + SOURCE=.\ChildFrm.h # End Source File # Begin Source File @@ -987,6 +999,10 @@ SOURCE=.\MainFrm.h # End Source File # Begin Source File +SOURCE=.\markdown.h +# End Source File +# Begin Source File + SOURCE=.\Merge.h # End Source File # Begin Source File @@ -1047,14 +1063,6 @@ SOURCE=.\paths.h # End Source File # Begin Source File -SOURCE=.\charsets.h -# End Source File -# Begin Source File - -SOURCE=.\markdown.h -# End Source File -# Begin Source File - SOURCE=.\PluginManager.h # End Source File # Begin Source File @@ -2014,10 +2022,10 @@ SOURCE=.\stampver.inf # End Source File # End Target # End Project -# Section Merge : {00312E6C-0754-0055-90BD-550078075500} -# 1:19:IDR_POPUP_ABOUT_DLG:104 -# End Section # Section Merge : {6F747475-446E-6C62-436C-6B0000003100} # 1:10:IDB_SPLASH:103 # 2:21:SplashScreenInsertKey:4.0 # End Section +# Section Merge : {00312E6C-0754-0055-90BD-550078075500} +# 1:19:IDR_POPUP_ABOUT_DLG:104 +# End Section diff --git a/Src/Merge.rc b/Src/Merge.rc index dfcf97b0d..f3fdbfb2e 100644 --- a/Src/Merge.rc +++ b/Src/Merge.rc @@ -1407,8 +1407,9 @@ END // COMPARE OPTIONS STRINGTABLE BEGIN - IDS_COMPMETHOD_CONTENTS "Contents" - IDS_COMPMETHOD_MODDATE "Modified date" + IDS_COMPMETHOD_FULL_CONTENTS "Full Contents" + IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents" + IDS_COMPMETHOD_MODDATE "Modified Date" END // FILTER OPTIONS diff --git a/Src/PropCompare.cpp b/Src/PropCompare.cpp index d8aad97ab..42e7b3ea5 100644 --- a/Src/PropCompare.cpp +++ b/Src/PropCompare.cpp @@ -70,7 +70,9 @@ BOOL CPropCompare::OnInitDialog() CComboBox * combo = (CComboBox*) GetDlgItem(IDC_COMPAREMETHODCOMBO); CString item; - VERIFY(item.LoadString(IDS_COMPMETHOD_CONTENTS)); + VERIFY(item.LoadString(IDS_COMPMETHOD_FULL_CONTENTS)); + combo->AddString(item); + VERIFY(item.LoadString(IDS_COMPMETHOD_QUICK_CONTENTS)); combo->AddString(item); VERIFY(item.LoadString(IDS_COMPMETHOD_MODDATE)); combo->AddString(item); diff --git a/Src/readme.txt b/Src/readme.txt index e9916a79a..a932f91fa 100644 --- a/Src/readme.txt +++ b/Src/readme.txt @@ -3,6 +3,9 @@ Merge all the easy new Japanese string translations (Omit major changes to IDD_PROPPAGE_EDITOR & IDD_MERGE7ZMISMATCH. Languages: Japanese/MergeJapanese.rc + PATCH: [ 1112871 ] new byte_compare function to bypass diffutils + Src: DiffContext.h DiffWrapper.cpp DiffWrapper.h DirDoc.cpp DirScan.cpp Merge.dsp + Src new files: ByteComparator.cpp ByteComparator.h 2005-03-04 Kimmo PATCH: [ 1155319 ] Select font for dir compare view diff --git a/Src/resource.h b/Src/resource.h index c0eb7f686..152d686a4 100644 --- a/Src/resource.h +++ b/Src/resource.h @@ -291,8 +291,9 @@ #define IDS_PROJECTFILES 16419 #define IDS_PROJECTFILES_EXT 16420 -#define IDS_COMPMETHOD_CONTENTS 16432 -#define IDS_COMPMETHOD_MODDATE 16433 +#define IDS_COMPMETHOD_FULL_CONTENTS 16432 +#define IDS_COMPMETHOD_QUICK_CONTENTS 16433 +#define IDS_COMPMETHOD_MODDATE 16434 #define IDS_FILTERFILE_NAMETITLE 16448 #define IDS_FILTERFILE_PATHTITLE 16449 -- 2.11.0