OSDN Git Service

PATCH: [ 1112871 ] new byte_compare function to bypass diffutils
authorPerry Rapp <elsapo@users.sourceforge.net>
Sat, 5 Mar 2005 00:21:44 +0000 (00:21 +0000)
committerPerry Rapp <elsapo@users.sourceforge.net>
Sat, 5 Mar 2005 00:21:44 +0000 (00:21 +0000)
  Src: DiffContext.h DiffWrapper.cpp DiffWrapper.h DirDoc.cpp DirScan.cpp Merge.dsp
  Src new files: ByteComparator.cpp ByteComparator.h

50 files changed:
Src/DiffContext.h
Src/DiffWrapper.cpp
Src/DiffWrapper.h
Src/DirDoc.cpp
Src/DirScan.cpp
Src/Languages/Brazilian/MergeBrazilian.rc
Src/Languages/Brazilian/resource.h
Src/Languages/Bulgarian/MergeBulgarian.rc
Src/Languages/Bulgarian/resource.h
Src/Languages/Catalan/MergeCatalan.rc
Src/Languages/Catalan/resource.h
Src/Languages/ChineseSimplified/MergeChineseSimplified.rc
Src/Languages/ChineseSimplified/resource.h
Src/Languages/ChineseTraditional/MergeChineseTraditional.rc
Src/Languages/ChineseTraditional/resource.h
Src/Languages/Czech/MergeCzech.rc
Src/Languages/Czech/resource.h
Src/Languages/Danish/MergeDanish.rc
Src/Languages/Danish/resource.h
Src/Languages/Dutch/MergeDutch.rc
Src/Languages/Dutch/resource.h
Src/Languages/French/MergeFrench.rc
Src/Languages/French/resource.h
Src/Languages/German/MergeGerman.rc
Src/Languages/German/resource.h
Src/Languages/Hungarian/MergeHungarian.rc
Src/Languages/Hungarian/resource.h
Src/Languages/Italian/MergeItalian.rc
Src/Languages/Italian/resource.h
Src/Languages/Japanese/MergeJapanese.rc
Src/Languages/Japanese/resource.h
Src/Languages/Korean/MergeKorean.rc
Src/Languages/Korean/resource.h
Src/Languages/Norwegian/MergeNorwegian.rc
Src/Languages/Norwegian/resource.h
Src/Languages/Polish/MergePolish.rc
Src/Languages/Polish/resource.h
Src/Languages/Russian/MergeRussian.rc
Src/Languages/Russian/resource.h
Src/Languages/Slovak/MergeSlovak.rc
Src/Languages/Slovak/resource.h
Src/Languages/Spanish/MergeSpanish.rc
Src/Languages/Spanish/resource.h
Src/Languages/Swedish/MergeSwedish.rc
Src/Languages/Swedish/resource.h
Src/Merge.dsp
Src/Merge.rc
Src/PropCompare.cpp
Src/readme.txt
Src/resource.h

index 7ef108a..f2fd611 100644 (file)
@@ -160,6 +160,7 @@ public:
        UINT m_msgUpdateStatus;
        HWND m_hDirFrame;
        BOOL m_bGuessEncoding;
+       int m_nCompMethod;
 
        struct dirdata ddLeft, ddRight;
        char *pNamesLeft;
index 175c42a..4e90174 100644 (file)
@@ -35,6 +35,7 @@
 #include "LogFile.h"
 #include "codepage.h"
 #include <shlwapi.h>
+#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]<countof(buff[i])-1)
+                       {
+                               int rtn = fread(buff[i], 1, countof(buff[i]), fp[i]);
+                               if (ferror(fp[i]))
+                                       return DIFFCODE::CMPERR;
+                               if (feof(fp[i]))
+                                       eof[i] = true;
+                               bfend[i] += rtn;
+                       }
+               }
+
+               // where to start comparing right now
+               LPCSTR ptr0 = &buff[0][bfstart[0]];
+               LPCSTR ptr1 = &buff[1][bfstart[1]];
+
+               // remember where we started
+               LPCSTR orig0 = ptr0, orig1 = ptr1;
+
+               // how far can we go right now?
+               LPCSTR end0 = &buff[0][bfend[0]];
+               LPCSTR end1 = &buff[1][bfend[1]];
+
+               // are these two buffers the same?
+               if (!comparator.CompareBuffers(ptr0, ptr1, end0, end1, eof[0], eof[1]))
+                       return DIFFCODE::DIFF;
+
+
+               // did we finish both files?
+               if (eof[0] && eof[1])
+               {
+                       if (ptr0 == end0 && ptr1 == end1)
+                               return DIFFCODE::SAME;
+                       else
+                               return DIFFCODE::DIFF;
+               }
+
+               // move our current pointers over what we just compared
+               ASSERT(ptr0 >= orig0);
+               ASSERT(ptr1 >= orig1);
+               bfstart[0] += ptr0-orig0;
+               bfstart[1] += ptr1-orig1;
+       }
+}
index 195c855..b7fa55e 100644 (file)
@@ -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,
index 15526e6..a0a6416 100644 (file)
@@ -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
index a7bdb7f..eb45e71 100644 (file)
@@ -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)
index 27d8af0..72c2f4b 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 7f84e59..04473db 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 36ae3e3..ed855f2 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 4051358..36f5d90 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 2c08d82..0c5847d 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 34641dc..d55bb73 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 4a2473f..586276d 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 64d1b64..a162ef1 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 63a131d..038508d 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index da6a5c4..440320c 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 7d46214..f1c37e6 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 5aca62c..afb5872 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index e452300..89a7808 100644 (file)
@@ -1402,7 +1402,8 @@ END
 // COMPARE OPTIONS
 STRINGTABLE
 BEGIN
-    IDS_COMPMETHOD_CONTENTS "\93à\97e"
+    IDS_COMPMETHOD_FULL_CONTENTS "Full Contents"
+    IDS_COMPMETHOD_QUICK_CONTENTS "Quick Contents"
     IDS_COMPMETHOD_MODDATE  "\8dX\90V\93ú\8e\9e"
 END
 
index c0eb7f6..152d686 100644 (file)
 #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
index 9b2b798..954a49d 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 3b1dce2..a73ec4f 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 5a6f15f..fe35330 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 59269f7..9e328ca 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 0504769..31c9e49 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 6af4291..05426c1 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index 491ac57..9f98ea2 100644 (file)
@@ -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
 
index c0eb7f6..152d686 100644 (file)
 #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
index fb4b165..a2c26bd 100644 (file)
@@ -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
index dfcf97b..f3fdbfb 100644 (file)
@@ -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
index d8aad97..42e7b3e 100644 (file)
@@ -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);
index e9916a7..a932f91 100644 (file)
@@ -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
index c0eb7f6..152d686 100644 (file)
 #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