OSDN Git Service

Sync with upstream
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 24 Jun 2018 10:12:27 +0000 (19:12 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 24 Jun 2018 10:12:27 +0000 (19:12 +0900)
--HG--
branch : jp

282 files changed:
BuildAll.vs2015.cmd
BuildAll.vs2017.cmd
BuildBin.vs2015.cmd
BuildBin.vs2017.cmd
Externals/crystaledit/editlib/LineInfo.cpp
Externals/crystaledit/editlib/LineInfo.h
Externals/crystaledit/editlib/SyntaxColors.h
Externals/crystaledit/editlib/UndoRecord.cpp
Externals/crystaledit/editlib/UndoRecord.h
Externals/crystaledit/editlib/ViewableWhitespace.h
Externals/crystaledit/editlib/batch.cpp
Externals/crystaledit/editlib/ccrystaleditview.cpp
Externals/crystaledit/editlib/ccrystaleditview.h
Externals/crystaledit/editlib/ccrystaleditview.inl [deleted file]
Externals/crystaledit/editlib/ccrystaltextbuffer.cpp
Externals/crystaledit/editlib/ccrystaltextbuffer.h
Externals/crystaledit/editlib/ccrystaltextbuffer.inl [deleted file]
Externals/crystaledit/editlib/ccrystaltextmarkers.cpp
Externals/crystaledit/editlib/ccrystaltextview.cpp
Externals/crystaledit/editlib/ccrystaltextview.h
Externals/crystaledit/editlib/ccrystaltextview.inl [deleted file]
Externals/crystaledit/editlib/ccrystaltextview2.cpp
Externals/crystaledit/editlib/ceditreplacedlg.h
Externals/crystaledit/editlib/cfindtextdlg.h
Externals/crystaledit/editlib/chcondlg.cpp
Externals/crystaledit/editlib/chcondlg.h
Externals/crystaledit/editlib/cregexp.h
Externals/crystaledit/editlib/cregexp_poco.cpp
Externals/crystaledit/editlib/crystaleditviewex.cpp
Externals/crystaledit/editlib/crystaleditviewex.h
Externals/crystaledit/editlib/crystalparser.h
Externals/crystaledit/editlib/crystaltextblock.h
Externals/crystaledit/editlib/cs2cs.cpp
Externals/crystaledit/editlib/cs2cs.h
Externals/crystaledit/editlib/editreg.h
Externals/crystaledit/editlib/edtlib.h
Externals/crystaledit/editlib/filesup.cpp
Externals/crystaledit/editlib/filesup.h
Externals/crystaledit/editlib/filesup.inl [deleted file]
Externals/crystaledit/editlib/fpattern.h
Externals/crystaledit/editlib/gotodlg.h
Externals/crystaledit/editlib/memcombo.cpp
Externals/crystaledit/editlib/memcombo.h
Externals/crystaledit/editlib/memcombo.inl [deleted file]
Externals/crystaledit/editlib/registry.cpp
Externals/crystaledit/editlib/registry.h
Externals/crystaledit/editlib/splash.h
Externals/crystaledit/editlib/statbar.cpp
Externals/crystaledit/editlib/statbar.h
Externals/crystaledit/editlib/string_util.h
Externals/crystaledit/editlib/wispelld.h
Externals/hg_clone.cmd
Externals/poco/Foundation/Foundation.vs2015.vcxproj
Externals/poco/Foundation/Foundation.vs2015.vcxproj.filters
Externals/poco/Foundation/Foundation.vs2017.vcxproj
Externals/poco/Foundation/Foundation.vs2017.vcxproj.filters
Externals/poco/Foundation/include/Poco/DynamicFactory.h
Externals/poco/Foundation/include/Poco/NumberFormatter.h
Externals/poco/Foundation/include/Poco/Platform_WIN32.h
Externals/poco/Foundation/include/Poco/ScopedLock.h
Externals/poco/Foundation/include/Poco/SharedMemory_WIN32.h
Externals/poco/Foundation/include/Poco/UnicodeConverter.h
Externals/poco/Foundation/src/Environment.cpp
Externals/poco/Foundation/src/EventLogChannel.cpp
Externals/poco/Foundation/src/FPEnvironment_WIN32.cpp
Externals/poco/Foundation/src/HashStatistic.cpp
Externals/poco/Foundation/src/LocalDateTime.cpp
Externals/poco/Foundation/src/Logger.cpp
Externals/poco/Foundation/src/NumberFormatter.cpp
Externals/poco/Foundation/src/NumberParser.cpp
Externals/poco/Foundation/src/Path.cpp
Externals/poco/Foundation/src/PurgeStrategy.cpp
Externals/poco/Foundation/src/SharedMemory_WIN32.cpp
Externals/poco/Foundation/src/StreamConverter.cpp
Externals/poco/Foundation/src/ThreadPool.cpp
Externals/poco/Foundation/src/Timezone_WIN32.cpp
Externals/poco/Foundation/src/UUID.cpp
Externals/poco/Foundation/src/UnicodeConverter.cpp
Externals/poco/Foundation/src/pcre_compile.c
Externals/poco/Foundation/src/pcre_config.h
Externals/poco/Util/Util.vs2015.vcxproj
Externals/poco/Util/Util.vs2017.vcxproj
Externals/poco/Util/src/AbstractConfiguration.cpp
Externals/poco/Util/src/Application.cpp
Externals/poco/Util/src/HelpFormatter.cpp
Externals/poco/Util/src/SystemConfiguration.cpp
Externals/poco/XML/XML.vs2015.vcxproj
Externals/poco/XML/XML.vs2015.vcxproj.filters
Externals/poco/XML/XML.vs2017.vcxproj
Externals/poco/XML/XML.vs2017.vcxproj.filters
Externals/poco/XML/src/xmlparse.cpp
Externals/versions.txt
Src/7zCommon.cpp
Src/7zCommon.h
Src/ChildFrm.cpp
Src/ChildFrm.h
Src/Common/BCMenu.cpp
Src/Common/BCMenu.h
Src/Common/CMoveConstraint.cpp
Src/Common/ClipBoard.cpp
Src/Common/ExConverter.cpp
Src/Common/MDITabBar.cpp
Src/Common/MyCom.h
Src/Common/OptionsMgr.cpp
Src/Common/PidlContainer.cpp
Src/Common/PreferencesDlg.cpp
Src/Common/PreferencesDlg.h
Src/Common/PropertyPageHost.cpp
Src/Common/PropertyPageHost.h
Src/Common/ShellContextMenu.h
Src/Common/SplitterWndEx.cpp
Src/Common/SuperComboBox.h
Src/Common/UniFile.cpp
Src/Common/lwdisp.c
Src/Common/lwdisp.h
Src/Common/multiformatText.cpp
Src/Common/scbarcf.h
Src/Common/sizecbar.cpp
Src/Common/unicoder.cpp
Src/CompareEngines/BinaryCompare.cpp
Src/CompareEngines/ByteCompare.cpp
Src/CompareOptions.h
Src/ConfigLog.cpp
Src/DDXHelper.h
Src/Diff3.h
Src/DiffFileData.cpp
Src/DiffList.cpp
Src/DiffList.h
Src/DiffTextBuffer.cpp
Src/DiffTextBuffer.h
Src/DiffWrapper.cpp
Src/DirActions.cpp
Src/DirCmpReportDlg.cpp
Src/DirColsDlg.h
Src/DirCompProgressBar.h
Src/DirDoc.h
Src/DirFilterDlg.h
Src/DirFrame.cpp
Src/DirFrame.h
Src/DirScan.cpp
Src/DirView.cpp
Src/DirView.h
Src/DirViewColItems.cpp
Src/DropHandler.cpp
Src/EditorFilepathBar.cpp
Src/EditorFilepathBar.h
Src/EncodingErrorBar.h
Src/Environment.cpp
Src/FileFilterMgr.cpp
Src/FileFiltersDlg.cpp
Src/FileFiltersDlg.h
Src/FileOrFolderSelect.cpp
Src/FileTransform.cpp
Src/FilepathEdit.h
Src/GhostTextBuffer.cpp
Src/GhostTextBuffer.h
Src/GhostTextView.h
Src/HexMergeDoc.h
Src/HexMergeFrm.cpp
Src/HexMergeFrm.h
Src/HexMergeView.cpp
Src/HexMergeView.h
Src/ImgMergeFrm.cpp
Src/ImgMergeFrm.h
Src/JumpList.cpp
Src/LineFiltersDlg.h
Src/LineFiltersList.cpp
Src/LoadSaveCodepageDlg.h
Src/LocationView.h
Src/MainFrm.cpp
Src/MainFrm.h
Src/Merge.cpp
Src/Merge.h
Src/Merge.vcxproj [deleted file]
Src/Merge.vcxproj.filters [deleted file]
Src/Merge.vs2015.vcxproj
Src/Merge.vs2015.vcxproj.filters
Src/Merge7zFormatShellImpl.cpp
Src/MergeCmdLineInfo.h
Src/MergeDoc.cpp
Src/MergeDoc.h
Src/MergeEditView.cpp
Src/MergeEditView.h
Src/OpenView.cpp
Src/OptionsInit.h
Src/PatchDlg.h
Src/PatchHTML.cpp
Src/Plugins.cpp
Src/PluginsListDlg.cpp
Src/PropCodepage.h
Src/PropColors.h
Src/PropCompare.h
Src/PropCompareBinary.h
Src/PropCompareFolder.h
Src/PropCompareImage.h
Src/PropEditor.h
Src/PropGeneral.h
Src/PropMarkerColors.h
Src/PropRegistry.h
Src/PropTextColors.h
Src/PropVss.h
Src/SelectUnpackerDlg.cpp
Src/SelectUnpackerDlg.h
Src/SharedFilterDlg.h
Src/SourceControl.cpp
Src/StdAfx.h
Src/TempFile.cpp
Src/TestFilterDlg.h
Src/TrDialogs.h
Src/UniMarkdownFile.cpp
Src/VSSHelper.cpp
Src/VSSHelper.h
Src/codepage_detect.cpp
Src/codepage_detect.h
Src/diffutils/config.h
Src/diffutils/lib/cmpbuf.c
Src/diffutils/lib/cmpbuf.h
Src/diffutils/src/ED.C
Src/diffutils/src/NORMAL.C
Src/diffutils/src/analyze.c
Src/diffutils/src/context.c
Src/diffutils/src/diff.h
Src/diffutils/src/ifdef.c
Src/diffutils/src/io.c
Src/diffutils/src/side.c
Src/diffutils/src/system.h
Src/diffutils/src/util.c
Src/dllpstub.cpp
Src/dllpstub.h
Src/heksedit.h
Src/locality.cpp
Src/markdown.cpp
Src/markdown.h
Src/paths.cpp
Src/ssauto.h
Src/stringdiffs.cpp
Testing/GoogleTest/BinaryCompare/BinaryCompare_test.cpp
Testing/GoogleTest/ByteCompare/ByteCompare_test.cpp
Testing/GoogleTest/Plugins/Plugins_test.cpp
Testing/GoogleTest/UnitTests/UnitTests.vs2015.vcxproj
Testing/GoogleTest/UnitTests/UnitTests.vs2015.vcxproj.filters
Testing/GoogleTest/UnitTests/UnitTests.vs2017.vcxproj
Testing/GoogleTest/UnitTests/UnitTests.vs2017.vcxproj.filters
Testing/GoogleTest/unicoder/unicoder_test.cpp
Translations/WinMerge/Basque.po
Translations/WinMerge/Brazilian.po
Translations/WinMerge/Bulgarian.po
Translations/WinMerge/Catalan.po
Translations/WinMerge/ChineseSimplified.po
Translations/WinMerge/ChineseTraditional.po
Translations/WinMerge/Croatian.po
Translations/WinMerge/Czech.po
Translations/WinMerge/Danish.po
Translations/WinMerge/Dutch.po
Translations/WinMerge/English.pot
Translations/WinMerge/Finnish.po
Translations/WinMerge/French.po
Translations/WinMerge/Galician.po
Translations/WinMerge/German.po
Translations/WinMerge/Greek.po
Translations/WinMerge/Hungarian.po
Translations/WinMerge/Italian.po
Translations/WinMerge/Japanese.po
Translations/WinMerge/Korean.po
Translations/WinMerge/Norwegian.po
Translations/WinMerge/Persian.po
Translations/WinMerge/Polish.po
Translations/WinMerge/Portuguese.po
Translations/WinMerge/Romanian.po
Translations/WinMerge/Russian.po
Translations/WinMerge/Serbian.po
Translations/WinMerge/Sinhala.po
Translations/WinMerge/Slovak.po
Translations/WinMerge/Slovenian.po
Translations/WinMerge/Spanish.po
Translations/WinMerge/Swedish.po
Translations/WinMerge/Turkish.po
Translations/WinMerge/Ukrainian.po
UploadToVirusTotal.cmd
WinMerge.sln [deleted file]
WinMerge.vs2015.sln
WinMerge.vs2017.sln

index 5181d7d..23d15a9 100644 (file)
@@ -1,4 +1,9 @@
-cd /d "%~dp0"
+pushd "%~dp0"\r
 call BuildManual.cmd
 call BuildBin.vs2015.cmd
+pushd Testing\GoogleTest\UnitTests\r
+UnitTests.exe || exit\r
+popd\r
+call BuildInstaller.cmd\r
 call BuildArc.cmd
+popd\r
index a54759e..a70123b 100644 (file)
@@ -1,4 +1,9 @@
-cd /d "%~dp0"
+pushd "%~dp0"\r
 call BuildManual.cmd
 call BuildBin.vs2017.cmd
+pushd Testing\GoogleTest\UnitTests\r
+UnitTests.exe || exit\r
+popd\r
+call BuildInstaller.cmd\r
 call BuildArc.cmd
+popd\r
index ed212f4..fad7e2c 100644 (file)
@@ -1,8 +1,5 @@
 cd /d "%~dp0"
 
-del /s Build\*.exe
-del /s BuildTmp\*.res
-
 call SetVersion.cmd
 cscript /nologo ExpandEnvironmenStrings.vbs Version.in > Version.h
 
@@ -24,11 +21,3 @@ mkdir Build\MergeUnicodeRelease\%APPVER% 2> NUL
 mkdir Build\x64\MergeUnicodeRelease\%APPVER% 2> NUL
 copy Build\MergeUnicodeRelease\*.pdb "Build\MergeUnicodeRelease\%APPVER%\"
 copy Build\x64\MergeUnicodeRelease\*.pdb "Build\x64\MergeUnicodeRelease\%APPVER%\"
-
-for %%i in ("%ProgramFiles(x86)%" "%ProgramFiles%") do (
-  if exist "%%~i\Inno Setup 5\iscc.exe" (
-    "%%~i\Inno Setup 5\iscc.exe" "Installer\innosetup\WinMerge.iss" || pause
-    "%%~i\Inno Setup 5\iscc.exe" "Installer\innosetup\WinMergeX64.iss" || pause
-  )
-)
-
index 7ad4e99..5ed3c68 100644 (file)
@@ -1,8 +1,5 @@
 cd /d "%~dp0"
 
-del /s Build\*.exe
-del /s BuildTmp\*.res
-
 call SetVersion.cmd
 cscript /nologo ExpandEnvironmenStrings.vbs Version.in > Version.h
 
@@ -28,11 +25,3 @@ mkdir Build\MergeUnicodeRelease\%APPVER% 2> NUL
 mkdir Build\x64\MergeUnicodeRelease\%APPVER% 2> NUL
 copy Build\MergeUnicodeRelease\*.pdb "Build\MergeUnicodeRelease\%APPVER%\"
 copy Build\x64\MergeUnicodeRelease\*.pdb "Build\x64\MergeUnicodeRelease\%APPVER%\"
-
-for %%i in ("%ProgramFiles(x86)%" "%ProgramFiles%") do (
-  if exist "%%~i\Inno Setup 5\iscc.exe" (
-    "%%~i\Inno Setup 5\iscc.exe" "Installer\innosetup\WinMerge.iss" || pause
-    "%%~i\Inno Setup 5\iscc.exe" "Installer\innosetup\WinMergeX64.iss" || pause
-  )
-)
-
index 5a114a0..06ecd59 100644 (file)
@@ -65,7 +65,7 @@ void LineInfo::FreeBuffer()
  * @param [in] pszLine Line data.
  * @param [in] nLength Line length.
  */
-void LineInfo::Create(LPCTSTR pszLine, int nLength)
+void LineInfo::Create(LPCTSTR pszLine, size_t nLength)
 {
   if (nLength == 0)
     {
@@ -75,12 +75,13 @@ void LineInfo::Create(LPCTSTR pszLine, int nLength)
 
   m_nLength = nLength;
   m_nMax = ALIGN_BUF_SIZE (m_nLength + 1);
+  ASSERT (m_nMax < INT_MAX);
   ASSERT (m_nMax >= m_nLength + 1);
   if (m_pcLine != NULL)
     delete[] m_pcLine;
   m_pcLine = new TCHAR[m_nMax];
   ZeroMemory(m_pcLine, m_nMax * sizeof(TCHAR));
-  const DWORD dwLen = sizeof (TCHAR) * m_nLength;
+  const size_t dwLen = sizeof (TCHAR) * m_nLength;
   CopyMemory (m_pcLine, pszLine, dwLen);
   m_pcLine[m_nLength] = '\0';
 
@@ -112,12 +113,13 @@ void LineInfo::CreateEmpty()
  * @param [in] pszChars String to append to the line.
  * @param [in] nLength Length of the string to append.
  */
-void LineInfo::Append(LPCTSTR pszChars, int nLength)
+void LineInfo::Append(LPCTSTR pszChars, size_t nLength)
 {
-  int nBufNeeded = m_nLength + nLength + 1;
+  size_t nBufNeeded = m_nLength + nLength + 1;
   if (nBufNeeded > m_nMax)
     {
       m_nMax = ALIGN_BUF_SIZE (nBufNeeded);
+         ASSERT (m_nMax < INT_MAX);
       ASSERT (m_nMax >= m_nLength + nLength);
       TCHAR *pcNewBuf = new TCHAR[m_nMax];
       if (FullLength() > 0)
@@ -181,7 +183,8 @@ bool LineInfo::ChangeEol(LPCTSTR lpEOL)
     if (_tcscmp(m_pcLine + Length(), lpEOL) == 0)
       return false;
 
-  int nBufNeeded = m_nLength + nNewEolChars+1;
+  size_t nBufNeeded = m_nLength + nNewEolChars+1;
+  ASSERT (nBufNeeded < INT_MAX);
   if (nBufNeeded > m_nMax)
     {
       m_nMax = ALIGN_BUF_SIZE (nBufNeeded);
@@ -204,7 +207,7 @@ bool LineInfo::ChangeEol(LPCTSTR lpEOL)
  * @param [in] nStartChar Start position for removal.
  * @param [in] nEndChar End position for removal.
  */
-void LineInfo::Delete(int nStartChar, int nEndChar)
+void LineInfo::Delete(size_t nStartChar, size_t nEndChar)
 {
   if (nEndChar < Length() || m_nEolChars)
     {
@@ -221,7 +224,7 @@ void LineInfo::Delete(int nStartChar, int nEndChar)
  * @brief Delete line contents from given index to the end.
  * @param [in] Index of first character to remove.
  */
-void LineInfo::DeleteEnd(int nStartChar)
+void LineInfo::DeleteEnd(size_t nStartChar)
 {
   m_nLength = nStartChar;
   if (m_pcLine)
@@ -258,7 +261,7 @@ void LineInfo::RemoveEol()
  * @param [in] index Index of first character to get.
  * @note Make a copy from returned string, as it can get reallocated.
  */
-LPCTSTR LineInfo::GetLine(int index) const
+LPCTSTR LineInfo::GetLine(size_t index) const
 {
   return &m_pcLine[index];
 }
index 1fe864c..a9a629e 100644 (file)
@@ -7,8 +7,7 @@
 // ID line follows -- this is updated by SVN
 // $Id$
 
-#ifndef _EDITOR_LINEINFO_H_
-#define _EDITOR_LINEINFO_H_
+#pragma once
 
 //  Line allocation granularity
 #define     CHAR_ALIGN                  16
@@ -27,22 +26,22 @@ public:
     LineInfo();
     void Clear();
     void FreeBuffer();
-    void Create(LPCTSTR pszLine, int nLength);
+    void Create(LPCTSTR pszLine, size_t nLength);
     void CreateEmpty();
-    void Append(LPCTSTR pszChars, int nLength);
-    void Delete(int nStartChar, int nEndChar);
-    void DeleteEnd(int nStartChar);
+    void Append(LPCTSTR pszChars, size_t nLength);
+    void Delete(size_t nStartChar, size_t nEndChar);
+    void DeleteEnd(size_t nStartChar);
     void CopyFrom(const LineInfo &li);
     bool HasEol() const;
     LPCTSTR GetEol() const;
     bool ChangeEol(LPCTSTR lpEOL);
     void RemoveEol();
-    LPCTSTR GetLine(int index = 0) const;
+    LPCTSTR GetLine(size_t index = 0) const;
 
     /** @brief Return full line length (including EOL bytes). */
-    int FullLength() const { return m_nLength + m_nEolChars; }
+    size_t FullLength() const { return m_nLength + m_nEolChars; }
     /** @brief Return line length. */
-    int Length() const { return m_nLength; }
+    size_t Length() const { return m_nLength; }
 
     /** @brief Is the char an EOL char? */
     static bool IsEol(TCHAR ch)
@@ -58,9 +57,7 @@ public:
 
 private:
     TCHAR *m_pcLine; /**< Line data. */
-    int m_nMax; /**< Allocated space for line data. */
-    int m_nLength; /**< Line length (without EOL bytes). */
+    size_t m_nMax; /**< Allocated space for line data. */
+    size_t m_nLength; /**< Line length (without EOL bytes). */
     int m_nEolChars; /**< # of EOL bytes. */
   };
-
-#endif // _EDITOR_LINEINFO_H_
index c2d0261..8cbd723 100644 (file)
@@ -6,8 +6,7 @@
 // ID line follows -- this is updated by SVN
 // $Id$
 
-#ifndef _SYNTAX_COLORS_H_
-#define _SYNTAX_COLORS_H_
+#pragma once
 
 #include <Windows.h>
 #include <vector>
@@ -88,5 +87,3 @@ private:
        std::vector<COLORREF> m_colors; /**< Syntax highlight colors */
        std::vector<bool> m_bolds; /**< Bold font enable/disable */
 };
-
-#endif // _SYNTAX_COLORS_H_
index c9fd97f..107aa85 100644 (file)
@@ -31,11 +31,12 @@ Clone(const UndoRecord &src)
   }
 
 void UndoRecord::
-SetText (LPCTSTR pszText, int nLength)
+SetText (LPCTSTR pszText, size_t nLength)
 {
   FreeText();
   if (nLength != 1)
     {
+         ASSERT (nLength < INT_MAX);
       m_pszText = (TextBuffer *)malloc(sizeof(TextBuffer) + nLength * sizeof(TCHAR));
       if (m_pszText)
         {
index c063c7e..fe2c608 100644 (file)
@@ -7,8 +7,7 @@
 // ID line follows -- this is updated by SVN\r
 // $Id$\r
 \r
-#ifndef _EDITOR_UNDO_RECORD_H_\r
-#define _EDITOR_UNDO_RECORD_H_\r
+#pragma once\r
 \r
 class UndoRecord\r
 {\r
@@ -29,7 +28,7 @@ private:
   //\r
   struct TextBuffer\r
   {\r
-    int size;\r
+    size_t size;\r
     TCHAR data[1];\r
   };\r
 \r
@@ -72,7 +71,7 @@ private:
     delete m_paSavedRevisionNumbers;\r
   }\r
 \r
-  void SetText (LPCTSTR pszText, int cchText);\r
+  void SetText (LPCTSTR pszText, size_t cchText);\r
   void FreeText ();\r
 \r
   LPCTSTR GetText () const\r
@@ -85,7 +84,7 @@ private:
     return m_szText;\r
   }\r
 \r
-  int GetTextLength () const\r
+  size_t GetTextLength () const\r
   {\r
     if (((INT_PTR)m_pszText >> 16) != 0)\r
       return m_pszText->size;\r
@@ -93,4 +92,3 @@ private:
   }\r
 };\r
 \r
-#endif // _EDITOR_UNDO_RECORD_H_\r
index c251e0a..4ad70da 100644 (file)
@@ -6,8 +6,7 @@
 // RCS ID line follows -- this is updated by CVS
 // $Id: ViewableWhitespace.h 3410 2006-07-31 17:14:15Z kimmov $
 
-#ifndef ViewableWhitespace_included_h
-#define ViewableWhitespace_included_h
+#pragma once
 
 /**
  * @brief Structure containing characters for viewable whitespace chars.
@@ -27,4 +26,3 @@ struct ViewableWhitespaceChars
 
 const ViewableWhitespaceChars * GetViewableWhitespaceChars(int codepage);
 
-#endif // ViewableWhitespace_included_h
index c7348c2..00d7e53 100644 (file)
@@ -654,7 +654,8 @@ IsBatKeyword (LPCTSTR pszChars, int nLength)
 static bool
 IsUser1Keyword (LPCTSTR pszChars, int nLength)
 {
-  TCHAR buffer[13];
+  const int bufsiz = 13;
+  TCHAR buffer[bufsiz];
 
   if (nLength < 4 || pszChars[nLength - 4] != '.')
     {
@@ -664,13 +665,13 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength)
     {
       for (int L = 0; L < sizeof(s_apszUser1KeywordList)/sizeof(TCHAR *); L++)
         {
-          _tcscpy (buffer, s_apszUser1KeywordList[L]);
-          _tcscat (buffer, _T (".COM"));
+          _tcscpy_s (buffer, bufsiz, s_apszUser1KeywordList[L]);
+          _tcscat_s (buffer, bufsiz, _T (".COM"));
           if (_tcsnicmp (buffer, pszChars, nLength) == 0
                 && buffer[nLength] == 0)
             return true;
-          _tcscpy (buffer, s_apszUser1KeywordList[L]);
-          _tcscat (buffer, _T (".EXE"));
+          _tcscpy_s (buffer, bufsiz, s_apszUser1KeywordList[L]);
+          _tcscat_s (buffer ,bufsiz, _T (".EXE"));
           if (_tcsnicmp (buffer, pszChars, nLength) == 0
                 && buffer[nLength] == 0)
             return true;
index 393826b..73a0d78 100644 (file)
@@ -119,7 +119,6 @@ public :
   };
 
 
-#pragma warning ( disable : 4100 )
 /////////////////////////////////////////////////////////////////////////////
 // CCrystalEditView
 
@@ -400,7 +399,7 @@ DeleteCurrentColumnSelection2 (int nStartLine, int nEndLine, int nAction)
     }
 
   p[0] = 0;
-  text.ReleaseBuffer (p - pszBuf);
+  text.ReleaseBuffer (static_cast<int>(p - pszBuf));
   text.FreeExtra ();
 
   if (nEndLine + 1 < GetLineCount())
@@ -424,7 +423,7 @@ InsertColumnText (int nLine, int nPos, LPCTSTR pszText, int cchText, int nAction
   int nLineBegin = 0;
   for (int nTextPos = 0; nTextPos < cchText; )
     {
-      TCHAR ch;
+      TCHAR ch = 0;
       aLines.Add ((LPTSTR)&pszText[nTextPos]);
 
       for (; nTextPos < cchText; nTextPos++)
@@ -447,7 +446,8 @@ InsertColumnText (int nLine, int nPos, LPCTSTR pszText, int cchText, int nAction
   int L;
   int nBufSize = 1;
   int nLineCount = GetLineCount ();
-  int nPasteTextLineCount = aLineLengths.GetSize ();
+  ASSERT(aLineLengths.GetSize() < INT_MAX);
+  int nPasteTextLineCount = static_cast<int>(aLineLengths.GetSize ());
   for (L = 0; L < nPasteTextLineCount; L++)
     {
       if (nLine + L < nLineCount)
@@ -497,7 +497,7 @@ InsertColumnText (int nLine, int nPos, LPCTSTR pszText, int cchText, int nAction
   else if (nLine != nLineCount - 1 || GetLineLength (nLineCount - 1) != 0)
     m_pTextBuffer->DeleteText (this, nLine, 0, nLineCount - 1, GetLineLength (nLineCount - 1), nAction);
   int x, y;
-  m_pTextBuffer->InsertText (this, nLine, 0, pszBuf, p - pszBuf, x, y, nAction);
+  m_pTextBuffer->InsertText (this, nLine, 0, pszBuf, static_cast<int>(p - pszBuf), x, y, nAction);
 
   if (bFlushUndoGroup)
     m_pTextBuffer->FlushUndoGroup (this);
@@ -745,8 +745,8 @@ OnChar (UINT nChar, UINT nRepCnt, UINT nFlags)
               ptCursorPos = ptSelStart;
               if (IsSelection ())
                 {
-                  CPoint ptSelStart, ptSelEnd;
-                  GetSelection (ptSelStart, ptSelEnd);
+                  CPoint ptSelStart1, ptSelEnd1;
+                  GetSelection (ptSelStart1, ptSelEnd1);
             
                   /*SetAnchor (ptCursorPos);
                   SetSelection (ptCursorPos, ptCursorPos);
@@ -754,7 +754,7 @@ OnChar (UINT nChar, UINT nRepCnt, UINT nFlags)
                   EnsureVisible (ptCursorPos);*/
             
                   // [JRT]:
-                  m_pTextBuffer->DeleteText (this, ptSelStart.y, ptSelStart.x, ptSelEnd.y, ptSelEnd.x, CE_ACTION_TYPING);
+                  m_pTextBuffer->DeleteText (this, ptSelStart1.y, ptSelStart1.x, ptSelEnd1.y, ptSelEnd1.x, CE_ACTION_TYPING);
                 }
             }
           else
@@ -956,39 +956,39 @@ OnEditTab ()
   // Overwrite mode, replace next char with tab/spaces
   if (m_bOvrMode)
     {
-      CPoint ptCursorPos = GetCursorPos ();
-      ASSERT_VALIDTEXTPOS (ptCursorPos);
+      CPoint ptCursorPos1 = GetCursorPos ();
+      ASSERT_VALIDTEXTPOS (ptCursorPos1);
 
-      int nLineLength = GetLineLength (ptCursorPos.y);
-      LPCTSTR pszLineChars = GetLineChars (ptCursorPos.y);
+      int nLineLength = GetLineLength (ptCursorPos1.y);
+      LPCTSTR pszLineChars = GetLineChars (ptCursorPos1.y);
                
       // Not end of line
-      if (ptCursorPos.x < nLineLength)
+      if (ptCursorPos1.x < nLineLength)
         {
           int nTabSize = GetTabSize ();
           int nChars = nTabSize - CalculateActualOffset(
-              ptCursorPos.y, ptCursorPos.x ) % nTabSize;
+              ptCursorPos1.y, ptCursorPos1.x ) % nTabSize;
           ASSERT (nChars > 0 && nChars <= nTabSize);
 
           while (nChars > 0)
             {
-              if (ptCursorPos.x == nLineLength)
+              if (ptCursorPos1.x == nLineLength)
                 break;
-              if (pszLineChars[ptCursorPos.x] == _T ('\t'))
+              if (pszLineChars[ptCursorPos1.x] == _T ('\t'))
                 {
-                  ptCursorPos.x++;
+                  ptCursorPos1.x++;
                   break;
                 }
-              ptCursorPos.x++;
+              ptCursorPos1.x++;
               nChars--;
             }
-          ASSERT (ptCursorPos.x <= nLineLength);
-          ASSERT_VALIDTEXTPOS (ptCursorPos);
+          ASSERT (ptCursorPos1.x <= nLineLength);
+          ASSERT_VALIDTEXTPOS (ptCursorPos1);
 
-          SetSelection (ptCursorPos, ptCursorPos);
-          SetAnchor (ptCursorPos);
-          SetCursorPos (ptCursorPos);
-          EnsureVisible (ptCursorPos);
+          SetSelection (ptCursorPos1, ptCursorPos1);
+          SetAnchor (ptCursorPos1);
+          SetCursorPos (ptCursorPos1);
+          EnsureVisible (ptCursorPos1);
           return;
         }
     }
@@ -1000,8 +1000,8 @@ OnEditTab ()
   // Text selected, no overwrite mode, replace sel with tab
   if (IsSelection ())
     {
-      CPoint ptSelStart, ptSelEnd;
-      GetSelection (ptSelStart, ptSelEnd);
+      CPoint ptSelStart1, ptSelEnd1;
+      GetSelection (ptSelStart1, ptSelEnd1);
 
       /*SetAnchor (ptCursorPos);
       SetSelection (ptCursorPos, ptCursorPos);
@@ -1009,8 +1009,8 @@ OnEditTab ()
       EnsureVisible (ptCursorPos);*/
 
       // [JRT]:
-      m_pTextBuffer->DeleteText (this, ptSelStart.y, ptSelStart.x, ptSelEnd.y, ptSelEnd.x, CE_ACTION_TYPING);
-      m_pTextBuffer->InsertText( this, ptSelStart.y, ptSelStart.x, pszText, (int) _tcslen(pszText), y, x, CE_ACTION_TYPING );
+      m_pTextBuffer->DeleteText (this, ptSelStart1.y, ptSelStart1.x, ptSelEnd1.y, ptSelEnd1.x, CE_ACTION_TYPING);
+      m_pTextBuffer->InsertText( this, ptSelStart1.y, ptSelStart1.x, pszText, (int) _tcslen(pszText), y, x, CE_ACTION_TYPING );
     }
   // No selection, add tab
   else
@@ -1036,9 +1036,9 @@ OnEditUntab ()
     return;
 
   bool bTabify = false;
-  CPoint ptSelStart, ptSelEnd;
   if (IsSelection ())
     {
+         CPoint ptSelStart, ptSelEnd;
       GetSelection (ptSelStart, ptSelEnd);
       bTabify = ptSelStart.y != ptSelEnd.y;
     }
@@ -1634,7 +1634,7 @@ OnEditReplace ()
  * @return true if succeeded.
  */
 bool CCrystalEditView::
-ReplaceSelection (LPCTSTR pszNewText, int cchNewText, DWORD dwFlags)
+ReplaceSelection (LPCTSTR pszNewText, size_t cchNewText, DWORD dwFlags)
 {
   if (!cchNewText)
     return DeleteCurrentSelection();
@@ -1660,27 +1660,28 @@ ReplaceSelection (LPCTSTR pszNewText, int cchNewText, DWORD dwFlags)
   int y = 0;
   if (dwFlags & FIND_REGEXP)
     {
-      LPTSTR lpszNewStr;
+      LPTSTR lpszNewStr = nullptr;
       if (m_pszMatched && !RxReplace(pszNewText, m_pszMatched, m_nLastFindWhatLen, m_rxmatch, &lpszNewStr, &m_nLastReplaceLen))
         {
           CString text;
           if (lpszNewStr && m_nLastReplaceLen > 0)
             {
               LPTSTR buf = text.GetBuffer (m_nLastReplaceLen + 1);
-              _tcsncpy (buf, lpszNewStr, m_nLastReplaceLen);
+              _tcsncpy_s (buf, m_nLastReplaceLen+1, lpszNewStr, m_nLastReplaceLen);
               text.ReleaseBuffer (m_nLastReplaceLen);
             }
           else
             text.Empty ();
           m_pTextBuffer->InsertText (this, ptCursorPos.y, ptCursorPos.x, text, text.GetLength(), y, x, CE_ACTION_REPLACE);  //  [JRT+FRD]
-          if (lpszNewStr)
+          if (lpszNewStr != nullptr)
             free(lpszNewStr);
         }
     }
   else
     {
       m_pTextBuffer->InsertText (this, ptCursorPos.y, ptCursorPos.x, pszNewText, cchNewText, y, x, CE_ACTION_REPLACE);  //  [JRT]
-      m_nLastReplaceLen = cchNewText;
+         ASSERT(cchNewText < INT_MAX);
+      m_nLastReplaceLen = static_cast<int>(cchNewText);
     }
 
   CPoint ptEndOfBlock = CPoint (x, y);
@@ -1722,7 +1723,7 @@ OnUpdateEditUndo (CCmdUI * pCmdUI)
           //  Format menu item text using the provided item description
           CString desc;
           m_pTextBuffer->GetUndoDescription (desc);
-          menu.Format (IDS_MENU_UNDO_FORMAT, desc);
+          menu.Format (IDS_MENU_UNDO_FORMAT, (LPCTSTR)desc);
         }
       else
         {
@@ -1814,7 +1815,7 @@ OnUpdateEditRedo (CCmdUI * pCmdUI)
           //  Format menu item text using the provided item description
           CString desc;
           m_pTextBuffer->GetRedoDescription (desc);
-          menu.Format (IDS_MENU_REDO_FORMAT, desc);
+          menu.Format (IDS_MENU_REDO_FORMAT, (LPCTSTR)desc);
         }
       else
         {
@@ -1858,7 +1859,7 @@ int bracetype (TCHAR c);
 int bracetype (LPCTSTR s);
 
 void CCrystalEditView::
-OnEditOperation (int nAction, LPCTSTR pszText, int cchText)
+OnEditOperation (int nAction, LPCTSTR pszText, size_t cchText)
 {
   if (m_bAutoIndent)
     {
@@ -1869,7 +1870,7 @@ OnEditOperation (int nAction, LPCTSTR pszText, int cchText)
           CPoint ptCursorPos = GetCursorPos ();
           ASSERT (ptCursorPos.y > 0);
 
-          //  Take indentation from the previos line
+          //  Take indentation from the previous line
           int nLength = m_pTextBuffer->GetLineLength (ptCursorPos.y - 1);
           LPCTSTR pszLineChars = m_pTextBuffer->GetLineChars (ptCursorPos.y - 1);
           int nPos = 0;
@@ -1899,22 +1900,24 @@ OnEditOperation (int nAction, LPCTSTR pszText, int cchText)
                         }
                     }
                 }
-              //  Insert part of the previos line
+              //  Insert part of the previous line
               TCHAR *pszInsertStr;
               if ((GetFlags () & (SRCOPT_BRACEGNU|SRCOPT_BRACEANSI)) && isopenbrace (pszLineChars[nLength - 1]))
                 {
                   if (m_pTextBuffer->GetInsertTabs())
                     {
-                      pszInsertStr = (TCHAR *) _alloca (sizeof (TCHAR) * (nPos + 2));
-                      _tcsncpy (pszInsertStr, pszLineChars, nPos);
+                                         const size_t InsertSiz = (nPos + 2);
+                      pszInsertStr = static_cast<TCHAR *> (_alloca (sizeof(TCHAR) * InsertSiz));
+                      _tcsncpy_s (pszInsertStr, InsertSiz, pszLineChars, nPos);
                       pszInsertStr[nPos++] = _T ('\t');
                     }
                   else
                     {
                       int nTabSize = GetTabSize ();
                       int nChars = nTabSize - nPos % nTabSize;
-                      pszInsertStr = (TCHAR *) _alloca (sizeof (TCHAR) * (nPos + nChars + 1));
-                      _tcsncpy (pszInsertStr, pszLineChars, nPos);
+                                         const size_t InsertSiz = (nPos + nChars + 1);
+                      pszInsertStr = static_cast<TCHAR *> (_alloca (sizeof (TCHAR) * InsertSiz));
+                      _tcsncpy_s (pszInsertStr, InsertSiz, pszLineChars, nPos);
                       while (nChars--)
                         {
                           pszInsertStr[nPos++] = _T (' ');
@@ -1923,8 +1926,9 @@ OnEditOperation (int nAction, LPCTSTR pszText, int cchText)
                 }
               else
                 {
-                  pszInsertStr = (TCHAR *) _alloca (sizeof (TCHAR) * (nPos + 1));
-                  _tcsncpy (pszInsertStr, pszLineChars, nPos);
+                                 const size_t InsertSiz = (nPos + 1);
+                  pszInsertStr = static_cast<TCHAR *> (_alloca (sizeof (TCHAR) * InsertSiz));
+                  _tcsncpy_s (pszInsertStr, InsertSiz, pszLineChars, nPos);
                 }
               pszInsertStr[nPos] = 0;
 
@@ -1941,7 +1945,7 @@ OnEditOperation (int nAction, LPCTSTR pszText, int cchText)
             }
           else
             {
-              //  Insert part of the previos line
+              //  Insert part of the previous line
               if ((GetFlags () & (SRCOPT_BRACEGNU|SRCOPT_BRACEANSI)) && isopenbrace (pszLineChars[nLength - 1]))
                 {
                   TCHAR *pszInsertStr;
@@ -2003,7 +2007,7 @@ OnEditOperation (int nAction, LPCTSTR pszText, int cchText)
           //  Enter stroke!
           CPoint ptCursorPos = GetCursorPos ();
 
-          //  Take indentation from the previos line
+          //  Take indentation from the previous line
           int nLength = m_pTextBuffer->GetLineLength (ptCursorPos.y);
           LPCTSTR pszLineChars = m_pTextBuffer->GetLineChars (ptCursorPos.y );
           int nPos = 0;
@@ -2048,7 +2052,7 @@ OnEditOperation (int nAction, LPCTSTR pszText, int cchText)
           //  Enter stroke!
           CPoint ptCursorPos = GetCursorPos ();
 
-          //  Take indentation from the previos line
+          //  Take indentation from the previous line
           int nLength = m_pTextBuffer->GetLineLength (ptCursorPos.y);
           LPCTSTR pszLineChars = m_pTextBuffer->GetLineChars (ptCursorPos.y );
           int nPos = 0;
@@ -2100,11 +2104,11 @@ OnEditAutoComplete ()
         pszBegin--;
       if (!xisalnum (*pszBegin))
         pszBegin++;
-      nLength = pszEnd - pszBegin;
+      nLength = static_cast<int>(pszEnd - pszBegin);
       CString sText;
       LPTSTR pszBuffer = sText.GetBuffer (nLength + 2);
       *pszBuffer = _T('<');
-      _tcsncpy (pszBuffer + 1, pszBegin, nLength);
+      _tcsncpy_s (pszBuffer + 1, nLength - 1, pszBegin, nLength);
       sText.ReleaseBuffer (nLength + 1);
       CPoint ptTextPos;
       ptCursorPos.x -= nLength;
@@ -2163,10 +2167,10 @@ OnEditAutoExpand ()
         pszBegin--;
       if (!xisalnum (*pszBegin))
         pszBegin++;
-      nLength = pszEnd - pszBegin;
+      nLength = static_cast<int>(pszEnd - pszBegin);
       CString sText, sExpand;
       LPTSTR pszBuffer = sText.GetBuffer (nLength + 1);
-      _tcsncpy (pszBuffer, pszBegin, nLength);
+      _tcsncpy_s (pszBuffer, nLength + 1, pszBegin, nLength);
       sText.ReleaseBuffer (nLength);
       CPoint ptTextPos;
       ptCursorPos.x -= nLength;
@@ -2362,17 +2366,17 @@ OnEditLowerCase ()
 
       if (IsSelection ())
         {
-          CPoint ptSelStart, ptSelEnd;
-          GetSelection (ptSelStart, ptSelEnd);
+          CPoint ptSelStart1, ptSelEnd1;
+          GetSelection (ptSelStart1, ptSelEnd1);
     
-          ptCursorPos = ptSelStart;
+          ptCursorPos = ptSelStart1;
           /*SetAnchor (ptCursorPos);
           SetSelection (ptCursorPos, ptCursorPos);
           SetCursorPos (ptCursorPos);
           EnsureVisible (ptCursorPos);*/
     
           // [JRT]:
-          m_pTextBuffer->DeleteText (this, ptSelStart.y, ptSelStart.x, ptSelEnd.y, ptSelEnd.x, CE_ACTION_LOWERCASE);
+          m_pTextBuffer->DeleteText (this, ptSelStart1.y, ptSelStart1.x, ptSelEnd1.y, ptSelEnd1.x, CE_ACTION_LOWERCASE);
         }
 
       int x, y;
@@ -2410,17 +2414,17 @@ OnEditUpperCase ()
 
       if (IsSelection ())
         {
-          CPoint ptSelStart, ptSelEnd;
-          GetSelection (ptSelStart, ptSelEnd);
+          CPoint ptSelStart1, ptSelEnd1;
+          GetSelection (ptSelStart1, ptSelEnd1);
     
-          ptCursorPos = ptSelStart;
+          ptCursorPos = ptSelStart1;
           /*SetAnchor (ptCursorPos);
           SetSelection (ptCursorPos, ptCursorPos);
           SetCursorPos (ptCursorPos);
           EnsureVisible (ptCursorPos);*/
     
           // [JRT]:
-          m_pTextBuffer->DeleteText (this, ptSelStart.y, ptSelStart.x, ptSelEnd.y, ptSelEnd.x, CE_ACTION_UPPERCASE);
+          m_pTextBuffer->DeleteText (this, ptSelStart1.y, ptSelStart1.x, ptSelEnd1.y, ptSelEnd1.x, CE_ACTION_UPPERCASE);
         }
 
       int x, y;
@@ -2462,17 +2466,17 @@ OnEditSwapCase ()
 
       if (IsSelection ())
         {
-          CPoint ptSelStart, ptSelEnd;
-          GetSelection (ptSelStart, ptSelEnd);
+          CPoint ptSelStart1, ptSelEnd1;
+          GetSelection (ptSelStart1, ptSelEnd1);
     
-          ptCursorPos = ptSelStart;
+          ptCursorPos = ptSelStart1;
           /*SetAnchor (ptCursorPos);
           SetSelection (ptCursorPos, ptCursorPos);
           SetCursorPos (ptCursorPos);
           EnsureVisible (ptCursorPos);*/
     
           // [JRT]:
-          m_pTextBuffer->DeleteText (this, ptSelStart.y, ptSelStart.x, ptSelEnd.y, ptSelEnd.x, CE_ACTION_SWAPCASE);
+          m_pTextBuffer->DeleteText (this, ptSelStart1.y, ptSelStart1.x, ptSelEnd1.y, ptSelEnd1.x, CE_ACTION_SWAPCASE);
         }
 
       int x, y;
@@ -2527,17 +2531,17 @@ OnEditCapitalize ()
 
       if (IsSelection ())
         {
-          CPoint ptSelStart, ptSelEnd;
-          GetSelection (ptSelStart, ptSelEnd);
+          CPoint ptSelStart1, ptSelEnd1;
+          GetSelection (ptSelStart1, ptSelEnd1);
     
-          ptCursorPos = ptSelStart;
+          ptCursorPos = ptSelStart1;
           /*SetAnchor (ptCursorPos);
           SetSelection (ptCursorPos, ptCursorPos);
           SetCursorPos (ptCursorPos);
           EnsureVisible (ptCursorPos);*/
     
           // [JRT]:
-          m_pTextBuffer->DeleteText (this, ptSelStart.y, ptSelStart.x, ptSelEnd.y, ptSelEnd.x, CE_ACTION_CAPITALIZE);
+          m_pTextBuffer->DeleteText (this, ptSelStart1.y, ptSelStart1.x, ptSelEnd1.y, ptSelEnd1.x, CE_ACTION_CAPITALIZE);
         }
 
       int x, y;
@@ -2596,17 +2600,17 @@ OnEditSentence ()
 
       if (IsSelection ())
         {
-          CPoint ptSelStart, ptSelEnd;
-          GetSelection (ptSelStart, ptSelEnd);
+          CPoint ptSelStart1, ptSelEnd1;
+          GetSelection (ptSelStart1, ptSelEnd1);
     
-          ptCursorPos = ptSelStart;
+          ptCursorPos = ptSelStart1;
           /*SetAnchor (ptCursorPos);
           SetSelection (ptCursorPos, ptCursorPos);
           SetCursorPos (ptCursorPos);
           EnsureVisible (ptCursorPos);*/
     
           // [JRT]:
-          m_pTextBuffer->DeleteText (this, ptSelStart.y, ptSelStart.x, ptSelEnd.y, ptSelEnd.x, CE_ACTION_SENTENCIZE);
+          m_pTextBuffer->DeleteText (this, ptSelStart1.y, ptSelStart1.x, ptSelEnd1.y, ptSelEnd1.x, CE_ACTION_SENTENCIZE);
         }
 
       int x, y;
@@ -2656,7 +2660,7 @@ int CCrystalEditView::SpellGetLine (struct SpellData_t *pdata)
       pdata->pszBuffer = szBuffer;
       *pdata->pszBuffer = _T ('^');
       if (nCount > 1)
-        _tcscpy (pdata->pszBuffer + 1, pView->GetLineChars (pdata->nRow));
+        _tcscpy_s (pdata->pszBuffer + 1, sizeof(szBuffer)-1, pView->GetLineChars (pdata->nRow));
       else
         pdata->pszBuffer[nCount++] = _T (' ');
       pdata->pszBuffer[nCount++] = _T ('\n');
@@ -2679,7 +2683,7 @@ int CCrystalEditView::SpellNotify (int nEvent, struct SpellData_t *pdata)
       case SN_FOUND:
         ptStartPos.x = pdata->nColumn - 1;
         ptStartPos.y = pdata->nRow - 1;
-        ptEndPos.x = pdata->nColumn - 1 + _tcslen (pdata->pszWord);
+        ptEndPos.x = pdata->nColumn - 1 + static_cast<LONG>(_tcslen (pdata->pszWord));
         ptEndPos.y = pdata->nRow - 1;
         if (!pView->IsValidTextPos (ptStartPos))
           if (ptStartPos.x > 0)
@@ -2744,7 +2748,7 @@ bool CCrystalEditView::LoadSpellDll (bool bAlert /*= true*/)
       SpellConfig = (int (*) (SpellData*)) GetProcAddress (hSpellDll, "SpellConfig");
       if (SpellInit)
         SpellInit (&spellData);
-      _tcscpy (spellData.szIspell, szWIspellPath);
+      _tcscpy_s (spellData.szIspell, szWIspellPath);
       spellData.GetLine = SpellGetLine;
       spellData.Notify = SpellNotify;
     }
@@ -2794,8 +2798,6 @@ OnUpdateToolsCharCoding (CCmdUI * pCmdUI)
   pCmdUI->Enable (IsSelection ());
 }
 
-long str_pos (LPCTSTR whole, LPCTSTR piece);
-
 void CCrystalEditView::
 OnToolsCharCoding ()
 {
@@ -3061,4 +3063,3 @@ void CCrystalEditView::OnRButtonDown(UINT nFlags, CPoint point)
 }
 
 ////////////////////////////////////////////////////////////////////////////
-#pragma warning ( default : 4100 )
index f9618b3..1646445 100644 (file)
 //        and maybe "ugly" code ...
 ////////////////////////////////////////////////////////////////////////////
 
-#if !defined(AFX_CCRYSTALEDITVIEW_H__8F3F8B63_6F66_11D2_8C34_0080ADB86836__INCLUDED_)
-#define AFX_CCRYSTALEDITVIEW_H__8F3F8B63_6F66_11D2_8C34_0080ADB86836__INCLUDED_
-
-#if _MSC_VER >= 1000
 #pragma once
-#endif // _MSC_VER >= 1000
 
 #include "ccrystaltextview.h"
+#include "ccrystaltextbuffer.h"
 #include "wispelld.h"
 
 /////////////////////////////////////////////////////////////////////////////
@@ -125,9 +121,9 @@ public :
     virtual bool QueryEditable ();
     virtual void UpdateView (CCrystalTextView * pSource, CUpdateContext * pContext, DWORD dwFlags, int nLineIndex = -1);
 
-    bool ReplaceSelection (LPCTSTR pszNewText, int cchNewText, DWORD dwFlags);
+    bool ReplaceSelection (LPCTSTR pszNewText, size_t cchNewText, DWORD dwFlags);
 
-    virtual void OnEditOperation (int nAction, LPCTSTR pszText, int cchText);
+    virtual void OnEditOperation (int nAction, LPCTSTR pszText, size_t cchText);
 
     virtual bool DoSetTextType (TextDefinition *def);
 
@@ -224,11 +220,43 @@ protected :
 
 /////////////////////////////////////////////////////////////////////////////
 
-#if ! (defined(CE_FROM_DLL) || defined(CE_DLL_BUILD))
-#include "ccrystaleditview.inl"
-#endif
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_CCRYSTALEDITVIEW_H__8F3F8B63_6F66_11D2_8C34_0080ADB86836__INCLUDED_)
+inline bool CCrystalEditView::
+GetOverwriteMode ()
+const
+{
+  return m_bOvrMode;
+}
+
+inline void CCrystalEditView::SetOverwriteMode (bool bOvrMode /*= true*/ )
+{
+  m_bOvrMode = bOvrMode;
+}
+
+inline bool CCrystalEditView::
+GetDisableBSAtSOL ()
+const
+{
+  return m_bDisableBSAtSOL;
+}
+
+inline bool CCrystalEditView::GetAutoIndent ()
+const
+{
+  return m_bAutoIndent;
+}
+
+inline void CCrystalEditView::SetAutoIndent (bool bAutoIndent)
+{
+  m_bAutoIndent = bAutoIndent;
+}
+
+inline bool CCrystalEditView::GetInsertTabs ()
+const
+{
+  return m_pTextBuffer->GetInsertTabs();
+}
+
+inline void CCrystalEditView::SetInsertTabs (bool bInsertTabs)
+{
+  m_pTextBuffer->SetInsertTabs(bInsertTabs);
+}
diff --git a/Externals/crystaledit/editlib/ccrystaleditview.inl b/Externals/crystaledit/editlib/ccrystaleditview.inl
deleted file mode 100644 (file)
index 737dad8..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//  File:       CCrystalEditView.inl
-//  Version:    1.0.0.0
-//  Created:    29-Dec-1998
-//
-//  Author:     Stcherbatchenko Andrei
-//  E-mail:     windfall@gmx.de
-//
-//  Inline functions of Crystal Edit classes
-//
-//  You are free to use or modify this code to the following restrictions:
-//  - Acknowledge me somewhere in your about box, simple "Parts of code by.."
-//  will be enough. If you can't (or don't want to), contact me personally.
-//  - LEAVE THIS HEADER INTACT
-////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////
-//  19-Jul-99
-//      Ferdinand Prantl:
-//  +   FEATURE: see cpps ...
-//
-//  ... it's being edited very rapidly so sorry for non-commented
-//        and maybe "ugly" code ...
-////////////////////////////////////////////////////////////////////////////
-
-#ifndef __CCrystalEditView_INL_INCLUDED
-#define __CCrystalEditView_INL_INCLUDED
-
-#include "ccrystaleditview.h"
-#include "ccrystaltextbuffer.h"
-
-inline bool CCrystalEditView::
-GetOverwriteMode ()
-const
-{
-  return m_bOvrMode;
-}
-
-inline void CCrystalEditView::SetOverwriteMode (bool bOvrMode /*= true*/ )
-{
-  m_bOvrMode = bOvrMode;
-}
-
-inline bool CCrystalEditView::
-GetDisableBSAtSOL ()
-const
-{
-  return m_bDisableBSAtSOL;
-}
-
-inline bool CCrystalEditView::GetAutoIndent ()
-const
-{
-  return m_bAutoIndent;
-}
-
-inline void CCrystalEditView::SetAutoIndent (bool bAutoIndent)
-{
-  m_bAutoIndent = bAutoIndent;
-}
-
-inline bool CCrystalEditView::GetInsertTabs ()
-const
-{
-  return m_pTextBuffer->GetInsertTabs();
-}
-
-inline void CCrystalEditView::SetInsertTabs (bool bInsertTabs)
-{
-  m_pTextBuffer->SetInsertTabs(bInsertTabs);
-}
-
-#endif
index eeba1c1..5efae45 100644 (file)
@@ -187,7 +187,7 @@ END_MESSAGE_MAP ()
  *
  * @param nPosition : not defined (or -1) = add lines at the end of array
  */
-void CCrystalTextBuffer::InsertLine (LPCTSTR pszLine, int nLength /*= -1*/ ,
+void CCrystalTextBuffer::InsertLine (LPCTSTR pszLine, size_t nLength,
     int nPosition /*= -1*/, int nCount /*= 1*/ )
 {
   ASSERT(nLength != -1);
@@ -223,7 +223,7 @@ void CCrystalTextBuffer::InsertLine (LPCTSTR pszLine, int nLength /*= -1*/ ,
 // Add characters to end of specified line
 // Specified line must not have any EOL characters
 void CCrystalTextBuffer::
-AppendLine (int nLineIndex, LPCTSTR pszChars, int nLength /*= -1*/ )
+AppendLine (int nLineIndex, LPCTSTR pszChars, size_t nLength )
 {
   ASSERT(nLength != -1);
 
@@ -664,6 +664,7 @@ int CCrystalTextBuffer::
 GetLineCount () const
 {
   ASSERT (m_bInit);             //  Text buffer not yet initialized.
+  ASSERT (m_aLines.size() < INT_MAX);
   //  You must call InitNew() or LoadFromFile() first!
 
   return (int) m_aLines.size ();
@@ -674,9 +675,10 @@ int CCrystalTextBuffer::
 GetLineLength (int nLine) const
 {
   ASSERT (m_bInit);             //  Text buffer not yet initialized.
+  ASSERT (m_aLines[nLine].Length() < INT_MAX);
   //  You must call InitNew() or LoadFromFile() first!
 
-  return m_aLines[nLine].Length();
+  return static_cast<int>(m_aLines[nLine].Length());
 }
 
 // number of characters in line (including any trailing eol characters)
@@ -684,9 +686,10 @@ int CCrystalTextBuffer::
 GetFullLineLength (int nLine) const
 {
   ASSERT (m_bInit);             //  Text buffer not yet initialized.
+  ASSERT (m_aLines[nLine].FullLength() < INT_MAX);
   //  You must call InitNew() or LoadFromFile() first!
 
-  return m_aLines[nLine].FullLength();
+  return static_cast<int>(m_aLines[nLine].FullLength());
 }
 
 // get pointer to any trailing eol characters (pointer to empty string if none)
@@ -862,11 +865,13 @@ GetText (int nStartLine, int nStartChar, int nEndLine, int nEndChar,
 {
   ASSERT (m_bInit);             //  Text buffer not yet initialized.
   //  You must call InitNew() or LoadFromFile() first!
-
-  ASSERT (nStartLine >= 0 && nStartLine < m_aLines.size ());
-  ASSERT (nStartChar >= 0 && nStartChar <= m_aLines[nStartLine].Length());
-  ASSERT (nEndLine >= 0 && nEndLine < m_aLines.size ());
-  ASSERT (nEndChar >= 0 && nEndChar <= m_aLines[nEndLine].Length());
+  
+  ASSERT (m_aLines.size() < INT_MAX);
+  ASSERT (m_aLines[nStartLine].Length() < INT_MAX);
+  ASSERT (nStartLine >= 0 && nStartLine < (int)m_aLines.size ());
+  ASSERT (nStartChar >= 0 && nStartChar <= (int)m_aLines[nStartLine].Length());
+  ASSERT (nEndLine >= 0 && nEndLine < (int)m_aLines.size ());
+  ASSERT (nEndChar >= 0 && nEndChar <= (int)m_aLines[nEndLine].Length());
   ASSERT (nStartLine < nEndLine || nStartLine == nEndLine && nStartChar <= nEndChar);
   // some edit functions (copy...) should do nothing when there is no selection.
   // assert to be sure to catch these 'do nothing' cases.
@@ -875,7 +880,7 @@ GetText (int nStartLine, int nStartChar, int nEndLine, int nEndChar,
   int nCRLFLength;
   LPCTSTR pszCurCRLF;
 
-  int nBufSize = 0;
+  size_t nBufSize = 0;
   for (int L = nStartLine; L <= nEndLine; L++)
     {
       nBufSize += m_aLines[L].Length();
@@ -884,12 +889,12 @@ GetText (int nStartLine, int nStartChar, int nEndLine, int nEndChar,
       nBufSize += nCRLFLength;
     }
 
-  LPTSTR pszBuf = text.GetBuffer (nBufSize);
+  LPTSTR pszBuf = text.GetBuffer (static_cast<int>(nBufSize));
 
   const LineInfo &startLine = m_aLines[nStartLine];
   if (nStartLine < nEndLine)
     {
-      int nCount = startLine.Length() - nStartChar;
+      ptrdiff_t nCount = startLine.Length() - nStartChar;
       if (nCount > 0)
         {
           memcpy (pszBuf, startLine.GetLine(nStartChar), sizeof (TCHAR) * nCount);
@@ -997,10 +1002,12 @@ InternalDeleteText (CCrystalTextView * pSource, int nStartLine, int nStartChar,
   ASSERT (m_bInit);             //  Text buffer not yet initialized.
   //  You must call InitNew() or LoadFromFile() first!
 
-  ASSERT (nStartLine >= 0 && nStartLine < m_aLines.size ());
-  ASSERT (nStartChar >= 0 && nStartChar <= m_aLines[nStartLine].Length());
-  ASSERT (nEndLine >= 0 && nEndLine < m_aLines.size ());
-  ASSERT (nEndChar >= 0 && nEndChar <= m_aLines[nEndLine].Length());
+  ASSERT (m_aLines.size() < INT_MAX);
+  ASSERT (m_aLines[nStartLine].Length() < INT_MAX);
+  ASSERT (nStartLine >= 0 && nStartLine < (int)m_aLines.size ());
+  ASSERT (nStartChar >= 0 && nStartChar <= (int)m_aLines[nStartLine].Length());
+  ASSERT (nEndLine >= 0 && nEndLine < (int)m_aLines.size ());
+  ASSERT (nEndChar >= 0 && nEndChar <= (int)m_aLines[nEndLine].Length());
   ASSERT (nStartLine < nEndLine || nStartLine == nEndLine && nStartChar <= nEndChar);
   // some edit functions (delete...) should do nothing when there is no selection.
   // assert to be sure to catch these 'do nothing' cases.
@@ -1024,8 +1031,8 @@ InternalDeleteText (CCrystalTextView * pSource, int nStartLine, int nStartChar,
   else
     {
       // delete multiple lines
-      const int nRestCount = m_aLines[nEndLine].FullLength() - nEndChar;
-      CString sTail(m_aLines[nEndLine].GetLine(nEndChar), nRestCount);
+      const ptrdiff_t nRestCount = m_aLines[nEndLine].FullLength() - nEndChar;
+      CString sTail(m_aLines[nEndLine].GetLine(nEndChar), static_cast<int>(nRestCount));
       DWORD dwFlags = GetLineFlags (nEndLine);
 
       const int nDelCount = nEndLine - nStartLine;
@@ -1061,17 +1068,17 @@ InternalDeleteText (CCrystalTextView * pSource, int nStartLine, int nStartChar,
 // Remove the last [bytes] characters from specified line, and return them
 // (EOL characters are included)
 CString CCrystalTextBuffer::
-StripTail (int i, int bytes)
+StripTail (int i, size_t bytes)
 {
   LineInfo & li = m_aLines[i];
   // Must at least take off the EOL characters
   ASSERT(bytes >= li.FullLength() - li.Length());
 
-  const int offset = li.FullLength() - bytes;
+  const ptrdiff_t offset = li.FullLength() - bytes;
   // Must not take off more than exist
   ASSERT(offset >= 0);
 
-  CString ret(li.GetLine(offset), bytes);
+  CString ret(li.GetLine(offset), static_cast<int>(bytes));
   li.DeleteEnd(offset);
   return ret;
 }
@@ -1095,13 +1102,15 @@ StripTail (int i, int bytes)
  */
 bool CCrystalTextBuffer::
 InternalInsertText (CCrystalTextView * pSource, int nLine, int nPos,
-    LPCTSTR pszText, int cchText, int &nEndLine, int &nEndChar)
+    LPCTSTR pszText, size_t cchText, int &nEndLine, int &nEndChar)
 {
   ASSERT (m_bInit);             //  Text buffer not yet initialized.
   //  You must call InitNew() or LoadFromFile() first!
-
-  ASSERT (nLine >= 0 && nLine < m_aLines.size ());
-  ASSERT (nPos >= 0 && nPos <= m_aLines[nLine].Length());
+  
+  ASSERT (m_aLines.size() < INT_MAX);
+  ASSERT (m_aLines[nLine].Length() < INT_MAX);
+  ASSERT (nLine >= 0 && nLine < (int)m_aLines.size ());
+  ASSERT (nPos >= 0 && nPos <= (int)m_aLines[nLine].Length());
   if (m_bReadOnly)
     return false;
 
@@ -1122,7 +1131,7 @@ InternalInsertText (CCrystalTextView * pSource, int nLine, int nPos,
 
   int nInsertedLines = 0;
   int nCurrentLine = nLine;
-  int nTextPos;
+  size_t nTextPos;
   for (;;)
     {
       int haseol = 0;
@@ -1230,15 +1239,17 @@ InternalInsertText (CCrystalTextView * pSource, int nLine, int nPos,
 bool CCrystalTextBuffer::
 CanUndo () const
 {
-  ASSERT (m_nUndoPosition >= 0 && m_nUndoPosition <= m_aUndoBuf.size ());
+  ASSERT (m_aUndoBuf.size () < INT_MAX);
+  ASSERT (m_nUndoPosition >= 0 && m_nUndoPosition <= (int)m_aUndoBuf.size ());
   return m_nUndoPosition > 0;
 }
 
 bool CCrystalTextBuffer::
 CanRedo () const
 {
-  ASSERT (m_nUndoPosition >= 0 && m_nUndoPosition <= m_aUndoBuf.size ());
-  return m_nUndoPosition < m_aUndoBuf.size ();
+  ASSERT (m_aUndoBuf.size () < INT_MAX);
+  ASSERT (m_nUndoPosition >= 0 && m_nUndoPosition <= (int)m_aUndoBuf.size ());
+  return m_nUndoPosition < static_cast<int>(m_aUndoBuf.size ());
 }
 
 POSITION CCrystalTextBuffer::
@@ -1370,12 +1381,11 @@ Undo (CCrystalTextView * pSource, CPoint & ptCursorPos)
 
           // we need to put the cursor before the deleted section
           CString text;
-
           const size_t size = m_aLines.size();
-          if ((apparent_ptStartPos.y < size) &&
-              (apparent_ptStartPos.x <= m_aLines[apparent_ptStartPos.y].Length()) &&
-              (apparent_ptEndPos.y < size) &&
-              (apparent_ptEndPos.x <= m_aLines[apparent_ptEndPos.y].Length()))
+          if ((apparent_ptStartPos.y < static_cast<LONG>(size)) &&
+              (apparent_ptStartPos.x <= static_cast<LONG>(m_aLines[apparent_ptStartPos.y].Length())) &&
+              (apparent_ptEndPos.y < static_cast<LONG>(size)) &&
+              (apparent_ptEndPos.x <= static_cast<LONG>(m_aLines[apparent_ptEndPos.y].Length())))
             {
               GetTextWithoutEmptys (apparent_ptStartPos.y, apparent_ptStartPos.x, apparent_ptEndPos.y, apparent_ptEndPos.x, text, CRLF_STYLE_AUTOMATIC, false);
               if (text.GetLength() == ur.GetTextLength() && memcmp(text, ur.GetText(), text.GetLength() * sizeof(TCHAR)) == 0)
@@ -1487,7 +1497,7 @@ Redo (CCrystalTextView * pSource, CPoint & ptCursorPos)
 // the CPoint parameters are apparent (on screen) line numbers
 void CCrystalTextBuffer::
 AddUndoRecord (bool bInsert, const CPoint & ptStartPos,
-    const CPoint & ptEndPos, LPCTSTR pszText, int cchText, int nActionType,
+    const CPoint & ptEndPos, LPCTSTR pszText, size_t cchText, int nActionType,
     CDWordArray *paSavedRevisionNumbers)
 {
   //  Forgot to call BeginUndoGroup()?
@@ -1575,7 +1585,7 @@ LPCTSTR CCrystalTextBuffer::GetDefaultEol() const
  */
 bool CCrystalTextBuffer::
 InsertText (CCrystalTextView * pSource, int nLine, int nPos, LPCTSTR pszText,
-    int cchText, int &nEndLine, int &nEndChar, int nAction,
+    size_t cchText, int &nEndLine, int &nEndChar, int nAction,
     bool bHistory /*=true*/)
 {
   // save line revision numbers for undo
@@ -1852,7 +1862,7 @@ FindNextBookmarkLine (int nCurrentLine) const
   const size_t nSize = m_aLines.size ();
   for (;;)
     {
-      while (nCurrentLine < nSize)
+      while (nCurrentLine < static_cast<int>(nSize))
         {
           if ((m_aLines[nCurrentLine].m_dwFlags & LF_BOOKMARKS) != 0)
             return nCurrentLine;
index ac7e02a..3c6b8bc 100644 (file)
 // ID line follows -- this is updated by SVN
 // $Id: ccrystaltextbuffer.h 6879 2009-06-29 10:00:33Z kimmov $
 
-
-#if !defined(AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_)
-#define AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_
-
 #pragma once
 
 #include <vector>
@@ -171,19 +167,19 @@ public :
     CList < CCrystalTextView *, CCrystalTextView * >m_lpViews;
 
     //  Helper methods
-    void InsertLine (LPCTSTR pszLine, int nLength, int nPosition = -1, int nCount = 1);
-    void AppendLine (int nLineIndex, LPCTSTR pszChars, int nLength);
+    void InsertLine (LPCTSTR pszLine, size_t nLength, int nPosition = -1, int nCount = 1);
+    void AppendLine (int nLineIndex, LPCTSTR pszChars, size_t nLength);
     void MoveLine(int line1, int line2, int newline1);
     void SetEmptyLine(int nPosition, int nCount = 1);
 
     //  Implementation
-    bool InternalInsertText (CCrystalTextView * pSource, int nLine, int nPos, LPCTSTR pszText, int cchText, int &nEndLine, int &nEndChar);
+    bool InternalInsertText (CCrystalTextView * pSource, int nLine, int nPos, LPCTSTR pszText, size_t cchText, int &nEndLine, int &nEndChar);
     bool InternalDeleteText (CCrystalTextView * pSource, int nStartLine, int nStartPos, int nEndLine, int nEndPos);
-    CString StripTail (int i, int bytes);
+    CString StripTail (int i, size_t bytes);
 
     //  [JRT] Support For Descriptions On Undo/Redo Actions
     virtual void AddUndoRecord (bool bInsert, const CPoint & ptStartPos, const CPoint & ptEndPos,
-                                LPCTSTR pszText, int cchText, int nActionType = CE_ACTION_UNKNOWN, CDWordArray *paSavedRevisionNumbers = NULL);
+                                LPCTSTR pszText, size_t cchText, int nActionType = CE_ACTION_UNKNOWN, CDWordArray *paSavedRevisionNumbers = NULL);
     virtual UndoRecord GetUndoRecord (int nUndoPos) const;
 
     virtual CDWordArray *CopyRevisionNumbers(int nStartLine, int nEndLine) const;
@@ -253,7 +249,7 @@ public :
     void SetIgnoreEol(bool IgnoreEol) { m_IgnoreEol = IgnoreEol; }
 
     //  Text modification functions
-    virtual bool InsertText (CCrystalTextView * pSource, int nLine, int nPos, LPCTSTR pszText, int cchText, int &nEndLine, int &nEndChar, int nAction = CE_ACTION_UNKNOWN, bool bHistory =true);
+    virtual bool InsertText (CCrystalTextView * pSource, int nLine, int nPos, LPCTSTR pszText, size_t cchText, int &nEndLine, int &nEndChar, int nAction = CE_ACTION_UNKNOWN, bool bHistory =true);
     virtual bool DeleteText (CCrystalTextView * pSource, int nStartLine, int nStartPos, int nEndLine, int nEndPos, int nAction = CE_ACTION_UNKNOWN, bool bHistory =true, bool bExcludeInvisibleLines = true);
     virtual bool DeleteText2 (CCrystalTextView * pSource, int nStartLine, int nStartPos, int nEndLine, int nEndPos, int nAction = CE_ACTION_UNKNOWN, bool bHistory =true);
 
@@ -317,13 +313,18 @@ public :
     DECLARE_MESSAGE_MAP ()
   };
 
-#if ! (defined(CE_FROM_DLL) || defined(CE_DLL_BUILD))
-#include "ccrystaltextbuffer.inl"
-#endif
 
-/////////////////////////////////////////////////////////////////////////////
+inline bool CCrystalTextBuffer::IsModified () const
+{
+  return m_bModified;
+}
 
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
+inline bool CCrystalTextBuffer::GetInsertTabs() const          //UPDATE-BEGIN
+{
+    return m_bInsertTabs;
+}
 
-#endif // !defined(AFX_CCRYSTALTEXTBUFFER_H__AD7F2F49_6CB3_11D2_8C32_0080ADB86836__INCLUDED_)
+inline void CCrystalTextBuffer::SetInsertTabs(bool bInsertTabs)
+{
+    m_bInsertTabs = bInsertTabs;
+}
diff --git a/Externals/crystaledit/editlib/ccrystaltextbuffer.inl b/Externals/crystaledit/editlib/ccrystaltextbuffer.inl
deleted file mode 100644 (file)
index 880b88a..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//  File:       CCrystalTextBuffer.inl
-//  Version:    1.0.0.0
-//  Created:    29-Dec-1998
-//
-//  Author:     Stcherbatchenko Andrei
-//  E-mail:     windfall@gmx.de
-//
-//  Inline functions of Crystal Edit classes
-//
-//  You are free to use or modify this code to the following restrictions:
-//  - Acknowledge me somewhere in your about box, simple "Parts of code by.."
-//  will be enough. If you can't (or don't want to), contact me personally.
-//  - LEAVE THIS HEADER INTACT
-////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////
-//  19-Jul-99
-//      Ferdinand Prantl:
-//  +   FEATURE: see cpps ...
-//
-//  ... it's being edited very rapidly so sorry for non-commented
-//        and maybe "ugly" code ...
-////////////////////////////////////////////////////////////////////////////
-
-#ifndef __CCrystalTextBuffer_INL_INCLUDED
-#define __CCrystalTextBuffer_INL_INCLUDED
-
-#include "ccrystaltextbuffer.h"
-
-inline bool CCrystalTextBuffer::
-IsModified ()
-const
-{
-  return m_bModified;
-}
-
-inline bool CCrystalTextBuffer::GetInsertTabs() const          //UPDATE-BEGIN
-{
-    return m_bInsertTabs;
-}
-
-inline void CCrystalTextBuffer::SetInsertTabs(bool bInsertTabs)
-{
-    m_bInsertTabs = bInsertTabs;
-}
-
-#endif
index f7aa35b..531cfd1 100644 (file)
@@ -85,7 +85,7 @@ CString CCrystalTextMarkers::Serialize() const
                if (marker.second.bUserDefined)
                {
                        text.AppendFormat(_T("%s:%s\t%d\t%d\t%d\t%d\n"),
-                               marker.first, marker.second.sFindWhat, 
+                               (LPCTSTR)marker.first, (LPCTSTR)marker.second.sFindWhat, 
                                marker.second.dwFlags, marker.second.nBgColorIndex,
                                marker.second.bUserDefined, marker.second.bVisible);
                }
index 02eb55f..90d896a 100644 (file)
@@ -154,7 +154,6 @@ const COLORREF SAVED_REVMARK_CLR = RGB(0x00, 0xFF, 0x00);
 
 #define ICON_INDEX_WRAPLINE         15
 
-#pragma warning ( disable : 4100 )
 ////////////////////////////////////////////////////////////////////////////
 // CCrystalTextView
 
@@ -164,7 +163,7 @@ IMPLEMENT_DYNCREATE (CCrystalTextView, CView)
 
 HINSTANCE CCrystalTextView::s_hResourceInst = NULL;
 
-static int FindStringHelper(LPCTSTR pszLineBegin, LPCTSTR pszFindWhere, LPCTSTR pszFindWhat, DWORD dwFlags, int &nLen, RxNode *&rxnode, RxMatchRes *rxmatch);
+static ptrdiff_t FindStringHelper(LPCTSTR pszLineBegin, LPCTSTR pszFindWhere, LPCTSTR pszFindWhat, DWORD dwFlags, int &nLen, RxNode *&rxnode, RxMatchRes *rxmatch);
 
 BEGIN_MESSAGE_MAP (CCrystalTextView, CView)
 //{{AFX_MSG_MAP(CCrystalTextView)
@@ -484,7 +483,7 @@ LoadSettings ()
       m_LogFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
       m_LogFont.lfQuality = DEFAULT_QUALITY;
       m_LogFont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
-      _tcscpy (m_LogFont.lfFaceName, _T ("Courier New"));
+      _tcscpy_s (m_LogFont.lfFaceName, _T ("Courier New"));
     }
 }
 
@@ -982,10 +981,10 @@ ExpandChars (LPCTSTR pszChars, int nOffset, int nCount, CString & line, int nAct
     }
   else
     {
-      for (int i=0; i<nLength; ++i)
+      for (int i1=0; i1<nLength; ++i1)
       {
-        line += pszChars[i];
-        nCurPos += GetCharWidthFromChar(pszChars[i]) / GetCharWidth();
+        line += pszChars[i1];
+        nCurPos += GetCharWidthFromChar(pszChars[i1]) / GetCharWidth();
       }
     }
   return nCurPos;
@@ -1107,22 +1106,22 @@ DrawLineHelperImpl (CDC * pdc, CPoint & ptOrigin, const CRect & rcClip,
               // A raw estimate of the number of characters to display
               // For wide characters, nCountFit may be overvalued
               int nWidth = rcClip.right - ptOrigin.x;
-              int nCount = lineLen - ibegin;
+              int nCount1 = lineLen - ibegin;
               int nCountFit = nWidth / nCharWidth + 2/* wide char */;
-              if (nCount > nCountFit) {
+              if (nCount1 > nCountFit) {
 #ifndef _UNICODE
                 if (_ismbslead((unsigned char *)(LPCSTR)line, (unsigned char *)(LPCSTR)line + nCountFit - 1))
                   nCountFit++;
 #endif
-                nCount = nCountFit;
+                nCount1 = nCountFit;
               }
 
               // Table of charwidths as CCrystalEditor thinks they are
               // Seems that CrystalEditor's and ExtTextOut()'s charwidths aren't
               // same with some fonts and text is drawn only partially
               // if this table is not used.
-              vector<int> nWidths(nCount + 2);
-              for ( ; i < nCount + ibegin ; i++)
+              vector<int> nWidths(nCount1 + 2);
+              for ( ; i < nCount1 + ibegin ; i++)
                 {
                   if (line[i] == '\t') // Escape sequence leadin?
                   {
@@ -1158,7 +1157,7 @@ DrawLineHelperImpl (CDC * pdc, CPoint & ptOrigin, const CRect & rcClip,
                   RECT rcTextBlock = {ptOrigin.x, ptOrigin.y, ptOrigin.x + nSumWidth + 2, ptOrigin.y + nLineHeight};
                   IntersectRect(&rcIntersect, &rcClip, &rcTextBlock);
                   VERIFY(pdc->ExtTextOut(ptOrigin.x, ptOrigin.y, ETO_CLIPPED | ETO_OPAQUE,
-                      &rcIntersect, LPCTSTR(line) + ibegin, nCount, &nWidths[0]));
+                      &rcIntersect, LPCTSTR(line) + ibegin, nCount1, &nWidths[0]));
                   // Draw rounded rectangles around control characters
                   pdc->SaveDC();
                   pdc->IntersectClipRect(&rcClip);
@@ -1168,7 +1167,7 @@ DrawLineHelperImpl (CDC * pdc, CPoint & ptOrigin, const CRect & rcClip,
                   HGDIOBJ hPen = ::CreatePen(PS_SOLID, 1, ::GetTextColor(hDC));
                   hPen = ::SelectObject(hDC, hPen);
                   int x = ptOrigin.x;
-                  for (int j = 0 ; j < nCount ; ++j)
+                  for (int j = 0 ; j < nCount1 ; ++j)
                   {
                     // Assume narrowed space is converted escape sequence leadin.
                     if (line[ibegin + j] == ' ' && nWidths[j] < nCharWidth)
@@ -1454,7 +1453,7 @@ void CCrystalTextView::InvalidateScreenRect(bool bInvalidateView)
 }
 
 void CCrystalTextView::DrawScreenLine( CDC *pdc, CPoint &ptOrigin, const CRect &rcClip,
-         const std::vector<TEXTBLOCK>& blocks, 
+         const std::vector<TEXTBLOCK>& blocks, int &nActualItem, 
          COLORREF crText, COLORREF crBkgnd, bool bDrawWhitespace,
          LPCTSTR pszChars, int nOffset, int nCount, int &nActualOffset, CPoint ptTextPos )
 {
@@ -1463,19 +1462,15 @@ void CCrystalTextView::DrawScreenLine( CDC *pdc, CPoint &ptOrigin, const CRect &
   CRect                frect = rcClip;
   const int nLineLength = GetViewableLineLength( ptTextPos.y );
   const int nLineHeight = GetLineHeight();
-  int nBgColorIndexZeorWidthBlock;
+  int nBgColorIndexZeorWidthBlock = COLORINDEX_NONE;
   bool bPrevZeroWidthBlock = false;
   static const int ZEROWIDTHBLOCK_WIDTH = 2;
-  int nActualItem = 0;
-
-  for (nActualItem = 0; 
-    nActualItem < blocks.size() - 1 && blocks[nActualItem + 1].m_nCharPos < nOffset;
-    ++nActualItem)
-    ;
 
   frect.top = ptOrigin.y;
   frect.bottom = frect.top + nLineHeight;
 
+  ASSERT( nActualItem < blocks.size() );
+
   if( blocks.size() > 0 && nActualItem < blocks.size() - 1 && 
     blocks[nActualItem + 1].m_nCharPos >= nOffset && 
     blocks[nActualItem + 1].m_nCharPos <= nOffset + nCount )
@@ -1483,26 +1478,27 @@ void CCrystalTextView::DrawScreenLine( CDC *pdc, CPoint &ptOrigin, const CRect &
       ASSERT(blocks[nActualItem].m_nCharPos >= 0 &&
          blocks[nActualItem].m_nCharPos <= nLineLength);
 
-      int I=0;
+      size_t I=0;
       for (I = nActualItem; I < blocks.size() - 1 &&
         blocks[I + 1].m_nCharPos <= nOffset + nCount; I ++)
         {
-          ASSERT(blocks[I].m_nCharPos >= 0 && blocks[I].m_nCharPos <= nLineLength);
+                 const TEXTBLOCK& blk = blocks[I];
+          ASSERT(blk.m_nCharPos >= 0 && blk.m_nCharPos <= nLineLength);
 
-          int nOffsetToUse = (nOffset > blocks[I].m_nCharPos) ?
-             nOffset : blocks[I].m_nCharPos;
+          int nOffsetToUse = (nOffset > blk.m_nCharPos) ?
+             nOffset : blk.m_nCharPos;
           if (blocks[I + 1].m_nCharPos - nOffsetToUse > 0)
             {
               int nOldActualOffset = nActualOffset;
-              DrawLineHelper(pdc, ptOrigin, rcClip, blocks[I].m_nColorIndex, blocks[I].m_nBgColorIndex, crText, crBkgnd, pszChars,
-                (nOffset > blocks[I].m_nCharPos)? nOffset : blocks[I].m_nCharPos, 
+              DrawLineHelper(pdc, ptOrigin, rcClip, blk.m_nColorIndex, blk.m_nBgColorIndex, crText, crBkgnd, pszChars,
+                (nOffset > blk.m_nCharPos)? nOffset : blk.m_nCharPos, 
                 blocks[I + 1].m_nCharPos - nOffsetToUse,
                 nActualOffset, CPoint( nOffsetToUse, ptTextPos.y ));
               if (bPrevZeroWidthBlock)
                 {
                   CRect rcClipZeroWidthBlock(ptOriginZeroWidthBlock.x, rcClip.top, ptOriginZeroWidthBlock.x + ZEROWIDTHBLOCK_WIDTH, rcClip.bottom);
-                  DrawLineHelper(pdc, ptOriginZeroWidthBlock, rcClipZeroWidthBlock, blocks[I].m_nColorIndex, nBgColorIndexZeorWidthBlock, crText, crBkgnd, pszChars,
-                      (nOffset > blocks[I].m_nCharPos)? nOffset : blocks[I].m_nCharPos, 
+                  DrawLineHelper(pdc, ptOriginZeroWidthBlock, rcClipZeroWidthBlock, blk.m_nColorIndex, nBgColorIndexZeorWidthBlock, crText, crBkgnd, pszChars,
+                      (nOffset > blk.m_nCharPos)? nOffset : blk.m_nCharPos, 
                       blocks[I + 1].m_nCharPos - nOffsetToUse,
                       nOldActualOffset, CPoint( nOffsetToUse, ptTextPos.y ));
                   bPrevZeroWidthBlock = false;
@@ -1512,7 +1508,7 @@ void CCrystalTextView::DrawScreenLine( CDC *pdc, CPoint &ptOrigin, const CRect &
             {
               if (!bPrevZeroWidthBlock)
                 {
-                  int nBgColorIndex = blocks[I].m_nBgColorIndex;
+                  int nBgColorIndex = blk.m_nBgColorIndex;
                      COLORREF clrBkColor;
                   if (crBkgnd == CLR_NONE || nBgColorIndex & COLORINDEX_APPLYFORCE)
                     clrBkColor = GetColor(nBgColorIndex);
@@ -1520,7 +1516,7 @@ void CCrystalTextView::DrawScreenLine( CDC *pdc, CPoint &ptOrigin, const CRect &
                     clrBkColor = crBkgnd;
                   pdc->FillSolidRect(ptOrigin.x, ptOrigin.y, ZEROWIDTHBLOCK_WIDTH, GetLineHeight(), clrBkColor);
                   ptOriginZeroWidthBlock = ptOrigin;
-                  nBgColorIndexZeorWidthBlock = blocks[I].m_nBgColorIndex;
+                  nBgColorIndexZeorWidthBlock = blk.m_nBgColorIndex;
                   bPrevZeroWidthBlock = true;
                 }
             }
@@ -1528,7 +1524,7 @@ void CCrystalTextView::DrawScreenLine( CDC *pdc, CPoint &ptOrigin, const CRect &
             break;
         }
 
-      nActualItem = I;
+      nActualItem = static_cast<int>(I);
 
       ASSERT(blocks[nActualItem].m_nCharPos >= 0 &&
         blocks[nActualItem].m_nCharPos <= nLineLength);
@@ -1611,7 +1607,7 @@ public:
 std::vector<CCrystalTextView::TEXTBLOCK> CCrystalTextView::
 MergeTextBlocks (const std::vector<TEXTBLOCK>& blocks1, const std::vector<TEXTBLOCK>& blocks2) const
 {
-  int i, j, k;
+  size_t i, j, k;
 
   std::vector<TEXTBLOCK> mergedBlocks(blocks1.size() + blocks2.size());
 
@@ -1709,7 +1705,7 @@ CCrystalTextView::GetMarkerTextBlocks(int nLineIndex) const
               RxNode *node = nullptr;
               RxMatchRes matches;
               int nMatchLen = 0;
-              int nPos = ::FindStringHelper(pszChars, p, marker.second.sFindWhat, marker.second.dwFlags | FIND_NO_WRAP, nMatchLen, node, &matches);
+              size_t nPos = ::FindStringHelper(pszChars, p, marker.second.sFindWhat, marker.second.dwFlags | FIND_NO_WRAP, nMatchLen, node, &matches);
               if (nPos == -1)
                   break;
               if (nLineLength < (p - pszChars) + nPos + nMatchLen)
@@ -1719,7 +1715,8 @@ CCrystalTextView::GetMarkerTextBlocks(int nLineIndex) const
               blocks[nBlocks].m_nBgColorIndex = marker.second.nBgColorIndex | COLORINDEX_APPLYFORCE;
               blocks[nBlocks].m_nColorIndex = COLORINDEX_NONE;
               ++nBlocks;
-              blocks[nBlocks].m_nCharPos = static_cast<int>(p - pszChars) + nPos + nMatchLen;
+              ASSERT(((p - pszChars) + nPos + nMatchLen) < INT_MAX);
+              blocks[nBlocks].m_nCharPos = static_cast<int>((p - pszChars) + nPos + nMatchLen);
               blocks[nBlocks].m_nBgColorIndex = COLORINDEX_NONE;
               blocks[nBlocks].m_nColorIndex = COLORINDEX_NONE;
               ++nBlocks;
@@ -1803,7 +1800,7 @@ DrawSingleLine (CDC * pdc, const CRect & rc, int nLineIndex)
       // draw start of line to first break
       DrawScreenLine(
         pdc, origin, rc,
-        blocks,
+        blocks, nActualItem,
         crText, crBkgnd, bDrawWhitespace,
         pszChars, 0, anBreaks[0], nActualOffset, CPoint( 0, nLineIndex ) );
 
@@ -1814,7 +1811,7 @@ DrawSingleLine (CDC * pdc, const CRect & rc, int nLineIndex)
           ASSERT( anBreaks[i] >= 0 && anBreaks[i] < nLength );
           DrawScreenLine(
             pdc, origin, rc,
-            blocks,
+            blocks, nActualItem,
             crText, crBkgnd, bDrawWhitespace,
             pszChars, anBreaks[i], anBreaks[i + 1] - anBreaks[i],
             nActualOffset, CPoint( anBreaks[i], nLineIndex ) );
@@ -1823,7 +1820,7 @@ DrawSingleLine (CDC * pdc, const CRect & rc, int nLineIndex)
       // draw from last break till end of line
       DrawScreenLine(
         pdc, origin, rc,
-        blocks,
+        blocks, nActualItem,
         crText, crBkgnd, bDrawWhitespace,
         pszChars, anBreaks[i], nLength - anBreaks[i],
         nActualOffset, CPoint( anBreaks[i], nLineIndex ) );
@@ -1831,7 +1828,7 @@ DrawSingleLine (CDC * pdc, const CRect & rc, int nLineIndex)
   else
       DrawScreenLine(
         pdc, origin, rc,
-        blocks,
+        blocks, nActualItem,
         crText, crBkgnd, bDrawWhitespace,
         pszChars, 0, nLength, nActualOffset, CPoint(0, nLineIndex));
 
@@ -2048,7 +2045,7 @@ GetHTMLLine (int nLineIndex, LPCTSTR pszTag)
 
   CString strHTML;
   CString strExpanded;
-  int i;
+  size_t i;
   int nNonbreakChars = 0;
   bool bLastCharSpace = false;
   const int nScreenChars = 40; //  GetScreenChars();
@@ -4508,7 +4505,7 @@ int CCrystalTextView::
 OnCreate (LPCREATESTRUCT lpCreateStruct)
 {
   memset (&m_lfBaseFont, 0, sizeof (m_lfBaseFont));
-  _tcscpy (m_lfBaseFont.lfFaceName, _T ("FixedSys"));
+  _tcscpy_s (m_lfBaseFont.lfFaceName, _T ("FixedSys"));
   m_lfBaseFont.lfHeight = 0;
   m_lfBaseFont.lfWeight = FW_NORMAL;
   m_lfBaseFont.lfItalic = false;
@@ -4538,7 +4535,7 @@ SetAnchor (const CPoint & ptNewAnchor)
 }
 
 void CCrystalTextView::
-OnEditOperation (int nAction, LPCTSTR pszText, int cchText)
+OnEditOperation (int nAction, LPCTSTR pszText, size_t cchText)
 {
 }
 
@@ -4820,12 +4817,12 @@ PrepareDragData ()
   return hData;
 }
 
-static int
+static ptrdiff_t
 FindStringHelper (LPCTSTR pszLineBegin, LPCTSTR pszFindWhere, LPCTSTR pszFindWhat, DWORD dwFlags, int &nLen, RxNode *&rxnode, RxMatchRes *rxmatch)
 {
   if (dwFlags & FIND_REGEXP)
     {
-      int pos = -1;
+      ptrdiff_t pos = -1;
 
       if (rxnode)
         RxFree (rxnode);
@@ -5033,7 +5030,7 @@ FindTextInBlock (LPCTSTR pszText, const CPoint & ptStartPosition,
                       if (nLineLength > 0)
                         {
                           LPTSTR pszBuf = item.GetBuffer (nLineLength + 1);
-                          _tcsncpy (pszBuf, pszChars, nLineLength);
+                          _tcsncpy_s (pszBuf, nLineLength+1, pszChars, nLineLength);
                           item.ReleaseBuffer (nLineLength);
                           line = item + line;
                         }
@@ -5054,14 +5051,14 @@ FindTextInBlock (LPCTSTR pszText, const CPoint & ptStartPosition,
                       ptCurrentPos.x = nLineLength - 1;
 
                   LPCTSTR pszChars = GetLineChars (ptCurrentPos.y);
-                  _tcsncpy(line.GetBuffer(ptCurrentPos.x + 2), pszChars, ptCurrentPos.x + 1);
+                  _tcsncpy_s (line.GetBuffer(ptCurrentPos.x + 2), ptCurrentPos.x + 2, pszChars, ptCurrentPos.x + 1);
                   line.ReleaseBuffer (ptCurrentPos.x + 1);
                 }
 
-              int nFoundPos = -1;
+              ptrdiff_t nFoundPos = -1;
               int nMatchLen = what.GetLength();
               int nLineLen = line.GetLength();
-              int nPos;
+              size_t nPos;
               do
                 {
                   nPos = ::FindStringHelper(line, line, what, dwFlags, m_nLastFindWhatLen, m_rxnode, &m_rxmatch);
@@ -5075,7 +5072,7 @@ FindTextInBlock (LPCTSTR pszText, const CPoint & ptStartPosition,
                 }
               while( nPos != -1 && nLineLen != 0);
 
-              if( nFoundPos >= 0 )     // Found text!
+              if( nFoundPos != -1 )    // Found text!
                 {
                   ptCurrentPos.x = static_cast<int>(nFoundPos);
                   *pptFoundPos = ptCurrentPos;
@@ -5119,7 +5116,7 @@ FindTextInBlock (LPCTSTR pszText, const CPoint & ptStartPosition,
                       if (nLineLength > 0)
                         {
                           LPTSTR pszBuf = item.GetBuffer (nLineLength + 1);
-                          _tcsncpy (pszBuf, pszChars, nLineLength);
+                          _tcsncpy_s (pszBuf, nLineLength + 1, pszChars, nLineLength);
                           item.ReleaseBuffer (nLineLength);
                           line += item;
                         }
@@ -5140,12 +5137,12 @@ FindTextInBlock (LPCTSTR pszText, const CPoint & ptStartPosition,
 
                   //  Prepare necessary part of line
                   LPTSTR pszBuf = line.GetBuffer (nLineLength + 1);
-                  _tcsncpy (pszBuf, pszChars, nLineLength);
+                  _tcsncpy_s (pszBuf, nLineLength + 1, pszChars, nLineLength);
                   line.ReleaseBuffer (nLineLength);
                 }
 
               //  Perform search in the line
-              int nPos = ::FindStringHelper (line, static_cast<LPCTSTR>(line) + ptCurrentPos.x, what, dwFlags, m_nLastFindWhatLen, m_rxnode, &m_rxmatch);
+              size_t nPos = ::FindStringHelper (line, static_cast<LPCTSTR>(line) + ptCurrentPos.x, what, dwFlags, m_nLastFindWhatLen, m_rxnode, &m_rxmatch);
               if (nPos != -1)
                 {
                   if (m_pszMatched)
@@ -5153,7 +5150,7 @@ FindTextInBlock (LPCTSTR pszText, const CPoint & ptStartPosition,
                   m_pszMatched = _tcsdup (line);
                   if (nEolns)
                     {
-                      CString item = line.Left (nPos);
+                      CString item = line.Left (static_cast<LONG>(nPos));
                       LPCTSTR current = _tcsrchr (item, _T('\n'));
                       if (current)
                         current++;
@@ -5163,18 +5160,18 @@ FindTextInBlock (LPCTSTR pszText, const CPoint & ptStartPosition,
                       if (nEolns)
                         {
                           ptCurrentPos.y += nEolns;
-                          ptCurrentPos.x = nPos - (current - (LPCTSTR) item);
+                          ptCurrentPos.x = static_cast<LONG>(nPos - (current - (LPCTSTR) item));
                         }
                       else
                         {
-                          ptCurrentPos.x += nPos - (current - (LPCTSTR) item);
+                          ptCurrentPos.x += static_cast<LONG>(nPos - (current - (LPCTSTR) item));
                         }
                       if (ptCurrentPos.x < 0)
                         ptCurrentPos.x = 0;
                     }
                   else
                     {
-                      ptCurrentPos.x += nPos;
+                      ptCurrentPos.x += static_cast<LONG>(nPos);
                     }
                   //  Check of the text found is outside the block.
                   if (ptCurrentPos.y == ptBlockEnd.y && ptCurrentPos.x >= ptBlockEnd.x)
@@ -5371,7 +5368,7 @@ OnEditRepeat ()
             (m_dwLastSearchFlags & FIND_NO_WRAP) == 0, &ptFoundPos))
         {
           CString prompt;
-          prompt.Format (LoadResString(IDS_EDIT_TEXT_NOT_FOUND).c_str(), sText);
+          prompt.Format (LoadResString(IDS_EDIT_TEXT_NOT_FOUND).c_str(), (LPCTSTR)sText);
           AfxMessageBox (prompt, MB_ICONINFORMATION);
           return;
         }
@@ -5460,15 +5457,15 @@ OnFilePageSetup ()
     }
   if (dlg.DoModal () == IDOK)
     {
-      CReg reg;
-      if (reg.Create (HKEY_CURRENT_USER, REG_EDITPAD, KEY_WRITE))
+      CReg reg1;
+      if (reg1.Create (HKEY_CURRENT_USER, REG_EDITPAD, KEY_WRITE))
         {
-          VERIFY (reg.SaveNumber (_T ("PageWidth"), dlg.m_psd.ptPaperSize.x));
-          VERIFY (reg.SaveNumber (_T ("PageHeight"), dlg.m_psd.ptPaperSize.y));
-          VERIFY (reg.SaveNumber (_T ("PageLeft"), dlg.m_psd.rtMargin.left));
-          VERIFY (reg.SaveNumber (_T ("PageRight"), dlg.m_psd.rtMargin.right));
-          VERIFY (reg.SaveNumber (_T ("PageTop"), dlg.m_psd.rtMargin.top));
-          VERIFY (reg.SaveNumber (_T ("PageBottom"), dlg.m_psd.rtMargin.bottom));
+          VERIFY (reg1.SaveNumber (_T ("PageWidth"), dlg.m_psd.ptPaperSize.x));
+          VERIFY (reg1.SaveNumber (_T ("PageHeight"), dlg.m_psd.ptPaperSize.y));
+          VERIFY (reg1.SaveNumber (_T ("PageLeft"), dlg.m_psd.rtMargin.left));
+          VERIFY (reg1.SaveNumber (_T ("PageRight"), dlg.m_psd.rtMargin.right));
+          VERIFY (reg1.SaveNumber (_T ("PageTop"), dlg.m_psd.rtMargin.top));
+          VERIFY (reg1.SaveNumber (_T ("PageBottom"), dlg.m_psd.rtMargin.bottom));
         }
       pApp->SelectPrinter (dlg.m_psd.hDevNames, dlg.m_psd.hDevMode, false);
     }
@@ -6400,7 +6397,7 @@ void CCrystalTextView::OnUpdateStatusMessage( CStatusBar *pStatusBar )
     formatid = IDS_FIND_INCREMENTAL_BACKWARD;
   else
     return;
-  strFormat.Format( LoadResString(formatid).c_str(), *m_pstrIncrementalSearchString );
+  strFormat.Format( LoadResString(formatid).c_str(), (LPCTSTR)*m_pstrIncrementalSearchString );
 
   pStatusBar->SetPaneText( 0, strFormat );
   bUpdatedAtLastCall = false;
@@ -6595,4 +6592,3 @@ SetTextTypeByContent (LPCTSTR pszContent)
 }
 
 ////////////////////////////////////////////////////////////////////////////
-#pragma warning ( default : 4100 )
index 637a1d9..d40c75f 100644 (file)
 // ID line follows -- this is updated by SVN
 // $Id: ccrystaltextview.h 6888 2009-06-30 10:36:28Z kimmov $
 
-#if !defined(AFX_CCRYSTALTEXTVIEW_H__AD7F2F41_6CB3_11D2_8C32_0080ADB86836__INCLUDED_)
-#define AFX_CCRYSTALTEXTVIEW_H__AD7F2F41_6CB3_11D2_8C32_0080ADB86836__INCLUDED_
-
-#if _MSC_VER >= 1000
 #pragma once
-#endif // _MSC_VER >= 1000
 
 #include <vector>
 #include "cregexp.h"
@@ -577,7 +572,7 @@ protected:
        // function to draw a single screen line
        // (a wrapped line can consist of many screen lines
        virtual void DrawScreenLine( CDC *pdc, CPoint &ptOrigin, const CRect &rcClip,
-               const std::vector<TEXTBLOCK>& blocks,
+               const std::vector<TEXTBLOCK>& blocks, int &nActualItem,
                COLORREF crText, COLORREF crBkgnd, bool bDrawWhitespace,
                LPCTSTR pszChars,
                int nOffset, int nCount, int &nActualOffset, CPoint ptTextPos );
@@ -860,7 +855,7 @@ public :
     void UpdateCompositionWindowFont();
 
     //  Overridable: an opportunity for Auto-Indent, Smart-Indent etc.
-    virtual void OnEditOperation (int nAction, LPCTSTR pszText, int cchText);
+    virtual void OnEditOperation (int nAction, LPCTSTR pszText, size_t cchText);
 
     // Overrides
     // ClassWizard generated virtual function overrides
@@ -1003,13 +998,8 @@ protected :
 #define ASSERT_VALIDTEXTPOS(pt)
 #endif
 
-#if ! (defined(CE_FROM_DLL) || defined(CE_DLL_BUILD))
-#include "ccrystaltextview.inl"
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
 
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_CCRYSTALTEXTVIEW_H__AD7F2F41_6CB3_11D2_8C32_0080ADB86836__INCLUDED_)
+inline bool CCrystalTextView::IsDraggingText () const
+{
+  return m_bDraggingText;
+}
diff --git a/Externals/crystaledit/editlib/ccrystaltextview.inl b/Externals/crystaledit/editlib/ccrystaltextview.inl
deleted file mode 100644 (file)
index aa5ea26..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//  File:       CCrystalTextView.inl
-//  Version:    1.0.0.0
-//  Created:    29-Dec-1998
-//
-//  Author:     Stcherbatchenko Andrei
-//  E-mail:     windfall@gmx.de
-//
-//  Inline functions of Crystal Edit classes
-//
-//  You are free to use or modify this code to the following restrictions:
-//  - Acknowledge me somewhere in your about box, simple "Parts of code by.."
-//  will be enough. If you can't (or don't want to), contact me personally.
-//  - LEAVE THIS HEADER INTACT
-////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////
-//  19-Jul-99
-//      Ferdinand Prantl:
-//  +   FEATURE: see cpps ...
-//
-//  ... it's being edited very rapidly so sorry for non-commented
-//        and maybe "ugly" code ...
-////////////////////////////////////////////////////////////////////////////
-
-#ifndef __CCrystalTextView_INL_INCLUDED
-#define __CCrystalTextView_INL_INCLUDED
-
-#include "ccrystaltextview.h"
-
-inline bool CCrystalTextView::
-IsDraggingText ()
-const
-{
-  return m_bDraggingText;
-}
-
-#endif
index 3fe0534..7d05a13 100644 (file)
@@ -175,7 +175,7 @@ MoveWordLeft (bool bSelect)
 
   if (nPos > 0)
     {
-      int nPrevPos = (int) (::CharPrev(pszChars, pszChars + nPos) - pszChars);
+      nPrevPos = (int) (::CharPrev(pszChars, pszChars + nPos) - pszChars);
       nPos = nPrevPos;
       if (xisalnum (pszChars[nPos]))
         {
@@ -830,7 +830,7 @@ OnLButtonUp (UINT nFlags, CPoint point)
       AdjustTextPoint (point);
       CPoint ptNewCursorPos = ClientToText (point);
 
-      CPoint ptStart, ptEnd;
+         CPoint ptStart;
       if (m_bLineSelection)
         {
           CPoint ptEnd;
@@ -882,6 +882,7 @@ OnLButtonUp (UINT nFlags, CPoint point)
         }
       else
         {
+                 CPoint ptEnd;
           if (m_bWordSelection)
             {
               if (ptNewCursorPos.y < m_ptAnchor.y ||
index f7435dd..50f71cd 100644 (file)
 //        and maybe "ugly" code ...
 ////////////////////////////////////////////////////////////////////////////
 
-#if !defined(AFX_CEDITREPLACEDLG_H__759417E3_7B18_11D2_8C50_0080ADB86836__INCLUDED_)
-#define AFX_CEDITREPLACEDLG_H__759417E3_7B18_11D2_8C50_0080ADB86836__INCLUDED_
-
-#if _MSC_VER >= 1000
 #pragma once
-#endif // _MSC_VER >= 1000
 // ceditreplacedlg.h : header file
 //
 
@@ -88,7 +83,7 @@ public :
   virtual BOOL PreTranslateMessage(MSG* pMsg);
   protected:
     virtual void DoDataExchange (CDataExchange * pDX);    // DDX/DDV support
-  //}}AFX_VIRTUAL
+    //}}AFX_VIRTUAL
 
     // Implementation
 protected :
@@ -109,8 +104,3 @@ protected :
     //}}AFX_MSG
     DECLARE_MESSAGE_MAP ()
   };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_CEDITREPLACEDLG_H__759417E3_7B18_11D2_8C50_0080ADB86836__INCLUDED_)
index fa7ff94..bd968ca 100644 (file)
 // RCS ID line follows -- this is updated by CVS
 // $Id$
 
-#if !defined(AFX_CFINDTEXTDLG_H__F59009E3_7B01_11D2_8C4F_0080ADB86836__INCLUDED_)
-#define AFX_CFINDTEXTDLG_H__F59009E3_7B01_11D2_8C4F_0080ADB86836__INCLUDED_
-
-#if _MSC_VER >= 1000
 #pragma once
-#endif // _MSC_VER >= 1000
 
 #include "resource.h"
 #include "memcombo.h"
@@ -119,8 +114,3 @@ protected :
     //}}AFX_MSG
     DECLARE_MESSAGE_MAP ()
   };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_CFINDTEXTDLG_H__F59009E3_7B01_11D2_8C4F_0080ADB86836__INCLUDED_)
index f47fa7f..c47bd96 100644 (file)
@@ -56,7 +56,7 @@ EDITPADC_CLASS void FillComboBox (CComboBox &Control, LPCTSTR *pszItems)
 
 CCharConvDlg::CCharConvDlg () : CDialog (CCharConvDlg::IDD, NULL)
 {
-  //{{AFX_DATA_INIT(CCharConvDlg)
+    //{{AFX_DATA_INIT(CCharConvDlg)
        m_nSource = 1;
        m_nDest = 1;
        m_bAlpha = false;
@@ -68,7 +68,7 @@ void CCharConvDlg::
 DoDataExchange (CDataExchange * pDX)
 {
   CDialog::DoDataExchange (pDX);
-  //{{AFX_DATA_MAP(CCharConvDlg)
+    //{{AFX_DATA_MAP(CCharConvDlg)
        DDX_Control(pDX, IDC_SRC, m_ctlSource);
        DDX_Control(pDX, IDC_DEST, m_ctlDest);
        DDX_CBIndex(pDX, IDC_SRC, m_nSource);
@@ -79,7 +79,7 @@ DoDataExchange (CDataExchange * pDX)
 }
 
 BEGIN_MESSAGE_MAP (CCharConvDlg, CDialog)
-//{{AFX_MSG_MAP(CCharConvDlg)
+    //{{AFX_MSG_MAP(CCharConvDlg)
        ON_BN_CLICKED(IDPREVIEW, OnPreview)
        //}}AFX_MSG_MAP
 END_MESSAGE_MAP ()
index fd1dd73..79b9559 100644 (file)
 //  - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __CHCONDLG_H__INCLUDED__
-#define __CHCONDLG_H__INCLUDED__
-
-#if _MSC_VER >= 1000
 #pragma once
-#endif // _MSC_VER >= 1000
 
 #include "editcmd.h"
 
@@ -64,8 +59,3 @@ protected :
        //}}AFX_MSG
     DECLARE_MESSAGE_MAP ()
   };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // __CHCONDLG_H__INCLUDED__
index df8fa12..d411e24 100644 (file)
@@ -14,8 +14,7 @@
 //  - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __REGEX_H
-#define __REGEX_H
+#pragma once
 
 /*
  * Operator:
@@ -96,13 +95,12 @@ typedef struct _RxNode RxNode;
 struct _RxNode;
 
 typedef struct {
-    int Open[NSEXPS];    // -1 = not matched
-    int Close[NSEXPS];
+    ptrdiff_t Open[NSEXPS];    // -1 = not matched
+    ptrdiff_t Close[NSEXPS];
 } RxMatchRes;
 
 RxNode EDITPADC_CLASS *RxCompile(LPCTSTR Regexp, unsigned int RxOpt = RX_CASE);
-int EDITPADC_CLASS RxExec(RxNode *Regexp, LPCTSTR Data, int Len, LPCTSTR Start, RxMatchRes *Match);
+int EDITPADC_CLASS RxExec(RxNode *Regexp, LPCTSTR Data, size_t Len, LPCTSTR Start, RxMatchRes *Match);
 int EDITPADC_CLASS RxReplace(LPCTSTR rep, LPCTSTR Src, int len, RxMatchRes match, LPTSTR *Dest, int *Dlen);
 void EDITPADC_CLASS RxFree(RxNode *Node);
 
-#endif
index 4f3fd37..9423acb 100644 (file)
@@ -30,7 +30,7 @@ using Poco::RegularExpression;
 using Poco::UnicodeConverter;
 
 struct _RxNode {
-       std::auto_ptr<RegularExpression> regexp;
+       std::unique_ptr<RegularExpression> regexp;
 };
 
 RxNode *RxCompile(LPCTSTR Regexp, unsigned int RxOpt) {
@@ -73,7 +73,7 @@ void RxFree(RxNode *n) {
        }
 }
 
-int RxExec(RxNode *Regexp, LPCTSTR Data, int Len, LPCTSTR Start, RxMatchRes *Match) {
+int RxExec(RxNode *Regexp, LPCTSTR Data, size_t Len, LPCTSTR Start, RxMatchRes *Match) {
     if (Regexp == 0) return 0;
 
        int i;
@@ -82,7 +82,7 @@ int RxExec(RxNode *Regexp, LPCTSTR Data, int Len, LPCTSTR Start, RxMatchRes *Mat
        RegularExpression::MatchVec ovector;
        std::string compString;
 #ifdef UNICODE
-       int startoffset = ucr::Utf8len_of_string(Data, Start - Data);
+       size_t startoffset = ucr::Utf8len_of_string(Data, Start - Data);
        UnicodeConverter::toUTF8(Data, Len, compString);
 #else
        int startoffset = Start - Data;
@@ -117,9 +117,9 @@ int RxExec(RxNode *Regexp, LPCTSTR Data, int Len, LPCTSTR Start, RxMatchRes *Mat
 #define FLAG_UP_NEXT     4
 #define FLAG_DOWN_NEXT   8
 
-static int add(int *len, LPTSTR *s, LPCTSTR a, int alen, int &flag) {
-    int NewLen = *len + alen;
-    int i;
+static int add(size_t *len, LPTSTR *s, LPCTSTR a, size_t alen, int &flag) {
+    size_t NewLen = *len + alen;
+    size_t i;
 
     NewLen = NewLen * 2;
 
@@ -170,7 +170,7 @@ static int add(int *len, LPTSTR *s, LPCTSTR a, int alen, int &flag) {
 }
 
 int RxReplace(LPCTSTR rep, LPCTSTR Src, int /*len*/, RxMatchRes match, LPTSTR *Dest, int *Dlen) {
-    int dlen = 0;
+    size_t dlen = 0;
     LPTSTR dest = 0;
     TCHAR Ch;
     int n;
@@ -280,7 +280,8 @@ int RxReplace(LPCTSTR rep, LPCTSTR Src, int /*len*/, RxMatchRes match, LPTSTR *D
         }
     }
     //    add(&dlen, &dest, Src + match.Close[0], len - match.Close[0]);
-    *Dlen = dlen;
+       ASSERT(dlen < INT_MAX);
+    *Dlen = static_cast<int>(dlen);
     *Dest = dest;
     return 0;
 }
index 5f5f2ff..1d5085e 100644 (file)
@@ -22,16 +22,12 @@ CCrystalEditViewEx::CCrystalEditViewEx()
 
 HINSTANCE CCrystalEditViewEx::GetResourceHandle()
 {
-#ifdef CE_DLL_BUILD
-       return g_hDllInstance;
-#else
        // -> HE
        // call inherited
        return CCrystalEditView::GetResourceHandle();
        // <- HE
        // OLD
        //return AfxGetInstanceHandle();
-#endif
 }
 
 
index 4cb4891..1e335cc 100644 (file)
@@ -2,12 +2,7 @@
 //\r
 //////////////////////////////////////////////////////////////////////\r
 \r
-#if !defined(AFX_CRYSTALEDITVIEWEX_H__5353A214_1059_11D3_929E_CEFE4CA77E5E__INCLUDED_)\r
-#define AFX_CRYSTALEDITVIEWEX_H__5353A214_1059_11D3_929E_CEFE4CA77E5E__INCLUDED_\r
-\r
-#if _MSC_VER > 1000\r
 #pragma once\r
-#endif // _MSC_VER > 1000\r
 \r
 #include "ccrystaleditview.h"\r
 #include "crystalparser.h"\r
@@ -90,5 +85,3 @@ protected:
        */\r
        CCrystalParser *m_pSyntaxParser;\r
 };\r
-\r
-#endif // !defined(AFX_CRYSTALEDITVIEWEX_H__5353A214_1059_11D3_929E_CEFE4CA77E5E__INCLUDED_)\r
index 9427dc8..7d1635f 100644 (file)
 //     - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#if !defined(AFX_CRYSTALPARSER_H__17435DA0_1F72_11D3_929E_FD90DABF8479__INCLUDED_)
-#define AFX_CRYSTALPARSER_H__17435DA0_1F72_11D3_929E_FD90DABF8479__INCLUDED_
-
-#if _MSC_VER > 1000
 #pragma once
-#endif // _MSC_VER > 1000
 
 #include "crystaltextblock.h"
 
@@ -105,5 +100,3 @@ protected:
        CCrystalTextView *m_pTextView;
 
 };
-
-#endif // !defined(AFX_CRYSTALPARSER_H__17435DA0_1F72_11D3_929E_FD90DABF8479__INCLUDED_)
index 5a8da52..d995c20 100644 (file)
 //     - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#if !defined(AFX_CRYSTALTEXTBLOCK_H__37ECF0C1_145F_11D3_929E_444553540000__INCLUDED_)
-#define AFX_CRYSTALTEXTBLOCK_H__37ECF0C1_145F_11D3_929E_444553540000__INCLUDED_
-
-#if _MSC_VER > 1000
 #pragma once
-#endif // _MSC_VER > 1000
 
 /**
 Objects of this class are passed to CCrystalParser::ParseLine() to get the
@@ -67,5 +62,3 @@ protected:
        /** Index */
        int &m_rnActualItems;
 };
-
-#endif // !defined(AFX_CRYSTALTEXTBLOCK_H__37ECF0C1_145F_11D3_929E_444553540000__INCLUDED_)
index 0284a1b..28c804b 100644 (file)
@@ -61,15 +61,15 @@ str_fill (LPTSTR s, TCHAR ch, long count)
   *s = _T ('\0');
 }
 
-long
+ptrdiff_t
 str_pos (LPCTSTR whole, LPCTSTR piece)
 {
   LPCTSTR s = whole;
-  long l = _tcslen (piece);
+  size_t l = _tcslen (piece);
 
   while (*s)
     if (!_tcsnicmp (s++, piece, l))
-      return s - whole - 1;
+      return (s - whole - 1);
   return -2;
 }
 
@@ -107,12 +107,12 @@ skip_word (LPCTSTR s)
   return skip_spaces (s);
 }
 
-long
+ptrdiff_t
 get_coding (LPCTSTR name, type_codes *codes, int *coding)
 {
-  long i, pos;
+  size_t pos;
 
-  for (i = 0; i < codes_count; i++)
+  for (int i = 0; i < codes_count; i++)
     if ((pos = str_pos (name, codes[i].name)) >= 0)
       {
         *coding = i;
@@ -122,11 +122,12 @@ get_coding (LPCTSTR name, type_codes *codes, int *coding)
   return -2;
 }
 
-long
+
+ptrdiff_t
 fget_coding (LPCTSTR text, int *coding)
 {
-  long posit = 0;
-  long i = 0;
+  ptrdiff_t posit = 0;
+  ptrdiff_t i = 0;
   LPCTSTR s, s1;
 
   while ((i = str_pos (text, FD_ENCODING_LBRACKET)) >= 0)
@@ -179,7 +180,7 @@ TCHAR iconvert_char (TCHAR ch, int source_coding, int destination_coding, bool a
 int
 iconvert (LPTSTR string, int source_coding, int destination_coding, bool alphabet_only)
   {
-    long posit = -2, i, j;
+    ptrdiff_t posit = -2;
     LPCTSTR source_chars, destination_chars, cod_pos = NULL;
     TCHAR ch;
     LPTSTR s = string;
@@ -203,6 +204,7 @@ iconvert (LPTSTR string, int source_coding, int destination_coding, bool alphabe
     for (;;)
       if (cod_pos == s)
         {
+                 size_t i, j;
           i = _tcslen (source_codes[source_coding].name);
           j = _tcslen (destination_codes[destination_coding].name);
           if (i != j)
@@ -215,7 +217,7 @@ iconvert (LPTSTR string, int source_coding, int destination_coding, bool alphabe
           ch = *s;
           if (!ch)
             break;
-          i = chars_count;
+          int i = chars_count;
           if ((unsigned) ch > 127)
             for (i = 0; i < chars_count; i++)
               if (ch == source_chars[i])
@@ -233,11 +235,12 @@ iconvert (LPTSTR string, int source_coding, int destination_coding, bool alphabe
 int
 iconvert_new (LPCTSTR source, LPTSTR *destination, int source_coding, int destination_coding, bool alphabet_only)
   {
-    LPTSTR dest = (LPTSTR) malloc (_tcslen (source) + 1 + 10); /* reserved for MYCHARSET= replacement */
+       const size_t destSiz = _tcslen(source) + 1 + 10;
+    LPTSTR dest = static_cast<LPTSTR> (malloc (sizeof(TCHAR) * destSiz)); /* reserved for MYCHARSET= replacement */
     int result = -3;
     if (dest)
       {
-        _tcscpy (dest, source);
+        _tcscpy_s (dest, destSiz, source);
         result = iconvert (dest, source_coding, destination_coding, alphabet_only);
         if (!result)
           {
index ec94afb..6b1f676 100644 (file)
@@ -1,7 +1,6 @@
 /* Ferda Prantl - character coding conversion engine  */
 
-#ifndef __CS2CS_H__INCLUDED__
-#define __CS2CS_H__INCLUDED__
+#pragma once
 
 #define FD_CODE_ASCII      0
 #define FD_CODE_CP1250     1
@@ -56,4 +55,3 @@ TCHAR EDITPADC_CLASS iconvert_char (TCHAR ch, int source_coding, int destination
 int EDITPADC_CLASS iconvert (LPTSTR string, int source_coding, int destination_coding, bool alphabet_only);
 int EDITPADC_CLASS iconvert_new (LPCTSTR source, LPTSTR *destination, int source_coding, int destination_coding, bool alphabet_only);
 
-#endif // __CS2CS_H__INCLUDED__
index b775097..7a557f8 100644 (file)
@@ -23,8 +23,7 @@
 //        and maybe "ugly" code ...
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __EDITREG_H__INCLUDED__
-#define __EDITREG_H__INCLUDED__
+#pragma once
 
 //  Registry keys & values
 #define REG_EDITPAD         _T ("Software\\Thingamahoochie\\WinMerge\\Editor")
@@ -35,4 +34,3 @@
 #define MAX_REMEMBERED 100
 #define REMEMBERED_TO_REMOVE 10
 
-#endif // __EDITREG_H__INCLUDED__
index d1b1aa4..0c1094f 100644 (file)
@@ -1,10 +1,5 @@
-#ifndef __EDTLIB_H
-#define __EDTLIB_H
 
-#if _MSC_VER >= 1000
 #pragma once
-#endif // _MSC_VER >= 1000
-
 
 
 #include "crystalparser.h"
@@ -13,4 +8,3 @@
 #include "ccrystaleditview.h"
 #include "crystaleditviewex.h"
 
-#endif // __EDTLIB_H
index ca5b8e1..c7a5913 100644 (file)
 #include "StdAfx.h"
 #include "filesup.h"
 
-#ifdef  _DEBUG
-#include "filesup.inl"
-#endif // _DEBUG
-
-#ifdef INLINE
-#undef INLINE
-#endif
-#define INLINE
-
 ////////////////////////////////////////////////////////////////////////////////
 
 bool FileExist(LPCTSTR lpszPath)
@@ -34,8 +25,7 @@ bool FileExist(LPCTSTR lpszPath)
   return CFile::GetStatus(lpszPath, status) != 0;
 }
 
-INLINE int
-GetExtPosition (LPCTSTR pszString)
+int GetExtPosition (LPCTSTR pszString)
 {
   if (!pszString || !*pszString)
     return 0;
@@ -53,8 +43,7 @@ GetExtPosition (LPCTSTR pszString)
   return len;
 }
 
-INLINE CString
-GetExt (CString sString)
+CString GetExt (CString sString)
 {
   if (!sString.IsEmpty ())
     {
@@ -67,22 +56,19 @@ GetExt (CString sString)
   return sString;
 }
 
-INLINE CString
-GetName (const CString & sString)
+CString GetName (const CString & sString)
 {
   int nPosition = GetNamePosition (sString), nPosition2 = GetExtPosition (sString);
 
   return sString.IsEmpty ()? sString : (nPosition2 == sString.GetLength ()? sString.Mid (nPosition) : sString.Mid (nPosition, nPosition2 - nPosition));
 }
 
-INLINE CString
-GetNameExt (const CString & sString)
+CString GetNameExt (const CString & sString)
 {
   return sString.IsEmpty ()? sString : sString.Mid (GetNamePosition (sString));
 }
 
-INLINE int
-GetNamePosition (LPCTSTR pszString)
+int GetNamePosition (LPCTSTR pszString)
 {
   if (!pszString || !*pszString)
     return 0;
@@ -100,8 +86,7 @@ GetNamePosition (LPCTSTR pszString)
   return posit;
 }
 
-INLINE CString
-GetPath (const CString & sString, bool bClose /*= false*/ )
+CString GetPath (const CString & sString, bool bClose /*= false*/ )
 {
   if (sString.IsEmpty ())
     return sString;
@@ -120,8 +105,7 @@ GetPath (const CString & sString, bool bClose /*= false*/ )
   return sString.Left (bClose ? posit : test == _T (':') ? posit : posit - 1);
 }
 
-INLINE CString
-GetPathName (const CString & sString)
+CString GetPathName (const CString & sString)
 {
   int nPosition = GetExtPosition (sString);
 
index bee9e34..fe886e7 100644 (file)
@@ -14,8 +14,7 @@
 //  - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __FILESUP_H__INCLUDED__
-#define __FILESUP_H__INCLUDED__
+#pragma once
 
 /////////////////////////////////////////////////////////////////////////////
 
@@ -27,13 +26,3 @@ CString EDITPADC_CLASS GetNameExt (const CString & sString);
 int EDITPADC_CLASS GetNamePosition (LPCTSTR pszString);
 CString EDITPADC_CLASS GetPath (const CString & sString, bool bClose = false);
 CString EDITPADC_CLASS GetPathName (const CString & sString);
-
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef _DEBUG
-#include "filesup.inl"
-#endif // _DEBUG
-
-/////////////////////////////////////////////////////////////////////////////
-
-#endif // __FILESUP_H__INCLUDED__
diff --git a/Externals/crystaledit/editlib/filesup.inl b/Externals/crystaledit/editlib/filesup.inl
deleted file mode 100644 (file)
index 2033193..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-///////////////////////////////////////////////////////////////////////////
-//  File:    filesup.inl
-//  Version: 1.1.0.4
-//  Updated: 19-Jul-1998
-//
-//  Copyright:  Ferdinand Prantl, portions by Stcherbatchenko Andrei
-//  E-mail:     prantl@ff.cuni.cz
-//
-//  Some handy stuff to deal with files and their names
-//
-//  You are free to use or modify this code to the following restrictions:
-//  - Acknowledge me somewhere in your about box, simple "Parts of code by.."
-//  will be enough. If you can't (or don't want to), contact me personally.
-//  - LEAVE THIS HEADER INTACT
-////////////////////////////////////////////////////////////////////////////
-
-#ifndef __FILESUP_INL__INCLUDED__
-#define __FILESUP_INL__INCLUDED__
-
-////////////////////////////////////////////////////////////////////////////////
-
-#ifdef INLINE
-#undef INLINE
-#endif
-
-#ifndef _DEBUG
-#define INLINE inline
-#else
-#define INLINE
-#endif // _DEBUG
-
-////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////
-
-#endif // __FILESUP_INL__INCLUDED__
index 310426d..109d0de 100644 (file)
@@ -14,8 +14,7 @@
 //  - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __FPATTERN_H__INCLUDED__
-#define __FPATTERN_H__INCLUDED__
+#pragma once
 
 /******************************************************************************
  * fpattern.h
@@ -145,4 +144,3 @@ int EDITPADC_CLASS fpattern_isvalid (LPCTSTR pat);
 int EDITPADC_CLASS fpattern_match (LPCTSTR pat, LPCTSTR fname);
 int EDITPADC_CLASS fpattern_matchn (LPCTSTR pat, LPCTSTR fname);
 
-#endif // __FPATTERN_H__INCLUDED__
index 303a995..bbffed1 100644 (file)
 //  - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __GOTODLG_H__INCLUDED__
-#define __GOTODLG_H__INCLUDED__
 
-#if _MSC_VER >= 1000
 #pragma once
-#endif // _MSC_VER >= 1000
 
 #include "editcmd.h"
 
@@ -64,7 +60,3 @@ protected :
     DECLARE_MESSAGE_MAP ()
   };
 
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // __GOTODLG_H__INCLUDED__
index b227b20..1ae4945 100644 (file)
 
 #define REMEMBER_COUNT  64
 
-#ifdef  _DEBUG
-#include "memcombo.inl"
-#endif // _DEBUG
-
-#ifdef INLINE
-#undef INLINE
-#endif
-#define INLINE
-
 /////////////////////////////////////////////////////////////////////////////
 // CMemComboBox
 
@@ -43,6 +34,17 @@ ON_CONTROL_REFLECT (CBN_SETFOCUS, OnSetfocus)
 //}}AFX_MSG_MAP
 END_MESSAGE_MAP ()
 
+////////////////////////////////////////////////////////////////////////////////
+// Methods
+
+CMemComboBox::CMemComboBox () : m_bFirstFocus (true)
+{
+}
+
+CMemComboBox::~CMemComboBox ()
+{
+}
+
 /////////////////////////////////////////////////////////////////////////////
 // CMemComboBox message handlers
 
@@ -85,7 +87,7 @@ void SetComboBoxWidth(CComboBox &Control, LPCTSTR lpszText = NULL)
   info.lfMenuFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
   info.lfMenuFont.lfQuality = DEFAULT_QUALITY;
   info.lfMenuFont.lfPitchAndFamily = FF_SWISS;
-  _tcscpy(info.lfMenuFont.lfFaceName, _T("MS Sans Serif"));
+  _tcscpy_s(info.lfMenuFont.lfFaceName, _T("MS Sans Serif"));
   oFont.CreateFontIndirect(&info.lfMenuFont);
   oldFont = dc.SelectObject(&oFont);
   if(lpszText && *lpszText) {
index 7c5f18b..80d9b6e 100644 (file)
@@ -14,8 +14,7 @@
 //  - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __MEMCOMBO_H__INCLUDED__
-#define __MEMCOMBO_H__INCLUDED__
+#pragma once
 
 ////////////////////////////////////////////////////////////////////////////////
 // Includes
@@ -67,13 +66,3 @@ public :
 
     DECLARE_MESSAGE_MAP ()
   };
-
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef _DEBUG
-#include "memcombo.inl"
-#endif // _DEBUG
-
-/////////////////////////////////////////////////////////////////////////////
-
-#endif // __MEMCOMBO_H__INCLUDED__
diff --git a/Externals/crystaledit/editlib/memcombo.inl b/Externals/crystaledit/editlib/memcombo.inl
deleted file mode 100644 (file)
index 3560f8e..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-///////////////////////////////////////////////////////////////////////////
-//  File:    memcombo.inl
-//  Version: 1.1.0.4
-//  Updated: 19-Jul-1998
-//
-//  Copyright:  Ferdinand Prantl
-//  E-mail:     prantl@ff.cuni.cz
-//
-//  Combo-box saving last typed expressions
-//
-//  You are free to use or modify this code to the following restrictions:
-//  - Acknowledge me somewhere in your about box, simple "Parts of code by.."
-//  will be enough. If you can't (or don't want to), contact me personally.
-//  - LEAVE THIS HEADER INTACT
-////////////////////////////////////////////////////////////////////////////
-
-#ifndef __MEMCOMBO_INL__INCLUDED__
-#define __MEMCOMBO_INL__INCLUDED__
-
-#ifdef INLINE
-#undef INLINE
-#endif
-
-#ifndef _DEBUG
-#define INLINE inline
-#else
-#define INLINE
-#endif // _DEBUG
-
-////////////////////////////////////////////////////////////////////////////////
-// Methods
-
-INLINE
-CMemComboBox::CMemComboBox () : m_bFirstFocus (true)
-{
-}
-
-INLINE
-CMemComboBox::~CMemComboBox ()
-{
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-#endif // __MEMCOMBO_INL__INCLUDED__
index e49a853..68b5335 100644 (file)
@@ -26,7 +26,6 @@
 #define new DEBUG_NEW
 #endif
 
-#pragma warning ( disable : 4711 )
 /*////////////////////////////////////////////////////////////////////////////*/
 
 /* initializes registry value data */
@@ -143,34 +142,34 @@ RegValGetStringArr (const RegVal *pValData, LPTSTR pszStrings[], DWORD dwCount)
   ASSERT (pValData);
   if (pValData->dwType == REG_MULTI_SZ)
     {
-      LPCTSTR pszString;
+      LPCTSTR pszString0;
       DWORD dwRealCount = 0, dwLength;
-      for (pszString = pValData->pszString; *pszString; pszString += dwLength)
+      for (pszString0 = pValData->pszString; *pszString0; pszString0 += dwLength)
         {
-          dwLength = (DWORD) _tcslen (pszString) + 1;
+          dwLength = (DWORD) _tcslen (pszString0) + 1;
           dwRealCount++;
         }
       if (dwCount >= dwRealCount)
         {
           LPTSTR *pszDstString = pszStrings;
-          for (LPCTSTR pszString = pValData->pszString; *pszString; pszString += dwLength, pszDstString++)
+          for (LPCTSTR pszString1 = pValData->pszString; *pszString1; pszString1 += dwLength, pszDstString++)
             {
-              dwLength = (DWORD) _tcslen (pszString) + 1;
+              dwLength = (DWORD) _tcslen (pszString1) + 1;
               LPTSTR pszNewString = (LPTSTR) malloc (dwLength);
               *pszDstString = pszNewString;
               if (pszNewString)
                 {
-                  while ((*pszNewString = (BYTE) *pszString) != _T ('\0'))
+                  while ((*pszNewString = (BYTE) *pszString1) != _T ('\0'))
                     {
                       pszNewString++;
-                      pszString++;
+                      pszString1++;
                     }
                 }
               else
                 {
-                  while (*pszString)
+                  while (*pszString1)
                     {
-                      pszString++;
+                      pszString1++;
                     }
                 }
             }
@@ -1457,4 +1456,3 @@ void CReg::FindClose ()
 #endif /* cplusplus */
 
 /*////////////////////////////////////////////////////////////////////////////*/
-#pragma warning ( default : 4711 )
index e023dcd..5873f42 100644 (file)
@@ -14,8 +14,7 @@
 //  - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __REGISTRY_H__INCLUDED__
-#define __REGISTRY_H__INCLUDED__
+#pragma once
 
 /*////////////////////////////////////////////////////////////////////////////*/
 
@@ -405,7 +404,3 @@ struct EDITPADC_CLASS CReg
 #endif /* cplusplus */
 
 bool EDITPADC_CLASS RegDeleteSubKeys (HKEY hKey);
-
-/*////////////////////////////////////////////////////////////////////////////*/
-
-#endif /* __REGISTRY_H__INCLUDED__ */
index a85b214..6bed138 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef __SPLASH_H__INCLUDED__
-#define __SPLASH_H__INCLUDED__
+
+#pragma once
 
 /////////////////////////////////////////////////////////////////////////////
 // CBigIcon window
@@ -51,5 +51,3 @@ protected:
 };
 
 /////////////////////////////////////////////////////////////////////////////
-
-#endif // __SPLASH_H__INCLUDED__
index dc08f38..d608f4d 100644 (file)
@@ -44,7 +44,7 @@ SetPaneFormattedText (int nIndex, BOOL bUpdate, LPCTSTR lpszFmt,...)
   TCHAR buffer[256];
   va_list argptr;
   va_start (argptr, lpszFmt);
-  _vsntprintf (buffer, sizeof(buffer)/sizeof(buffer[0]), lpszFmt, argptr);
+  _vsntprintf_s (buffer, _TRUNCATE, lpszFmt, argptr);
   va_end (argptr);
   BOOL bResult = SetPaneText (nIndex, buffer, bUpdate);
   UpdateWindow ();
index 05365d4..f4eb731 100644 (file)
@@ -14,8 +14,7 @@
 //  - LEAVE THIS HEADER INTACT
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef __STATBAR_H__INCLUDED__
-#define __STATBAR_H__INCLUDED__
+#pragma once
 
 class EDITPADC_CLASS CEditStatusBar : public CStatusBar
   {
@@ -49,5 +48,3 @@ public :
 
     DECLARE_MESSAGE_MAP ()
   };
-
-#endif // __STATBAR_H__INCLUDED__
index 7b262e1..54b6eb7 100644 (file)
@@ -6,8 +6,7 @@
 // ID line follows -- this is updated by SVN
 // $Id$
 
-#ifndef _STRING_UTIL_H_
-#define _STRING_UTIL_H_
+#pragma once
 
 #define ISXKEYWORD(keywordlist, key, keylen) IsXKeyword(key, keylen, keywordlist, sizeof(keywordlist)/sizeof(keywordlist[0]), _tcsncmp)
 #define ISXKEYWORDI(keywordlist, key, keylen) IsXKeyword(key, keylen, keywordlist, sizeof(keywordlist)/sizeof(keywordlist[0]), _tcsnicmp)
@@ -18,5 +17,3 @@ int xisalpha(wint_t c);
 int xisalnum(wint_t c);
 int xisspace(wint_t c);
 bool IsXKeyword(LPCTSTR pszKey, size_t nKeyLen, LPCTSTR pszKeywordList[], size_t nKeywordListCount, int (*compare)(LPCTSTR, LPCTSTR, size_t));
-
-#endif // _STRING_UTIL_H_
index 968e362..8bd69a7 100644 (file)
@@ -7,8 +7,7 @@
  *  defined with this macro as being exported.
  */
 
-#ifndef __WISPELLD_H__
-#define __WISPELLD_H__
+#pragma once
 
 /*#ifdef WISPELL_EXPORTS
 #define WISPELL_API __declspec (dllexport)
@@ -60,5 +59,3 @@ typedef struct SpellData_t
 /* WISPELL_API int SpellInit (SpellData*); */   /* initializes the control structure */
 /* WISPELL_API int SpellCheck (SpellData*); */  /* performs spell checking (the dialog may appear) */
 /* WISPELL_API int SpellConfig (SpellData*); */ /* performs spell checking configuration (the dialog appears) */
-
-#endif /* __WISPELLD_H__ */
index 03797cb..a521b4c 100644 (file)
@@ -1,3 +1,17 @@
-for %%i in (freeimage frhed patch sevenzip winimerge) do (\r
-  hg clone https://bitbucket.org/sdottaka/%%i\r
+set urls_revs=^\r
+  https://bitbucket.org/winmerge/freeimage!05e4e65 ^\r
+  https://bitbucket.org/winmerge/winimerge!1.0.7.0 ^\r
+  https://bitbucket.org/winmerge/sevenzip!1510f74 ^\r
+  https://bitbucket.org/winmerge/frhed!d00b64b ^\r
+  https://bitbucket.org/winmerge/patch!b0a7238\r
+\r
+pushd "%~dp0"\r
+for %%i in (%urls_revs%) do (\r
+  for /F "tokens=1,2 delims=!" %%j in ("%%i") do (\r
+    if not exist %%~nj\.hg hg clone %%j\r
+    pushd %%~nj\r
+    hg pull -u -r %%k\r
+    popd\r
+  )\r
 )\r
+popd\r
index 34602fc..ccc70a8 100644 (file)
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>..\lib\PocoFoundationmtd.lib</OutputFile>
       <TargetMachine>MachineX86</TargetMachine>
       <SubSystem>Windows</SubSystem>
       <ProgramDataBaseFileName>..\lib64\PocoFoundationmtd.pdb</ProgramDataBaseFileName>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>..\lib64\PocoFoundationmtd.lib</OutputFile>
       <TargetMachine>MachineX64</TargetMachine>
       <SubSystem>Windows</SubSystem>
       <PreprocessKeepComments>false</PreprocessKeepComments>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>..\lib\PocoFoundationmt.lib</OutputFile>
       <TargetMachine>MachineX86</TargetMachine>
       <SubSystem>Windows</SubSystem>
       <PreprocessKeepComments>false</PreprocessKeepComments>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>..\lib64\PocoFoundationmt.lib</OutputFile>
       <TargetMachine>MachineX64</TargetMachine>
       <SubSystem>Windows</SubSystem>
     <ClCompile Include="src\Ascii.cpp" />
     <ClCompile Include="src\AtomicCounter.cpp" />
     <ClCompile Include="src\Bugcheck.cpp" />
-    <ClCompile Include="src\ByteOrder.cpp" />
     <ClCompile Include="src\Checksum.cpp" />
     <ClCompile Include="src\Debugger.cpp" />
     <ClCompile Include="src\DynamicAny.cpp" />
     <ClCompile Include="src\NumberFormatter.cpp" />
     <ClCompile Include="src\NumberParser.cpp" />
     <ClCompile Include="src\RefCountedObject.cpp" />
-    <ClCompile Include="src\String.cpp" />
     <ClCompile Include="src\StringTokenizer.cpp" />
     <ClCompile Include="src\Void.cpp" />
     <ClCompile Include="src\Base64Decoder.cpp" />
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="src\SignalHandler.cpp" />
     <ClCompile Include="src\SynchronizedObject.cpp" />
     <ClCompile Include="src\Thread.cpp" />
     <ClCompile Include="src\Thread_POSIX.cpp">
index b0bd99f..3771613 100644 (file)
     <ClCompile Include="src\Bugcheck.cpp">
       <Filter>Core\Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\ByteOrder.cpp">
-      <Filter>Core\Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\Checksum.cpp">
       <Filter>Core\Source Files</Filter>
     </ClCompile>
     <ClCompile Include="src\RefCountedObject.cpp">
       <Filter>Core\Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\String.cpp">
-      <Filter>Core\Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\StringTokenizer.cpp">
       <Filter>Core\Source Files</Filter>
     </ClCompile>
     <ClCompile Include="src\Semaphore_WIN32.cpp">
       <Filter>Threading\Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\SignalHandler.cpp">
-      <Filter>Threading\Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\SynchronizedObject.cpp">
       <Filter>Threading\Source Files</Filter>
     </ClCompile>
index baea43e..1540553 100644 (file)
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>..\lib\PocoFoundationmtd.lib</OutputFile>
       <TargetMachine>MachineX86</TargetMachine>
       <SubSystem>Windows</SubSystem>
       <ProgramDataBaseFileName>..\lib64\PocoFoundationmtd.pdb</ProgramDataBaseFileName>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>..\lib64\PocoFoundationmtd.lib</OutputFile>
       <TargetMachine>MachineX64</TargetMachine>
       <SubSystem>Windows</SubSystem>
       <PreprocessKeepComments>false</PreprocessKeepComments>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>..\lib\PocoFoundationmt.lib</OutputFile>
       <TargetMachine>MachineX86</TargetMachine>
       <SubSystem>Windows</SubSystem>
       <PreprocessKeepComments>false</PreprocessKeepComments>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>..\lib64\PocoFoundationmt.lib</OutputFile>
       <TargetMachine>MachineX64</TargetMachine>
       <SubSystem>Windows</SubSystem>
     <ClCompile Include="src\Ascii.cpp" />
     <ClCompile Include="src\AtomicCounter.cpp" />
     <ClCompile Include="src\Bugcheck.cpp" />
-    <ClCompile Include="src\ByteOrder.cpp" />
     <ClCompile Include="src\Checksum.cpp" />
     <ClCompile Include="src\Debugger.cpp" />
     <ClCompile Include="src\DynamicAny.cpp" />
     <ClCompile Include="src\NumberFormatter.cpp" />
     <ClCompile Include="src\NumberParser.cpp" />
     <ClCompile Include="src\RefCountedObject.cpp" />
-    <ClCompile Include="src\String.cpp" />
     <ClCompile Include="src\StringTokenizer.cpp" />
     <ClCompile Include="src\Void.cpp" />
     <ClCompile Include="src\Base64Decoder.cpp" />
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="src\SignalHandler.cpp" />
     <ClCompile Include="src\SynchronizedObject.cpp" />
     <ClCompile Include="src\Thread.cpp" />
     <ClCompile Include="src\Thread_POSIX.cpp">
index b0bd99f..3771613 100644 (file)
     <ClCompile Include="src\Bugcheck.cpp">
       <Filter>Core\Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\ByteOrder.cpp">
-      <Filter>Core\Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\Checksum.cpp">
       <Filter>Core\Source Files</Filter>
     </ClCompile>
     <ClCompile Include="src\RefCountedObject.cpp">
       <Filter>Core\Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\String.cpp">
-      <Filter>Core\Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\StringTokenizer.cpp">
       <Filter>Core\Source Files</Filter>
     </ClCompile>
     <ClCompile Include="src\Semaphore_WIN32.cpp">
       <Filter>Threading\Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\SignalHandler.cpp">
-      <Filter>Threading\Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\SynchronizedObject.cpp">
       <Filter>Threading\Source Files</Filter>
     </ClCompile>
index 260d33f..57ecdd4 100644 (file)
@@ -109,7 +109,7 @@ public:
 
                FastMutex::ScopedLock lock(_mutex);
 
-               std::auto_ptr<AbstractFactory> ptr(pAbstractFactory);
+               std::unique_ptr<AbstractFactory> ptr(pAbstractFactory);
                typename FactoryMap::iterator it = _map.find(className);
                if (it == _map.end())
                        _map[className] = ptr.release();
index 671b0c3..c37d091 100644 (file)
@@ -56,7 +56,7 @@ class Foundation_API NumberFormatter
        ///    * append* functions append the formatted value to
        ///      an existing string.
        ///
-       /// Internally, std::sprintf() is used to do the actual
+       /// Internally, ::sprintf_s() is used to do the actual
        /// formatting.
 {
 public:
index 58c9a7a..06164a3 100644 (file)
 
 
 // Turn off some annoying warnings
-#if defined(_MSC_VER)
-       #pragma warning(disable:4018) // signed/unsigned comparison
-       #pragma warning(disable:4251) // ... needs to have dll-interface warning 
-       #pragma warning(disable:4355) // 'this' : used in base member initializer list
-       #pragma warning(disable:4996) // VC++ 8.0 deprecation warnings
-       #pragma warning(disable:4351) // new behavior: elements of array '...' will be default initialized
-       #pragma warning(disable:4675) // resolved overload was found by argument-dependent lookup
-       #pragma warning(disable:4275) // non dll-interface class 'std::exception' used as base for dll-interface class 'Poco::Exception'
-#endif
-
-
 #if defined(__INTEL_COMPILER)
        #pragma warning(disable:1738) // base class dllexport/dllimport specification differs from that of the derived class
        #pragma warning(disable:1478) // function ... was declared "deprecated"
index 2b48d56..e0b516f 100644 (file)
@@ -55,12 +55,12 @@ class ScopedLock
        /// The destructor unlocks the mutex.
 {
 public:
-       explicit ScopedLock(M& mutex): _mutex(mutex)
+       explicit ScopedLock(M& rmutex): _mutex(rmutex)
        {
                _mutex.lock();
        }
        
-       ScopedLock(M& mutex, long milliseconds): _mutex(mutex)
+       ScopedLock(M& rmutex, long milliseconds): _mutex(rmutex)
        {
                _mutex.lock(milliseconds);
        }
index c3d08b4..b9e3fa8 100644 (file)
@@ -98,7 +98,7 @@ private:
        std::string _name;
        HANDLE  _memHandle;
        HANDLE  _fileHandle;
-       DWORD   _size;
+       LONGLONG  _size;
        DWORD   _mode;
        char*   _address;
 };
index e2377d6..5c31de3 100644 (file)
@@ -58,7 +58,7 @@ public:
        static void toUTF16(const std::string& utf8String, std::wstring& utf16String);
                /// Converts the given UTF-8 encoded string into an UTF-16 encoded wstring.
 
-       static void toUTF16(const char* utf8String, int length, std::wstring& utf16String);     
+       static void toUTF16(const char* utf8String, size_t length, std::wstring& utf16String);  
                /// Converts the given UTF-8 encoded character sequence into an UTF-16 encoded string.
 
        static void toUTF16(const char* utf8String, std::wstring& utf16String); 
@@ -67,7 +67,7 @@ public:
        static void toUTF8(const std::wstring& utf16String, std::string& utf8String);
                /// Converts the given UTF-16 encoded wstring into an UTF-8 encoded string.
 
-       static void toUTF8(const wchar_t* utf16String, int length, std::string& utf8String);
+       static void toUTF8(const wchar_t* utf16String, size_t length, std::string& utf8String);
                /// Converts the given zero-terminated UTF-16 encoded wide character sequence into an UTF-8 encoded wstring.
 
        static void toUTF8(const wchar_t* utf16String, std::string& utf8String);
index b9119c9..ca984b1 100644 (file)
@@ -122,7 +122,7 @@ std::string Environment::nodeId()
        NodeId id;
        nodeId(id);
        char result[18];
-       std::sprintf(result, "%02x:%02x:%02x:%02x:%02x:%02x",
+       ::sprintf_s(result, "%02x:%02x:%02x:%02x:%02x:%02x",
                id[0],
                id[1],
                id[2],
index 5105b68..bdf653c 100644 (file)
@@ -288,9 +288,9 @@ std::wstring EventLogChannel::findLibrary(const wchar_t* name)
        HMODULE dll = LoadLibraryW(name);
        if (dll)
        {
-               wchar_t name[MAX_PATH + 1];
-               int n = GetModuleFileNameW(dll, name, sizeof(name));
-               if (n > 0) path = name;
+               wchar_t name1[MAX_PATH + 1];
+               int n = GetModuleFileNameW(dll, name1, sizeof(name1));
+               if (n > 0) path = name1;
                FreeLibrary(dll);
        }
        return path;
index cd31bea..e17a311 100644 (file)
@@ -42,7 +42,7 @@ namespace Poco {
 
 FPEnvironmentImpl::FPEnvironmentImpl()
 {
-       _env = _controlfp(0, 0);
+        ::_controlfp_s(&_env, 0, 0);
 }
 
 
@@ -54,7 +54,7 @@ FPEnvironmentImpl::FPEnvironmentImpl(const FPEnvironmentImpl& env)
 
 FPEnvironmentImpl::~FPEnvironmentImpl()
 {
-       _controlfp(_env, MCW_RC);
+       ::_controlfp_s(&_env, _env, MCW_RC);
 }
 
 
@@ -67,7 +67,7 @@ FPEnvironmentImpl& FPEnvironmentImpl::operator = (const FPEnvironmentImpl& env)
 
 void FPEnvironmentImpl::keepCurrentImpl()
 {
-       _env = _controlfp(0, 0);
+       ::_controlfp_s(&_env, 0, 0);
 }
 
 
@@ -85,13 +85,15 @@ bool FPEnvironmentImpl::isFlagImpl(FlagImpl flag)
 
 void FPEnvironmentImpl::setRoundingModeImpl(RoundingModeImpl mode)
 {
-       _controlfp(mode, MCW_RC);
+       unsigned _env;
+       ::_controlfp_s(&_env, mode, MCW_RC);
 }
 
 
 FPEnvironmentImpl::RoundingModeImpl FPEnvironmentImpl::getRoundingModeImpl()
 {
-       return RoundingModeImpl(_controlfp(0, 0) & MCW_RC);
+       unsigned _env;
+       return RoundingModeImpl(::_controlfp_s(&_env, 0, 0) & MCW_RC);
 }
 
 
index 2a430c0..f024bfe 100644 (file)
@@ -68,7 +68,7 @@ std::string HashStatistic::toString() const
        str << "  MaxEntry: " << _maxEntriesPerHash << "\n";
        str << "  AvgEntry: " << avgEntriesPerHash() << ", excl Zero slots: " << avgEntriesPerHashExclZeroEntries() << "\n";
        str << "  DetailedStatistics: \n";
-       for (int i = 0; i < _detailedEntriesPerHash.size(); ++i)
+       for (size_t i = 0; i < _detailedEntriesPerHash.size(); ++i)
        {
                // 10 entries per line
                if (i % 10 == 0)
index ca1fe5c..7c82e6a 100644 (file)
@@ -285,11 +285,13 @@ void LocalDateTime::determineTzd(bool adjust)
 #if defined(_WIN32) || defined(POCO_NO_POSIX_TSF)
 #if defined(_WIN32_WCE)
                std::tm* broken = wceex_localtime(&epochTime);
+               if (!broken) throw Poco::SystemException("cannot get local time");
 #else
-               std::tm* broken = std::localtime(&epochTime);
+               std::tm broken;
+               if (::localtime_s(&broken, &epochTime) != 0)
+                       throw Poco::SystemException("cannot get local time");
 #endif
-               if (!broken) throw Poco::SystemException("cannot get local time");
-               _tzd = (Timezone::utcOffset() + ((broken->tm_isdst == 1) ? 3600 : 0));
+               _tzd = (Timezone::utcOffset() + ((broken.tm_isdst == 1) ? 3600 : 0));
 #else
                std::tm broken;
 #if defined(POCO_VXWORKS)
index 6037bf9..e0ba533 100644 (file)
@@ -273,13 +273,13 @@ void Logger::formatDump(std::string& message, const void* buffer, std::size_t le
        message.reserve(message.size() + length*6);
        if (!message.empty()) message.append("\n");
        unsigned char* base = (unsigned char*) buffer;
-       int addr = 0;
+       size_t addr = 0;
        while (addr < length)
        {
                if (addr > 0) message.append("\n");
                message.append(NumberFormatter::formatHex(addr, 4));
                message.append("  ");
-               int offset = 0;
+               ptrdiff_t offset = 0;
                while (addr + offset < length && offset < BYTES_PER_LINE)
                {
                        message.append(NumberFormatter::formatHex(base[addr + offset], 2));
index 1b2c9c9..acb6177 100644 (file)
@@ -58,7 +58,7 @@ namespace Poco {
 void NumberFormatter::append(std::string& str, int value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%d", value);
+       ::sprintf_s(buffer, "%d", value);
        str.append(buffer);
 }
 
@@ -68,7 +68,7 @@ void NumberFormatter::append(std::string& str, int value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%*d", width, value);
+       ::sprintf_s(buffer, "%*d", width, value);
        str.append(buffer);
 }
 
@@ -78,7 +78,7 @@ void NumberFormatter::append0(std::string& str, int value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*d", width, value);
+       ::sprintf_s(buffer, "%0*d", width, value);
        str.append(buffer);
 }
 
@@ -86,7 +86,7 @@ void NumberFormatter::append0(std::string& str, int value, int width)
 void NumberFormatter::appendHex(std::string& str, int value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%X", value);
+       ::sprintf_s(buffer, "%X", value);
        str.append(buffer);
 }
 
@@ -96,7 +96,7 @@ void NumberFormatter::appendHex(std::string& str, int value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*X", width, value);
+       ::sprintf_s(buffer, "%0*X", width, value);
        str.append(buffer);
 }
 
@@ -104,7 +104,7 @@ void NumberFormatter::appendHex(std::string& str, int value, int width)
 void NumberFormatter::append(std::string& str, unsigned value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%u", value);
+       ::sprintf_s(buffer, "%u", value);
        str.append(buffer);
 }
 
@@ -114,7 +114,7 @@ void NumberFormatter::append(std::string& str, unsigned value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%*u", width, value);
+       ::sprintf_s(buffer, "%*u", width, value);
        str.append(buffer);
 }
 
@@ -124,7 +124,7 @@ void NumberFormatter::append0(std::string& str, unsigned int value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*u", width, value);
+       ::sprintf_s(buffer, "%0*u", width, value);
        str.append(buffer);
 }
 
@@ -132,7 +132,7 @@ void NumberFormatter::append0(std::string& str, unsigned int value, int width)
 void NumberFormatter::appendHex(std::string& str, unsigned value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%X", value);
+       ::sprintf_s(buffer, "%X", value);
        str.append(buffer);
 }
 
@@ -142,7 +142,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*X", width, value);
+       ::sprintf_s(buffer, "%0*X", width, value);
        str.append(buffer);
 }
 
@@ -150,7 +150,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned value, int width)
 void NumberFormatter::append(std::string& str, long value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%ld", value);
+       ::sprintf_s(buffer, "%ld", value);
        str.append(buffer);
 }
 
@@ -160,7 +160,7 @@ void NumberFormatter::append(std::string& str, long value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%*ld", width, value);
+       ::sprintf_s(buffer, "%*ld", width, value);
        str.append(buffer);
 }
 
@@ -170,7 +170,7 @@ void NumberFormatter::append0(std::string& str, long value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*ld", width, value);
+       ::sprintf_s(buffer, "%0*ld", width, value);
        str.append(buffer);
 }
 
@@ -178,7 +178,7 @@ void NumberFormatter::append0(std::string& str, long value, int width)
 void NumberFormatter::appendHex(std::string& str, long value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%lX", value);
+       ::sprintf_s(buffer, "%lX", value);
        str.append(buffer);
 }
 
@@ -188,7 +188,7 @@ void NumberFormatter::appendHex(std::string& str, long value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*lX", width, value);
+       ::sprintf_s(buffer, "%0*lX", width, value);
        str.append(buffer);
 }
 
@@ -196,7 +196,7 @@ void NumberFormatter::appendHex(std::string& str, long value, int width)
 void NumberFormatter::append(std::string& str, unsigned long value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%lu", value);
+       ::sprintf_s(buffer, "%lu", value);
        str.append(buffer);
 }
 
@@ -206,7 +206,7 @@ void NumberFormatter::append(std::string& str, unsigned long value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%*lu", width, value);
+       ::sprintf_s(buffer, "%*lu", width, value);
        str.append(buffer);
 }
 
@@ -216,7 +216,7 @@ void NumberFormatter::append0(std::string& str, unsigned long value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*lu", width, value);
+       ::sprintf_s(buffer, "%0*lu", width, value);
        str.append(buffer);
 }
 
@@ -224,7 +224,7 @@ void NumberFormatter::append0(std::string& str, unsigned long value, int width)
 void NumberFormatter::appendHex(std::string& str, unsigned long value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%lX", value);
+       ::sprintf_s(buffer, "%lX", value);
        str.append(buffer);
 }
 
@@ -234,7 +234,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned long value, int width
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*lX", width, value);
+       ::sprintf_s(buffer, "%0*lX", width, value);
        str.append(buffer);
 }
 
@@ -245,7 +245,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned long value, int width
 void NumberFormatter::append(std::string& str, Int64 value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%" I64_FMT "d", value);
+       ::sprintf_s(buffer, "%" I64_FMT "d", value);
        str.append(buffer);
 }
 
@@ -255,7 +255,7 @@ void NumberFormatter::append(std::string& str, Int64 value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%*" I64_FMT "d", width, value);
+       ::sprintf_s(buffer, "%*" I64_FMT "d", width, value);
        str.append(buffer);
 }
 
@@ -265,7 +265,7 @@ void NumberFormatter::append0(std::string& str, Int64 value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*" I64_FMT "d", width, value);
+       ::sprintf_s(buffer, "%0*" I64_FMT "d", width, value);
        str.append(buffer);
 }
 
@@ -273,7 +273,7 @@ void NumberFormatter::append0(std::string& str, Int64 value, int width)
 void NumberFormatter::appendHex(std::string& str, Int64 value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%" I64_FMT "X", value);
+       ::sprintf_s(buffer, "%" I64_FMT "X", value);
        str.append(buffer);
 }
 
@@ -283,7 +283,7 @@ void NumberFormatter::appendHex(std::string& str, Int64 value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*" I64_FMT "X", width, value);
+       ::sprintf_s(buffer, "%0*" I64_FMT "X", width, value);
        str.append(buffer);
 }
 
@@ -291,7 +291,7 @@ void NumberFormatter::appendHex(std::string& str, Int64 value, int width)
 void NumberFormatter::append(std::string& str, UInt64 value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%" I64_FMT "u", value);
+       ::sprintf_s(buffer, "%" I64_FMT "u", value);
        str.append(buffer);
 }
 
@@ -301,7 +301,7 @@ void NumberFormatter::append(std::string& str, UInt64 value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%*" I64_FMT "u", width, value);
+       ::sprintf_s(buffer, "%*" I64_FMT "u", width, value);
        str.append(buffer);
 }
 
@@ -311,7 +311,7 @@ void NumberFormatter::append0(std::string& str, UInt64 value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*" I64_FMT "u", width, value);
+       ::sprintf_s(buffer, "%0*" I64_FMT "u", width, value);
        str.append(buffer);
 }
 
@@ -319,7 +319,7 @@ void NumberFormatter::append0(std::string& str, UInt64 value, int width)
 void NumberFormatter::appendHex(std::string& str, UInt64 value)
 {
        char buffer[64];
-       std::sprintf(buffer, "%" I64_FMT "X", value);
+       ::sprintf_s(buffer, "%" I64_FMT "X", value);
        str.append(buffer);
 }
 
@@ -329,7 +329,7 @@ void NumberFormatter::appendHex(std::string& str, UInt64 value, int width)
        poco_assert (width > 0 && width < 64);
 
        char buffer[64];
-       std::sprintf(buffer, "%0*" I64_FMT "X", width, value);
+       ::sprintf_s(buffer, "%0*" I64_FMT "X", width, value);
        str.append(buffer);
 }
 
@@ -394,12 +394,12 @@ void NumberFormatter::append(std::string& str, const void* ptr)
        char buffer[24];
 #if defined(POCO_PTR_IS_64_BIT)
        #if defined(POCO_LONG_IS_64_BIT)
-               std::sprintf(buffer, "%016lX", (UIntPtr) ptr);
+               ::sprintf_s(buffer, "%016lX", (UIntPtr) ptr);
        #else
-               std::sprintf(buffer, "%016" I64_FMT "X", (UIntPtr) ptr);
+               ::sprintf_s(buffer, "%016" I64_FMT "X", (UIntPtr) ptr);
        #endif
 #else
-       std::sprintf(buffer, "%08lX", (UIntPtr) ptr);
+       ::sprintf_s(buffer, "%08lX", (UIntPtr) ptr);
 #endif
        str.append(buffer);
 }
index 3346dd9..3ba4a2a 100644 (file)
@@ -70,7 +70,7 @@ int NumberParser::parse(const std::string& s)
 bool NumberParser::tryParse(const std::string& s, int& value)
 {
        char temp;
-       return std::sscanf(s.c_str(), "%d%c", &value, &temp) == 1;
+       return ::sscanf_s(s.c_str(), "%d%c", &value, &temp, 1U) == 1;
 }
 
 
@@ -87,7 +87,7 @@ unsigned NumberParser::parseUnsigned(const std::string& s)
 bool NumberParser::tryParseUnsigned(const std::string& s, unsigned& value)
 {
        char temp;
-       return std::sscanf(s.c_str(), "%u%c", &value, &temp) == 1;
+       return ::sscanf_s(s.c_str(), "%u%c", &value, &temp, 1U) == 1;
 }
 
 
@@ -104,7 +104,7 @@ unsigned NumberParser::parseHex(const std::string& s)
 bool NumberParser::tryParseHex(const std::string& s, unsigned& value)
 {
        char temp;
-       return std::sscanf(s.c_str(), "%x%c", &value, &temp) == 1;
+       return ::sscanf_s(s.c_str(), "%x%c", &value, &temp, 1U) == 1;
 }
 
 
@@ -124,7 +124,7 @@ Int64 NumberParser::parse64(const std::string& s)
 bool NumberParser::tryParse64(const std::string& s, Int64& value)
 {
        char temp;
-       return std::sscanf(s.c_str(), "%" I64_FMT "d%c", &value, &temp) == 1;
+       return ::sscanf_s(s.c_str(), "%" I64_FMT "d%c", &value, &temp, 1U) == 1;
 }
 
 
@@ -141,7 +141,7 @@ UInt64 NumberParser::parseUnsigned64(const std::string& s)
 bool NumberParser::tryParseUnsigned64(const std::string& s, UInt64& value)
 {
        char temp;
-       return std::sscanf(s.c_str(), "%" I64_FMT "u%c", &value, &temp) == 1;
+       return ::sscanf_s(s.c_str(), "%" I64_FMT "u%c", &value, &temp, 1U) == 1;
 }
 
 
@@ -158,7 +158,7 @@ UInt64 NumberParser::parseHex64(const std::string& s)
 bool NumberParser::tryParseHex64(const std::string& s, UInt64& value)
 {
        char temp;
-       return std::sscanf(s.c_str(), "%" I64_FMT "x%c", &value, &temp) == 1;
+       return ::sscanf_s(s.c_str(), "%" I64_FMT "x%c", &value, &temp, 1U) == 1;
 }
 
 
index acc19df..79acef7 100644 (file)
@@ -472,9 +472,9 @@ Path& Path::setDevice(const std::string& device)
        
 const std::string& Path::directory(int n) const
 {
-       poco_assert (0 <= n && n <= _dirs.size());
+       poco_assert (0 <= n && n <= (int)_dirs.size());
        
-       if (n < _dirs.size())
+       if (n < static_cast<int>(_dirs.size()))
                return _dirs[n];
        else
                return _name;   
@@ -483,9 +483,9 @@ const std::string& Path::directory(int n) const
 
 const std::string& Path::operator [] (int n) const
 {
-       poco_assert (0 <= n && n <= _dirs.size());
+       poco_assert (0 <= n && n <= (int)_dirs.size());
        
-       if (n < _dirs.size())
+       if (n < static_cast<int>(_dirs.size()))
                return _dirs[n];
        else
                return _name;   
@@ -865,7 +865,7 @@ void Path::parseVMS(const std::string& path)
                                                                {
                                                                        if (name == "-")
                                                                        {
-                                                                               if (_dirs.size() > d)
+                                                                               if (static_cast<int>(_dirs.size()) > d)
                                                                                        _dirs.pop_back();
                                                                        }
                                                                        else _dirs.push_back(name);
index 86fe86e..e90fddd 100644 (file)
@@ -128,7 +128,7 @@ void PurgeByCountStrategy::purge(const std::string& path)
 {
        std::vector<File> files;
        list(path, files);
-       while (files.size() > _count)
+       while (static_cast<int>(files.size()) > _count)
        {
                std::vector<File>::iterator it = files.begin();
                std::vector<File>::iterator purgeIt = it;
index 5ff18e3..de2d120 100644 (file)
@@ -50,10 +50,12 @@ SharedMemoryImpl::SharedMemoryImpl(const std::string& name, std::size_t size, Sh
        _name(name),
        _memHandle(INVALID_HANDLE_VALUE),
        _fileHandle(INVALID_HANDLE_VALUE),
-       _size(static_cast<DWORD>(size)),
+       _size(size),
        _mode(PAGE_READONLY),
        _address(0)
 {
+       LARGE_INTEGER mySize;
+       mySize.QuadPart = _size;
        if (mode == SharedMemory::AM_WRITE)
                _mode = PAGE_READWRITE;
 
index fda9cc9..6793c4e 100644 (file)
@@ -133,10 +133,10 @@ int StreamConverterBuf::writeToDevice(char c)
                                ++_errors;
                                return -1;
                        }
-                       int n = _outEncoding.convert(uc, _buffer, sizeof(_buffer));
-                       if (n == 0) n = _outEncoding.convert(_defaultChar, _buffer, sizeof(_buffer));
-                       poco_assert_dbg (n <= sizeof(_buffer));
-                       _pOstr->write((char*) _buffer, n);
+                       int n1 = _outEncoding.convert(uc, _buffer, sizeof(_buffer));
+                       if (n1 == 0) n1 = _outEncoding.convert(_defaultChar, _buffer, sizeof(_buffer));
+                       poco_assert_dbg (n1 <= sizeof(_buffer));
+                       _pOstr->write((char*) _buffer, n1);
                        _sequenceLength = 0;
                        _pos = 0;
                }
index b15b28f..0f1b354 100644 (file)
@@ -409,7 +409,7 @@ void ThreadPool::collect()
 void ThreadPool::housekeep()
 {
        _age = 0;
-       if (_threads.size() <= _minCapacity)
+       if (static_cast<int>(_threads.size()) <= _minCapacity)
                return;
 
        ThreadVec idleThreads;
@@ -461,7 +461,7 @@ PooledThread* ThreadPool::getThread()
        }
        if (!pThread)
        {
-               if (_threads.size() < _maxCapacity)
+               if (static_cast<int>(_threads.size()) < _maxCapacity)
                {
             pThread = createThread();
             try
index 84db2be..cad771b 100644 (file)
@@ -63,9 +63,10 @@ int Timezone::dst()
 bool Timezone::isDst(const Timestamp& timestamp)
 {
        std::time_t time = timestamp.epochTime();
-       struct std::tm* tms = std::localtime(&time);
-       if (!tms) throw Poco::SystemException("cannot get local time DST flag");
-       return tms->tm_isdst > 0;
+       struct std::tm tms;
+       if (::localtime_s(&tms, &time) != 0)
+               throw Poco::SystemException("cannot get local time DST flag");
+       return tms.tm_isdst > 0;
 }
 
        
index 9d7af1c..62d2882 100644 (file)
@@ -137,7 +137,8 @@ void UUID::swap(UUID& uuid)
        std::swap(_timeMid, uuid._timeMid);
        std::swap(_timeHiAndVersion, uuid._timeHiAndVersion);
        std::swap(_clockSeq, uuid._clockSeq);
-       std::swap_ranges(_node, _node + 6, &uuid._node[0]);
+       for (int i = 0; i < 6; i++)
+               std::swap(_node[i], uuid._node[i]);
 }
 
 
index 3ce2ec8..663a41a 100644 (file)
@@ -76,7 +76,7 @@ void UnicodeConverter::toUTF16(const std::string& utf8String, std::wstring& utf1
 }
 
 
-void UnicodeConverter::toUTF16(const char* utf8String, int length, std::wstring& utf16String)
+void UnicodeConverter::toUTF16(const char* utf8String, size_t length, std::wstring& utf16String)
 {
        poco_check_ptr (utf8String);
 
@@ -147,7 +147,7 @@ void UnicodeConverter::toUTF8(const std::wstring& utf16String, std::string& utf8
 }
 
 
-void UnicodeConverter::toUTF8(const wchar_t* utf16String, int length, std::string& utf8String)
+void UnicodeConverter::toUTF8(const wchar_t* utf16String, size_t length, std::string& utf8String)
 {
        utf8String.clear();
        UTF8Encoding utf8Encoding;
@@ -159,7 +159,7 @@ void UnicodeConverter::toUTF8(const wchar_t* utf16String, int length, std::strin
 
 void UnicodeConverter::toUTF8(const wchar_t* utf16String, std::string& utf8String)
 {
-       toUTF8(utf16String, (int) wcslen(utf16String), utf8String);
+       toUTF8(utf16String, wcslen(utf16String), utf8String);
 }
 
 
index 4f90347..958756b 100644 (file)
@@ -2382,7 +2382,7 @@ static BOOL
 get_othercase_range(unsigned int *cptr, unsigned int d, unsigned int *ocptr,
   unsigned int *odptr)
 {
-unsigned int c, othercase, next;
+unsigned int c, othercase=0, next;
 
 for (c = *cptr; c <= d; c++)
   { if ((othercase = UCD_OTHERCASE(c)) != c) break; }
index 2502135..5f36ff7 100644 (file)
@@ -336,6 +336,3 @@ them both to 0; an emulation function will be used. */
 /* Define to `unsigned int' if <sys/types.h> does not define. */
 /* #undef size_t */
 
-#if defined(_MSC_VER)
-       #pragma warning(disable:4018) // signed/unsigned comparison
-#endif
index 8ed4384..3d8b9f1 100644 (file)
@@ -97,6 +97,7 @@
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib\PocoUtilmtd.lib</OutputFile>
       <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib64\PocoUtilmtd.lib</OutputFile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;POCO_STATIC;_STATIC_CPPLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib\PocoUtilmt.lib</OutputFile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;POCO_STATIC;_STATIC_CPPLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib64\PocoUtilmt.lib</OutputFile>
index a315381..9d814a8 100644 (file)
@@ -97,6 +97,8 @@
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib\PocoUtilmtd.lib</OutputFile>
       <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib64\PocoUtilmtd.lib</OutputFile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;POCO_STATIC;_STATIC_CPPLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib\PocoUtilmt.lib</OutputFile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;POCO_STATIC;_STATIC_CPPLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib64\PocoUtilmt.lib</OutputFile>
index 3e92228..145e34e 100644 (file)
@@ -352,10 +352,10 @@ std::string AbstractConfiguration::uncheckedExpand(const std::string& value) con
                                std::string prop;
                                while (it != end && *it != '}') prop += *it++;
                                if (it != end) ++it;
-                               std::string value;
-                               if (getRaw(prop, value))
+                               std::string value1;
+                               if (getRaw(prop, value1))
                                {
-                                       result.append(internalExpand(value));
+                                       result.append(internalExpand(value1));
                                }
                                else
                                {
index c73056f..78fc040 100644 (file)
@@ -352,7 +352,7 @@ void Application::setArgs(const std::vector<std::string>& args)
        _pConfig->setInt("application.argc", (int) args.size());
        _args = args;
        std::string argvKey = "application.argv[";
-       for (int i = 0; i < args.size(); ++i)
+       for (int i = 0; i < static_cast<int>(args.size()); ++i)
        {
                _pConfig->setString(argvKey + NumberFormatter::format(i) + "]", args[i]);
        }
index e2257d2..0d36e50 100644 (file)
@@ -277,7 +277,7 @@ void HelpFormatter::formatText(std::ostream& ostr, const std::string& text, int
 
 void HelpFormatter::formatWord(std::ostream& ostr, int& pos, const std::string& word, int indent) const
 {
-       if (pos + word.length() > _width)
+       if (pos + static_cast<int>(word.length()) > _width)
        {
                ostr << '\n';
                pos = 0;
index bcc1872..44dd894 100644 (file)
@@ -106,7 +106,7 @@ bool SystemConfiguration::getRaw(const std::string& key, std::string& value) con
                        Poco::Environment::NodeId id;
                        Poco::Environment::nodeId(id);
                        char result[13];
-                       std::sprintf(result, "%02x%02x%02x%02x%02x%02x",
+                       ::sprintf_s(result, "%02x%02x%02x%02x%02x%02x",
                                id[0],
                                id[1],
                                id[2],
index 6e10f1e..9f09605 100644 (file)
@@ -97,6 +97,7 @@
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib\PocoXMLmtd.lib</OutputFile>
       <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib64\PocoXMLmtd.lib</OutputFile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;_STATIC_CPPLIB;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib\PocoXMLmt.lib</OutputFile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;_STATIC_CPPLIB;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib64\PocoXMLmt.lib</OutputFile>
     <ClCompile Include="src\NamespaceStrategy.cpp" />
     <ClCompile Include="src\ParserEngine.cpp" />
     <ClCompile Include="src\XMLException.cpp" />
-    <ClCompile Include="src\XMLString.cpp" />
     <ClCompile Include="src\XMLWriter.cpp" />
     <ClCompile Include="src\Attributes.cpp" />
     <ClCompile Include="src\AttributesImpl.cpp" />
index 175c0d1..dd06012 100644 (file)
     <ClCompile Include="src\XMLException.cpp">
       <Filter>XML\Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\XMLString.cpp">
-      <Filter>XML\Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\XMLWriter.cpp">
       <Filter>XML\Source Files</Filter>
     </ClCompile>
index 01212cc..700b6e8 100644 (file)
@@ -97,6 +97,8 @@
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib\PocoXMLmtd.lib</OutputFile>
       <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib64\PocoXMLmtd.lib</OutputFile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;_STATIC_CPPLIB;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib\PocoXMLmt.lib</OutputFile>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;_STATIC_CPPLIB;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
       <RuntimeTypeInfo>true</RuntimeTypeInfo>
       <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Lib>
       <OutputFile>..\lib64\PocoXMLmt.lib</OutputFile>
     <ClCompile Include="src\NamespaceStrategy.cpp" />
     <ClCompile Include="src\ParserEngine.cpp" />
     <ClCompile Include="src\XMLException.cpp" />
-    <ClCompile Include="src\XMLString.cpp" />
     <ClCompile Include="src\XMLWriter.cpp" />
     <ClCompile Include="src\Attributes.cpp" />
     <ClCompile Include="src\AttributesImpl.cpp" />
index 175c0d1..dd06012 100644 (file)
     <ClCompile Include="src\XMLException.cpp">
       <Filter>XML\Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\XMLString.cpp">
-      <Filter>XML\Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\XMLWriter.cpp">
       <Filter>XML\Source Files</Filter>
     </ClCompile>
index cb484d6..1d28b4b 100644 (file)
@@ -1646,14 +1646,14 @@ XML_GetBuffer(XML_Parser parser, int len)
       bufferLim = newBuf + bufferSize;
 #ifdef XML_CONTEXT_BYTES
       if (bufferPtr) {
-        int keep = (int)(bufferPtr - buffer);
-        if (keep > XML_CONTEXT_BYTES)
-          keep = XML_CONTEXT_BYTES;
-        memcpy(newBuf, &bufferPtr[-keep], bufferEnd - bufferPtr + keep);
+        int keep1 = (int)(bufferPtr - buffer);
+        if (keep1 > XML_CONTEXT_BYTES)
+          keep1 = XML_CONTEXT_BYTES;
+        memcpy(newBuf, &bufferPtr[-keep1], bufferEnd - bufferPtr + keep1);
         FREE(buffer);
         buffer = newBuf;
-        bufferEnd = buffer + (bufferEnd - bufferPtr) + keep;
-        bufferPtr = buffer + keep;
+        bufferEnd = buffer + (bufferEnd - bufferPtr) + keep1;
+        bufferPtr = buffer + keep1;
       }
       else {
         bufferEnd = newBuf + (bufferEnd - bufferPtr);
@@ -1759,7 +1759,7 @@ XML_Index XMLCALL
 XML_GetCurrentByteIndex(XML_Parser parser)
 {
   if (eventPtr)
-    return parseEndByteIndex - (parseEndPtr - eventPtr);
+    return static_cast<XML_Index>(parseEndByteIndex - (parseEndPtr - eventPtr));
   return -1;
 }
 
@@ -4313,16 +4313,16 @@ doProlog(XML_Parser parser,
     case XML_ROLE_GROUP_OPEN:
       if (prologState.level >= groupSize) {
         if (groupSize) {
-          char *temp = (char *)REALLOC(groupConnector, groupSize *= 2);
-          if (temp == NULL)
+          char *temp1 = (char *)REALLOC(groupConnector, groupSize *= 2);
+          if (temp1 == NULL)
             return XML_ERROR_NO_MEMORY;
-          groupConnector = temp;
+          groupConnector = temp1;
           if (dtd->scaffIndex) {
-            int *temp = (int *)REALLOC(dtd->scaffIndex,
+            int *temp2 = (int *)REALLOC(dtd->scaffIndex,
                           groupSize * sizeof(int));
-            if (temp == NULL)
+            if (temp2 == NULL)
               return XML_ERROR_NO_MEMORY;
-            dtd->scaffIndex = temp;
+            dtd->scaffIndex = temp2;
           }
         }
         else {
index c82bf40..3eb1679 100644 (file)
@@ -7,7 +7,7 @@ POCO: 1.4.3p1
 boost: 1.64.0
 frhed: 0.10902.2015.6
 freeimage: 3.16.0
-WinIMerge: 1.0.0.0
+WinIMerge: 1.0.7.0
 Google C++ Testing Framework: 1.70
 GnuWin32 Patch for Windows: 2.5.9-7
 7-zip: 16.04 
index dea2739..cfeb81f 100644 (file)
@@ -176,7 +176,7 @@ Merge7z::Format *ArchiveGuessFormat(const String& path)
                TCHAR cPath[INTERNET_MAX_PATH_LENGTH];\r
                DWORD cchPath = SearchPath(NULL, _T("ExternalArchiveFormat.ini"), NULL,\r
                        INTERNET_MAX_PATH_LENGTH, cPath, NULL);\r
-               filename = cchPath && cchPath < INTERNET_MAX_PATH_LENGTH ? StrDup(cPath) : null;\r
+               filename = cchPath && cchPath < INTERNET_MAX_PATH_LENGTH ? _tcsdup(cPath) : null;\r
        }\r
        if (*filename &&\r
                GetPrivateProfileString(section, entry.c_str(), null, value, 20, filename) &&\r
@@ -524,8 +524,8 @@ bool DirItemEnumerator::MultiStepCompressArchive(LPCTSTR path)
                bool bDone = MultiStepCompressArchive(pathIntermediate);\r
                if (bDone)\r
                {\r
-                       piHandler->CompressArchive(hwndOwner, path,\r
-                               &SingleItemEnumerator(path, pathIntermediate));\r
+                       SingleItemEnumerator tmpEnumerator(path, pathIntermediate);\r
+                       piHandler->CompressArchive(hwndOwner, path, &tmpEnumerator);\r
                        DeleteFile(pathIntermediate);\r
                }\r
                else\r
@@ -624,7 +624,8 @@ DecompressResult DecompressArchive(HWND hWnd, const PathContext& files)
                USES_CONVERSION;\r
                // Handle archives using 7-zip\r
                Merge7z::Format *piHandler;\r
-               if (piHandler = ArchiveGuessFormat(res.files[0]))\r
+               piHandler = ArchiveGuessFormat(res.files[0]);\r
+               if (piHandler)\r
                {\r
                        res.pTempPathContext = new CTempPathContext;\r
                        path = env::GetTempChildPath();\r
@@ -645,10 +646,13 @@ DecompressResult DecompressArchive(HWND hWnd, const PathContext& files)
                                SysFreeString(pTmp);\r
                                res.files[0].insert(0, _T("\\"));\r
                                res.files[0].insert(0, path);\r
-                       } while (piHandler = ArchiveGuessFormat(res.files[0]));\r
+                               piHandler = ArchiveGuessFormat(res.files[0]);\r
+                       } while (piHandler);\r
                        res.files[0] = path;\r
                }\r
-               if (!res.files[1].empty() && (piHandler = ArchiveGuessFormat(res.files[1])))\r
+               piHandler = res.files[1].empty() ? nullptr\r
+                                                                                : ArchiveGuessFormat(res.files[1]);\r
+               if (piHandler)\r
                {\r
                        if (!res.pTempPathContext)\r
                        {\r
@@ -670,10 +674,12 @@ DecompressResult DecompressArchive(HWND hWnd, const PathContext& files)
                                SysFreeString(pTmp);\r
                                res.files[1].insert(0, _T("\\"));\r
                                res.files[1].insert(0, path);\r
-                       } while (piHandler = ArchiveGuessFormat(res.files[1]));\r
+                               piHandler = ArchiveGuessFormat(res.files[1]);\r
+                       } while (piHandler);\r
                        res.files[1] = path;\r
                }\r
-               if (res.files.GetSize() > 2 && (piHandler = ArchiveGuessFormat(res.files[2])))\r
+               piHandler = (res.files.GetSize() <= 2) ? nullptr : ArchiveGuessFormat(res.files[2]);\r
+               if (piHandler)\r
                {\r
                        if (!res.pTempPathContext)\r
                        {\r
@@ -695,7 +701,8 @@ DecompressResult DecompressArchive(HWND hWnd, const PathContext& files)
                                SysFreeString(pTmp);\r
                                res.files[2].insert(0, _T("\\"));\r
                                res.files[2].insert(0, path);\r
-                       } while (piHandler = ArchiveGuessFormat(res.files[2]));\r
+                               piHandler = ArchiveGuessFormat(res.files[2]);\r
+                       } while (piHandler);\r
                        res.files[2] = path;\r
                }\r
                if (res.files[1].empty())\r
index 50876b8..72588c7 100644 (file)
@@ -1,3 +1,5 @@
+#pragma once
+
 #define DllBuild_Merge7z 10 // Minimum DllBuild of Merge7z plugin required
 
 // We include dllpstub.h for Merge7z.h
index ce64c09..ec943b3 100644 (file)
@@ -75,10 +75,8 @@ END_MESSAGE_MAP()
  * @brief Constructor.
  */
 CChildFrame::CChildFrame()
-#pragma warning(disable:4355) // 'this' : used in base member initializer list
 : m_hIdentical(NULL)
 , m_hDifferent(NULL)
-#pragma warning(default:4355)
 {
        m_bActivated = FALSE;
        std::fill_n(m_nLastSplitPos, 2, 0);
index 4431876..baf27d3 100644 (file)
@@ -107,8 +107,3 @@ private:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index cc9dfcc..0a18c67 100644 (file)
@@ -193,9 +193,10 @@ void BCMenuData::SetWideString(const wchar_t *szWideString)
        
        if (szWideString)
     {
-               m_szMenuText = new wchar_t[sizeof(wchar_t)*(wcslen(szWideString)+1)];
+               const size_t MenuSiz = wcslen(szWideString) + 1;
+               m_szMenuText = new wchar_t[MenuSiz];
                if (m_szMenuText)
-                       wcscpy(m_szMenuText,szWideString);
+                       wcscpy_s(m_szMenuText, MenuSiz, szWideString);
     }
        else
                m_szMenuText=NULL;//set to NULL so we need not bother about dangling non-NULL Ptrs
@@ -276,11 +277,11 @@ void BCMenu::DrawItem_Win9xNT2000 (LPDRAWITEMSTRUCT lpDIS)
        ASSERT(lpDIS != NULL);
        CDC* pDC = CDC::FromHandle(lpDIS->hDC);
        CRect rect;
-       UINT state = reinterpret_cast<BCMenuData*>(lpDIS->itemData)->nFlags;
+       UINT state0 = reinterpret_cast<BCMenuData*>(lpDIS->itemData)->nFlags;
        COLORREF clrBack=GetSysColor(COLOR_MENU);
        CBrush brBackground(clrBack);
 
-       if(state & MF_SEPARATOR){
+       if(state0 & MF_SEPARATOR){
                rect.CopyRect(&lpDIS->rcItem);
                pDC->FillRect (rect,&brBackground);
                rect.top += (rect.Height()>>1);
@@ -398,7 +399,8 @@ void BCMenu::DrawItem_Win9xNT2000 (LPDRAWITEMSTRUCT lpDIS)
                        }
                        else{
                                if(state&ODS_CHECKED){
-                                       pDC->FillRect(rect2,&CBrush(LightenColor(clrBack,0.6)));
+                                       CBrush cbTemp = LightenColor(clrBack, 0.6);
+                                       pDC->FillRect(rect2,&cbTemp);
                                        rect2.SetRect(rect.left,rect.top+dy,rect.left+m_iconX+4,
                         rect.top+m_iconY+4+dy);
                                        pDC->Draw3dRect(rect2,GetSysColor(COLOR_3DSHADOW),
@@ -1367,8 +1369,9 @@ BOOL BCMenu::LoadMenu(LPCTSTR lpszResourceName)
                
                // Obtain Caption (and length)
                
-               wchar_t *szCaption=new wchar_t[wcslen((wchar_t *)pTp)+1];
-               wcscpy(szCaption,(wchar_t *)pTp);
+               const size_t CaptionSiz = wcslen((wchar_t *)pTp)+1;
+               wchar_t *szCaption=new wchar_t[CaptionSiz];
+               wcscpy_s(szCaption, CaptionSiz, reinterpret_cast<wchar_t *>(pTp));
                pTp=&pTp[(wcslen((wchar_t *)pTp)+1)*sizeof(wchar_t)];//modified SK
                
                // Handle popup menus first....
@@ -1666,7 +1669,8 @@ void BCMenu::GetTransparentBitmap(CBitmap &bmp)
        col=RGB(255,0,255); // Original was RGB(192,192,192)
        CBitmap * pddcOldBmp2 = ddc2.SelectObject(&bmp2);
        CRect rect(0,0,BitMap.bmWidth,BitMap.bmHeight);
-       ddc2.FillRect(rect,&CBrush(col));
+       CBrush cbTemp = col;
+       ddc2.FillRect(rect, &cbTemp);
        ddc2.SelectObject(pddcOldBmp2);
        newcol=GetSysColor(COLOR_3DFACE);
 
@@ -1706,7 +1710,8 @@ void BCMenu::GetDisabledBitmap(CBitmap &bmp,COLORREF background)
        bmp2.CreateCompatibleBitmap(&ddc,BitMap.bmWidth,BitMap.bmHeight);
        CBitmap * pddcOldBmp2 = ddc2.SelectObject(&bmp2);
        CRect rect(0,0,BitMap.bmWidth,BitMap.bmHeight);
-       ddc2.FillRect(rect,&CBrush(GetSysColor(COLOR_3DFACE)));
+       CBrush cbTemp = GetSysColor(COLOR_3DFACE);
+       ddc2.FillRect(rect, &cbTemp);
        ddc2.SelectObject(pddcOldBmp2);
        discol=GetSysColor(COLOR_BTNSHADOW);
 
@@ -1791,7 +1796,8 @@ BOOL BCMenu::Draw3DCheckmark(CDC *dc, const CRect& rc,
        CRect rcDest = rc;
        COLORREF col=GetSysColor(COLOR_MENU);
        if(!bSelected)col = LightenColor(col,0.6);
-       dc->FillRect(rcDest,&CBrush(col));
+       CBrush cbTemp = col;
+       dc->FillRect(rcDest, &cbTemp);
        dc->DrawEdge(&rcDest, BDR_SUNKENOUTER, BF_RECT);
        if (!hbmCheck)DrawCheckMark(dc,rc.left+4,rc.top+4,GetSysColor(COLOR_MENUTEXT));
        else DrawRadioDot(dc,rc.left+5,rc.top+4,GetSysColor(COLOR_MENUTEXT));
index a8342ed..086249e 100644 (file)
@@ -23,8 +23,7 @@
 // like to play with new stuff.
 //*************************************************************************
 
-#ifndef BCMenu_H
-#define BCMenu_H
+#pragma once
 
 #include <afxtempl.h>
 
@@ -339,6 +338,3 @@ protected:
        static HTHEME m_hTheme;
 }; 
 
-#endif
-
-//*************************************************************************
index b40ff41..82cd535 100644 (file)
@@ -698,7 +698,7 @@ CMoveConstraint::Persist(bool saving, bool position)
                if (m_pFormView)
                        CWnd::FromHandle(m_hwndDlg)->GetParent()->ScreenToClient(&wprc);
                CRect rc;
-               int ct=_stscanf(str, _T("%d,%d,%d,%d"), &rc.left, &rc.top, &rc.right, &rc.bottom);
+               int ct=_stscanf_s(str, _T("%d,%d,%d,%d"), &rc.left, &rc.top, &rc.right, &rc.bottom);
                if (ct==4)
                {
                        if (position)
index 54b52f7..9bd1dc1 100644 (file)
@@ -21,12 +21,13 @@ bool PutToClipboard(const String & text, HWND currentWindowHandle)
        if (OpenClipboard(currentWindowHandle))
        {
                EmptyClipboard();
-               HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, (text.length()+1) * sizeof(TCHAR));
+               const size_t dataSiz = text.length() + 1;
+               HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, dataSiz * sizeof(TCHAR));
                if (hData != NULL)
                {
                        if (LPTSTR pszData = static_cast<LPTSTR>(::GlobalLock(hData)))
                        {
-                               _tcscpy(pszData, text.c_str());
+                               _tcscpy_s(pszData, dataSiz, text.c_str());
                                GlobalUnlock(hData);
                        }
                        UINT fmt = GetClipTcharTextFormat();
index 23a9eb8..0ac4846 100644 (file)
@@ -169,7 +169,7 @@ public:
                                        codepagestotry[0] = ucr::CP_UTF_8;
                        }
                        codepage = defcodepage;
-                       int i;
+                       size_t i;
                        for (i = 0; i < sizeof(codepagestotry)/sizeof(codepagestotry[0]) - 1; i++)
                        {
                                if (codepagestotry[i] == 0) break;
index 2dbc297..955378b 100644 (file)
@@ -178,17 +178,17 @@ void CMDITabBar::OnContextMenu(CWnd *pWnd, CPoint point)
        case ID_CLOSE_LEFT_TABS: {
                int curcel = GetCurSel();
                int n = GetItemCount();
-               TCITEM tci;
-               tci.mask = TCIF_PARAM;
+               TCITEM tci1;
+               tci1.mask = TCIF_PARAM;
                for (int i = n - 1; i >= 0; --i)
                {
                        if ((command == ID_CLOSE_OTHER_TABS && i == curcel) ||
                                (command == ID_CLOSE_RIGHT_TABS && i <= curcel) ||
                                (command == ID_CLOSE_LEFT_TABS  && i >= curcel))
                                continue;
-                       GetItem(i, &tci);
-                       CWnd* pMDIChild = FromHandle((HWND)tci.lParam);
-                       pMDIChild->SendMessage(WM_SYSCOMMAND, SC_CLOSE);
+                       GetItem(i, &tci1);
+                       CWnd* pMDIChild1 = FromHandle((HWND)tci1.lParam);
+                       pMDIChild1->SendMessage(WM_SYSCOMMAND, SC_CLOSE);
                }
                break;
        }
@@ -244,7 +244,7 @@ void CMDITabBar::UpdateTabs()
        for (POSITION pos = MDIFrameList.GetStartPosition(); pos; )
        {
                HWND hFrameWnd;
-               int item;
+//~            int item;
                MDIFrameList.GetNextAssoc(pos, hFrameWnd, item);
 
                CString strTitle;
@@ -369,10 +369,10 @@ void CMDITabBar::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
                CPoint pt;
                GetCursorPos(&pt);
                ScreenToClient(&pt);
-               CRect rc = GetCloseButtonRect(nItem);
-               DrawFrameControl(lpDraw->hDC, &rc, DFC_CAPTION, 
-                       DFCS_CAPTIONCLOSE | DFCS_FLAT | (rc.PtInRect(pt) ? DFCS_HOT : 0) |
-                       ((m_bCloseButtonDown && rc.PtInRect(pt)) ? DFCS_PUSHED : 0));
+               CRect rc1 = GetCloseButtonRect(nItem);
+               DrawFrameControl(lpDraw->hDC, &rc1, DFC_CAPTION, 
+                       DFCS_CAPTIONCLOSE | DFCS_FLAT | (rc1.PtInRect(pt) ? DFCS_HOT : 0) |
+                       ((m_bCloseButtonDown && rc1.PtInRect(pt)) ? DFCS_PUSHED : 0));
        }
 }
 
index a8ae7ec..56a096d 100644 (file)
@@ -3,8 +3,7 @@
 // Igor Pavlov under the terms of the GNU Lesser General Public License (LGPL).\r
 // It has been modified by WinMerge Team.\r
 \r
-#ifndef __MYCOM_H\r
-#define __MYCOM_H\r
+#pragma once\r
 \r
 #ifndef RINOK\r
 #define RINOK(x) { HRESULT __result_ = (x); if (__result_ != S_OK) return __result_; }\r
@@ -358,4 +357,3 @@ public:
        ~CMyDispParams() { Unnamed.Drop(); }\r
 };\r
 \r
-#endif\r
index 3b088ac..d26ab25 100644 (file)
@@ -218,7 +218,7 @@ bool COption::ConvertString(varprop::VariantValue & value, varprop::VT_TYPE nTyp
        case varprop::VT_BOOL:
                // Convert string to boolean
                {
-                       std::transform(svalue.begin(), svalue.end(), svalue.begin(), ::tolower);
+                       svalue = strutils::makelower(svalue);
                        if (svalue == _T("1") || svalue == _T("yes")
                                || svalue == _T("true"))
                        {
index 0152f72..2ffec04 100644 (file)
  */
 
 #include "PidlContainer.h"
-#include <ShlObj.h>
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
+#include <shlobj.h>
+#pragma warning (pop)
 #include <comdef.h>
 
 CPidlContainer::~CPidlContainer()
index e261abd..014f587 100644 (file)
@@ -241,8 +241,12 @@ CString CPreferencesDlg::GetItemPath(HTREEITEM hti)
 {
        CString sPath = m_tcPages.GetItemText(hti);
 
-       while (hti = m_tcPages.GetParentItem(hti))
+       hti = m_tcPages.GetParentItem(hti);
+       while (hti)
+       {
                sPath = m_tcPages.GetItemText(hti) + _T(" > ") + sPath;
+               hti = m_tcPages.GetParentItem(hti);
+       }
 
        return sPath;
 }
index 5940628..c92ecad 100644 (file)
@@ -110,6 +110,3 @@ private:
        COptionsMgr *m_pOptionsMgr;
 
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 5989a39..c195997 100644 (file)
@@ -153,13 +153,13 @@ BOOL CPropertyPageHost::SetActivePage(int nIndex, BOOL bAndFocus)
 
        if (m_nSelIndex != -1)
        {
-               CPropertyPage* pPage = GetActivePage();
-               ASSERT (pPage);
+               CPropertyPage* pPage1 = GetActivePage();
+               ASSERT (pPage1);
 
-               if (pPage)
+               if (pPage1)
                {
-                       pPage->ShowWindow(SW_HIDE);
-                       pPage->OnKillActive();
+                       pPage1->ShowWindow(SW_HIDE);
+                       pPage1->OnKillActive();
                }
        }
 
index cd6bdd5..c06ee83 100644 (file)
@@ -75,8 +75,3 @@ protected:
        int FindPage(CPropertyPage* pPage);
 
 };
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 5db0018..254963a 100644 (file)
 #pragma once
 
 #include <comdef.h>
-#include <ShlObj.h>
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
+#include <shlobj.h>
+#pragma warning (pop)
 #include <list>
 #include "UnicodeString.h"
 
index e326fa9..c2a0398 100644 (file)
@@ -209,7 +209,7 @@ void CSplitterWndEx::EqualizeCols()
 
        int i;
        int sum = 0;
-       int hmin;
+       int hmin = 0;
 
        for (i = 0 ; i < m_nCols ; i++)
        {
index b526274..3e4c55c 100644 (file)
@@ -81,8 +81,3 @@ protected:
 
        DECLARE_MESSAGE_MAP()
 };
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index a8d4aaa..7bab41b 100644 (file)
@@ -652,10 +652,10 @@ bool UniMemFile::ReadString(String & line, String & eol, bool * lossy)
                }
                // convert from Unicode codepoint to TCHAR string
                // could be multicharacter if decomposition took place, for example
-               bool lossy = false; // try to avoid lossy conversion
+               bool lossy1 = false; // try to avoid lossy conversion
                String sch;
-               ucr::maketchar(sch, ch, lossy);
-               if (lossy)
+               ucr::maketchar(sch, ch, lossy1);
+               if (lossy1)
                        ++m_txtstats.nlosses;
                if (sch.length() >= 1)
                        ch = sch[0];
@@ -671,10 +671,10 @@ bool UniMemFile::ReadString(String & line, String & eol, bool * lossy)
                        // check for crlf pair
                        if (m_current - m_base + 2 * m_charsize - 1 < m_filesize)
                        {
-                               // For UTF-8, this ch will be wrong if character is non-ASCII
+                               // For UTF-8, this ch1 will be wrong if character is non-ASCII
                                // but we only check it against \n here, so it doesn't matter
-                               unsigned ch = ucr::get_unicode_char(m_current + m_charsize, (ucr::UNICODESET)m_unicoding);
-                               if (ch == '\n')
+                               unsigned ch1 = ucr::get_unicode_char(m_current + m_charsize, (ucr::UNICODESET)m_unicoding);
+                               if (ch1 == '\n')
                                {
                                        crlf = true;
                                }
@@ -817,8 +817,7 @@ bool UniStdioFile::DoOpen(const String& filename, const String& mode)
        // But we don't care since size is set to 0 anyway.
        GetFileStatus();
 
-       m_fp = _tfopen(m_filepath.c_str(), mode.c_str());
-       if (!m_fp)
+       if (_tfopen_s(&m_fp, m_filepath.c_str(), mode.c_str()) != 0)
                return false;
 
 #ifndef _WIN64
index 57dacc9..3dd5888 100644 (file)
@@ -48,7 +48,10 @@ DATE:                BY:                                     DESCRIPTION:
 struct IShellView;                     // avoid MSC warning C4115
 struct _RPC_ASYNC_STATE;       // avoid MSC warning C4115
 
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
 #include <shlobj.h>
+#pragma warning (pop)
 #include <shlwapi.h>
 #include <tchar.h>
 #include <stdarg.h>
@@ -364,6 +367,7 @@ STDAPI invokeV(LPDISPATCH pi, VARIANT *ret, DISPID id, LPCCH op, VARIANT *argv)
        EXCEPINFO excepInfo = {0};
        dispparams.cArgs = LOBYTE((UINT_PTR)op);
        dispparams.cNamedArgs = 0;
+       dispparams.rgvarg = argv;
        if (wFlags & (DISPATCH_PROPERTYPUT|DISPATCH_PROPERTYPUTREF))
        {
                dispparams.cNamedArgs = 1;
index 431af3e..ca254da 100644 (file)
@@ -29,7 +29,6 @@ extern "C"{
 #endif 
 
 #ifdef _MSC_VER
-#pragma warning(disable: 4100 4189 4512)
 #define UNUSED_ARG(ARG) ARG
 #elif defined(__GNUC__)
 #define UNUSED_ARG(ARG) ARG
index 292b7cf..cedf298 100644 (file)
@@ -278,7 +278,7 @@ const TCHAR *storageForPlugins::GetDataFileUnicode()
                        int bom_bytes = 0;
                        {
                                SharedMemory shmOut(fileOut, SharedMemory::AM_WRITE);
-                               int bom_bytes = ucr::writeBom(shmOut.begin(), ucr::UCS2LE);
+                               bom_bytes = ucr::writeBom(shmOut.begin(), ucr::UCS2LE);
                                // to UCS-2 conversion, from unicoder.cpp maketstring
                                bool lossy;
                                textRealSize = ucr::CrossConvert(pchar, nchars, (char *)shmOut.begin()+bom_bytes, textForeseenSize-1, m_codepage, ucr::CP_UCS2LE, &lossy);
@@ -570,7 +570,6 @@ static const char *findNextLine(ucr::UNICODESET unicoding, const char *pstart, c
        default:
                return findNextLine<char, false>(pstart, pend);
        }
-       return pend;
 }
 
 bool AnyCodepageToUTF8(int codepage, const String& filepath, const String& filepathDst, int & nFileChanged, bool bWriteBOM)
index 1b39cd1..c6a9db2 100644 (file)
@@ -65,4 +65,3 @@ protected:
     DECLARE_MESSAGE_MAP()
 };
 
-/////////////////////////////////////////////////////////////////////////
\ No newline at end of file
index df374a9..a0a36bc 100644 (file)
@@ -767,13 +767,13 @@ void CSizingControlBar::OnTrackUpdateSize(CPoint& point)
 
         for (int i = nFirst; nDelta != 0 && i != nLimit; i += (bBefore ? -1 : 1))
         {
-            CSizingControlBar* pBar = arrSCBars[i];
+            CSizingControlBar* pBar1 = arrSCBars[i];
                 
             int nDeltaT = min(nDelta,
-                (bHorz ? pBar->m_szHorz.cx : pBar->m_szVert.cy) -
-                (bHorz ? pBar->m_szMinHorz.cx : pBar->m_szMinVert.cy));
+                (bHorz ? pBar1->m_szHorz.cx : pBar1->m_szVert.cy) -
+                (bHorz ? pBar1->m_szMinHorz.cx : pBar1->m_szMinVert.cy));
 
-            (bHorz ? pBar->m_szHorz.cx : pBar->m_szVert.cy) -= nDeltaT;
+            (bHorz ? pBar1->m_szHorz.cx : pBar1->m_szVert.cy) -= nDeltaT;
             nDelta -= nDeltaT;
         }
     }
index a38887c..5f60fa5 100644 (file)
@@ -41,7 +41,6 @@ static int f_nDefaultCodepage = GetACP();
  */
 int Ucs4_to_Utf8(unsigned unich, unsigned char * utf8)
 {
-#pragma warning(disable: 4244) // possible loss of data due to type conversion
        if (unich <= 0x7f)
        {
                utf8[0] = (unsigned char)unich;
@@ -94,7 +93,6 @@ int Ucs4_to_Utf8(unsigned unich, unsigned char * utf8)
                utf8[0] = '?';
                return 1;
        }
-#pragma warning(default: 4244) // possible loss of data due to type conversion
 }
 
 /**
@@ -137,7 +135,7 @@ int Utf8len_fromCodepoint(unsigned ch)
  */
 size_t stringlen_of_utf8(const char* text, size_t size)
 {
-       unsigned len = 0;
+       size_t len = 0;
        for (size_t i = 0; i < size;)
        {
                int chlen = Utf8len_fromLeadByte(text[i]);
@@ -207,7 +205,6 @@ unsigned GetUtf8Char(unsigned char * str)
  */
 int to_utf8_advance(unsigned u, unsigned char * &lpd)
 {
-#pragma warning(disable: 4244) // possible loss of data due to type conversion
        if (u < 0x80)
        {
                *lpd++ = u;
@@ -258,7 +255,6 @@ int to_utf8_advance(unsigned u, unsigned char * &lpd)
                *lpd++ = '?';
                return 1;
        }
-#pragma warning(default: 4244) // possible loss of data due to type conversion
 }
 
 /**
@@ -517,7 +513,7 @@ bool maketstring(String & str, const char* lpd, size_t len, int codepage, bool *
                {
                        if (GetLastError() == ERROR_INVALID_FLAGS)
                        {
-                               int n = MultiByteToWideChar(codepage, 0, lpd, static_cast<int>(len), wbuff, static_cast<int>(wlen-1));
+                               n = MultiByteToWideChar(codepage, 0, lpd, static_cast<int>(len), wbuff, static_cast<int>(wlen-1));
                                if (n)
                                {
                                        /* NB: MultiByteToWideChar is documented as only zero-terminating 
@@ -818,7 +814,7 @@ unsigned char *convertTtoUTF8(LPCTSTR src, int srcbytes/* = -1*/)
 {
        buffer buf(256);
        convertTtoUTF8(&buf, src, srcbytes);
-       return (unsigned char *)strdup((const char *)buf.ptr);
+       return (unsigned char *)_strdup((const char *)buf.ptr);
 }
 
 TCHAR *convertUTF8toT(buffer * buf, LPCSTR src, int srcbytes/* = -1*/)
@@ -971,7 +967,7 @@ bool convert(UNICODESET unicoding1, int codepage1, const unsigned char * src, si
        {
                // simple byte swap
                dest->resize(srcbytes + 2);
-               for (int i = 0; i < srcbytes; i += 2)
+               for (size_t i = 0; i < srcbytes; i += 2)
                {
                        // Byte-swap into destination
                        dest->ptr[i] = src[i+1];
index cbedfd0..5fb4b2f 100644 (file)
@@ -40,8 +40,8 @@ static int compare_files(const String& file1, const String& file2)
                {
                        char buf1[bufsize];
                        char buf2[bufsize];
-                       int size1 = read(fd1, buf1, sizeof(buf1));
-                       int size2 = read(fd2, buf2, sizeof(buf2));
+                       int size1 = _read(fd1, buf1, sizeof(buf1));
+                       int size2 = _read(fd2, buf2, sizeof(buf2));
                        if (size1 <= 0 || size2 <= 0)
                        {
                                if (size1 < 0 || size2 < 0)
@@ -62,9 +62,9 @@ static int compare_files(const String& file1, const String& file2)
                code = DIFFCODE::CMPERR;
        }
        if (fd1 != -1)
-               close(fd1);
+               _close(fd1);
        if (fd2 != -1)
-               close(fd2);
+               _close(fd2);
 
        return code;
 }
index c872dce..e7c16b9 100644 (file)
@@ -146,7 +146,7 @@ int ByteCompare::CompareFiles(FileLocation *location)
                        {
                                // Assume our blocks are in range of int
                                int space = sizeof(buff[i])/sizeof(buff[i][0]) - (int) bfend[i];
-                               int rtn = read(m_inf[i].desc, &buff[i][bfend[i]], (unsigned)space);
+                               int rtn = _read(m_inf[i].desc, &buff[i][bfend[i]], (unsigned)space);
                                if (rtn == -1)
                                        return DIFFCODE::CMPERR;
                                if (rtn < space)
index 4e8f2d0..1e42652 100644 (file)
@@ -5,6 +5,8 @@
  */
 #pragma once
 
+#include "diff.h"
+
 /**
  * @brief Whether to ignore whitespace (or to ignore changes in whitespace)
  *
@@ -37,27 +39,29 @@ enum WhitespaceIgnoreChoices
  */
 enum DiffOutputType
 {
+       // NOTE: these values are stored in the user's Registry - don't change their value !!
        /**< Default output style.  */
-       DIFF_OUTPUT_NORMAL,
+       DIFF_OUTPUT_NORMAL = OUTPUT_NORMAL,
        /**< Output the differences with lines of context before and after (-c).  */
-       DIFF_OUTPUT_CONTEXT,
+       DIFF_OUTPUT_CONTEXT = OUTPUT_CONTEXT,
        /**< Output the differences in a unified context diff format (-u). */
-       DIFF_OUTPUT_UNIFIED,
-       /** Output html style.  */
-       DIFF_OUTPUT_HTML = 8,
+       DIFF_OUTPUT_UNIFIED = OUTPUT_UNIFIED,
 // These are not used, see the comment above enum.
 #if 0
        /**< Output the differences as commands suitable for `ed' (-e).  */
-       DIFF_OUTPUT_ED,
+       DIFF_OUTPUT_ED = OUTPUT_ED,
        /**< Output the diff as a forward ed script (-f).  */
-       DIFF_OUTPUT_FORWARD_ED,
+       DIFF_OUTPUT_FORWARD_ED = OUTPUT_FORWARD_ED,
        /**< Like -f, but output a count of changed lines in each "command" (-n). */
-       DIFF_OUTPUT_RCS,
+       DIFF_OUTPUT_RCS = OUTPUT_RCS,
        /**< Output merged #ifdef'd file (-D).  */
-       DIFF_OUTPUT_IFDEF,
+       DIFF_OUTPUT_IFDEF = OUTPUT_IFDEF,
        /**< Output sdiff style (-y).  */
-       DIFF_OUTPUT_SDIFF,
+       DIFF_OUTPUT_SDIFF = OUTPUT_SDIFF,
 #endif
+//  ... end of unused
+       /** Output html style.  */
+       DIFF_OUTPUT_HTML = OUTPUT_HTML,
 };
 
 /**
index f241fe0..2d55879 100644 (file)
@@ -69,8 +69,7 @@ void CConfigLog::WritePluginsInLogFile(const wchar_t *transformationEvent)
        piPluginArray = 
                CAllThreadsScripts::GetActiveSet()->GetAvailableScripts(transformationEvent);
 
-       int iPlugin;
-       for (iPlugin = 0 ; iPlugin < piPluginArray->size() ; iPlugin++)
+       for (size_t iPlugin = 0 ; iPlugin < piPluginArray->size() ; iPlugin++)
        {
                const PluginInfoPtr& plugin = piPluginArray->at(iPlugin);
                m_pfile->WriteString(_T("\r\n  "));
index 6cca299..90899c5 100644 (file)
@@ -1,26 +1,7 @@
-#ifndef _DDXHELPER_H_\r
-#define _DDXHELPER_H_\r
+#pragma once\r
 \r
 #include "UnicodeString.h"\r
 \r
-// from http://stackoverflow.com/questions/6117270/mfc-stdstring-vs-cstring\r
-class PopString : public CString\r
-{\r
-public:\r
-       explicit PopString(String & final) : CString(final.c_str()), m_final(final)\r
-       {\r
-       }\r
-\r
-       ~PopString()\r
-       {\r
-               m_final = (PCTSTR) *this;\r
-       }\r
-private:\r
-       PopString(const PopString &);  // private copy constructor to prevent copying\r
-       PopString & operator=(const PopString &);  // private copy operator\r
-\r
-       String & m_final;\r
-};\r
 \r
 inline void DDX_Check(CDataExchange* pDX, int nIDC, bool& value)\r
 {\r
@@ -38,17 +19,22 @@ inline void DDX_Radio(CDataExchange* pDX, int nIDC, bool& value)
 \r
 inline void DDX_Text(CDataExchange* pDX, int nIDC, String& value)\r
 {\r
-       DDX_Text(pDX, nIDC, PopString(value));\r
+       CString cstrValue = value.c_str();\r
+       DDX_Text(pDX, nIDC, cstrValue);\r
+       value = cstrValue;\r
 }\r
 \r
 inline void DDX_CBString(CDataExchange* pDX, int nIDC, String& value)\r
 {\r
-       DDX_CBString(pDX, nIDC, PopString(value));\r
+       CString cstrValue = value.c_str();\r
+       DDX_CBString(pDX, nIDC, cstrValue);\r
+       value = cstrValue;\r
 }\r
 \r
 inline void DDX_CBStringExact(CDataExchange* pDX, int nIDC, String& value)\r
 {\r
-       DDX_CBStringExact(pDX, nIDC, PopString(value));\r
+       CString cstrValue = value.c_str();\r
+       DDX_CBStringExact(pDX, nIDC, cstrValue);\r
+       value = cstrValue;\r
 }\r
 \r
-#endif\r
index 1065d1e..295b2fd 100644 (file)
@@ -215,14 +215,14 @@ size_t Make3wayDiff(std::vector<Element>& diff3, const std::vector<Element>& dif
        
        for (size_t i = 0; i < diff3i; i++)
        {
-               Element& dr3 = diff3.at(i);
+               Element& dr3r = diff3.at(i);
                if (i < diff3i - 1)
                {
                        Element& dr3next = diff3.at(i + 1);
                        for (int j = 0; j < 3; j++)
                        {
-                               if (dr3.end[j] >= dr3next.begin[j])
-                                       dr3.end[j] = dr3next.begin[j] - 1;
+                               if (dr3r.end[j] >= dr3next.begin[j])
+                                       dr3r.end[j] = dr3next.begin[j] - 1;
                        }
                }
        }
index a90f070..e4bd722 100644 (file)
@@ -72,7 +72,7 @@ bool DiffFileData::DoOpenFiles()
                // Actual paths are m_FileLocation[i].filepath
                // but these are often temporary files
                // Displayable (original) paths are m_sDisplayFilepath[i]
-               m_inf[i].name = strdup(ucr::toSystemCP(m_sDisplayFilepath[i]).c_str());
+               m_inf[i].name = _strdup(ucr::toSystemCP(m_sDisplayFilepath[i]).c_str());
                if (m_inf[i].name == NULL)
                        return false;
 
@@ -135,7 +135,7 @@ void DiffFileData::Reset()
 
                if (m_inf[i].desc > 0)
                {
-                       close(m_inf[i].desc);
+                       _close(m_inf[i].desc);
                }
                m_inf[i].desc = 0;
                memset(&m_inf[i], 0, sizeof(m_inf[i]));
@@ -166,8 +166,8 @@ bool DiffFileData::Filepath_Transform(bool bForceUTF8,
        {
                // fourth step : prepare for diffing
                // may overwrite if we've already copied to temp file
-               bool bMayOverwrite = 0 != strutils::compare_nocase(filepathTransformed, filepath);
-               if (!FileTransform::AnyCodepageToUTF8(encoding.m_codepage, filepathTransformed, bMayOverwrite))
+               bool bMayOverwrite1 = 0 != strutils::compare_nocase(filepathTransformed, filepath);
+               if (!FileTransform::AnyCodepageToUTF8(encoding.m_codepage, filepathTransformed, bMayOverwrite1))
                        return false;
        }
        return true;
index 8c311eb..92c2118 100644 (file)
@@ -277,14 +277,14 @@ bool DiffList::LineInDiff(int nLine, int nDiff) const
  */
 int DiffList::LineToDiff(int nLine) const
 {
-       const size_t nDiffCount = m_diffs.size();
+       const int nDiffCount = static_cast<int>(m_diffs.size());
        if (nDiffCount == 0)
                return -1;
 
        // First check line is not before first or after last diff
-       if (static_cast<int>(nLine) < DiffRangeAt(0)->dbegin)
+       if (nLine < DiffRangeAt(0)->dbegin)
                return -1;
-       if (static_cast<int>(nLine) > DiffRangeAt(nDiffCount-1)->dend)
+       if (nLine > DiffRangeAt(nDiffCount-1)->dend)
                return -1;
 
        // Use binary search to search for a diff.
@@ -419,9 +419,9 @@ int DiffList::PrevSignificantDiffFromLine(int nLine) const
 int DiffList::NextSignificantDiffFromLine(int nLine) const
 {
        int nDiff = -1;
-       const size_t nDiffCount = m_diffs.size();
+       const int nDiffCount = static_cast<int>(m_diffs.size());
 
-       for (size_t i = 0; i < nDiffCount; i++)
+       for (int i = 0; i < nDiffCount; i++)
        {
                const DIFFRANGE * dfi = DiffRangeAt(i);
                if (dfi->op != OP_TRIVIAL && dfi->dbegin >= static_cast<int>(nLine))
@@ -448,8 +448,8 @@ void DiffList::ConstructSignificantChain()
        m_lastSignificantLeftRight = -1;
        m_lastSignificantMiddleRight = -1;
        m_lastSignificantConflict = -1;
-       int prev = -1;
-       const int size = (int) m_diffs.size();
+       ptrdiff_t prev = -1;
+       const ptrdiff_t size = (int) m_diffs.size();
 
        // must be called after diff list is entirely populated
     for (int i = 0; i < size; ++i)
@@ -582,7 +582,7 @@ const DIFFRANGE * DiffList::LastSignificantDiffRange() const
  */
 int DiffList::PrevSignificant3wayDiffFromLine(int nLine, int nDiffType) const
 {
-       for (int i = m_diffs.size() - 1; i >= 0 ; i--)
+       for (int i = static_cast<int>(m_diffs.size()) - 1; i >= 0 ; i--)
        {
                const DIFFRANGE * dfi = DiffRangeAt(i);
                switch (nDiffType)
@@ -627,9 +627,9 @@ int DiffList::PrevSignificant3wayDiffFromLine(int nLine, int nDiffType) const
  */
 int DiffList::NextSignificant3wayDiffFromLine(int nLine, int nDiffType) const
 {
-       const size_t nDiffCount = m_diffs.size();
+       const int nDiffCount = static_cast<int>(m_diffs.size());
 
-       for (size_t i = 0; i < nDiffCount; i++)
+       for (int i = 0; i < nDiffCount; i++)
        {
                const DIFFRANGE * dfi = DiffRangeAt(i);
                switch (nDiffType)
@@ -702,7 +702,7 @@ int DiffList::NextSignificant3wayDiff(int nDiff, int nDiffType) const
 {
        while (m_diffs[nDiff].next != -1)
        {
-               nDiff = m_diffs[nDiff].next;
+               nDiff = static_cast<int>(m_diffs[nDiff].next);
                switch (nDiffType)
                {
                case THREEWAYDIFFTYPE_LEFTMIDDLE:
@@ -747,7 +747,7 @@ int DiffList::PrevSignificant3wayDiff(int nDiff, int nDiffType) const
 {
        while (m_diffs[nDiff].prev != -1)
        {
-               nDiff = m_diffs[nDiff].prev;
+               nDiff = static_cast<int>(m_diffs[nDiff].prev);
                switch (nDiffType)
                {
                case THREEWAYDIFFTYPE_LEFTMIDDLE:
index 628246f..a8a7d63 100644 (file)
@@ -105,8 +105,8 @@ public:
  */
 struct DiffRangeInfo: public DIFFRANGE
 {
-       size_t next; /**< link (array index) for doubly-linked chain of non-trivial DIFFRANGEs */
-       size_t prev; /**< link (array index) for doubly-linked chain of non-trivial DIFFRANGEs */
+       ptrdiff_t next; /**< link (array index) for doubly-linked chain of non-trivial DIFFRANGEs */
+       ptrdiff_t prev; /**< link (array index) for doubly-linked chain of non-trivial DIFFRANGEs */
 
        DiffRangeInfo() { InitLinks(); }
        explicit DiffRangeInfo(const DIFFRANGE & di) : DIFFRANGE(di) { InitLinks(); }
index 618a0fd..b897c3d 100644 (file)
@@ -84,8 +84,9 @@ static void EscapeControlChars(String &s)
                // Is it a control character in the range 0..31 except TAB?
                if (!(c & ~_T('\x1F')) && c != _T('\t'))
                {
-                       // Bitwise OR with 0x100 so _itot() will output 3 hex digits
-                       _itot(0x100 | c, p + n - 4, 16);
+                       // TODO: speed this up via table lookup
+                       // Bitwise OR with 0x100 so _itot_s() will output 3 hex digits
+                       _itot_s(0x100 | c, p + n - 4, 4, 16);
                        // Replace terminating zero with leadout character
                        p[n - 1] = _T('\\');
                        // Prepare to replace 1st hex digit with leadin character
@@ -150,7 +151,7 @@ bool CDiffTextBuffer::GetLine(int nLineIndex, CString &strLine) const
                strLine.Empty();
        else
        {
-               _tcsncpy(strLine.GetBuffer(nLineLength + 1),
+               _tcsncpy_s(strLine.GetBuffer(nLineLength + 1), nLineLength + 1,
                        CCrystalTextBuffer::GetLineChars(nLineIndex), nLineLength);
                strLine.ReleaseBuffer(nLineLength);
        }
@@ -190,7 +191,7 @@ bool CDiffTextBuffer::GetFullLine(int nLineIndex, CString &strLine) const
 }
 
 void CDiffTextBuffer::AddUndoRecord(bool bInsert, const CPoint & ptStartPos,
-               const CPoint & ptEndPos, LPCTSTR pszText, int cchText,
+               const CPoint & ptEndPos, LPCTSTR pszText, size_t cchText,
                int nActionType /*= CE_ACTION_UNKNOWN*/,
                CDWordArray *paSavedRevisionNumbers)
 {
@@ -633,9 +634,9 @@ int CDiffTextBuffer::SaveToFile (const String& pszFileName,
                // Write tempfile over original file
                try
                {
-                       TFile file(sIntermediateFilename);
-                       file.copyTo(pszFileName);
-                       file.remove();
+                       TFile file1(sIntermediateFilename);
+                       file1.copyTo(pszFileName);
+                       file1.remove();
                        if (bClearModifiedFlag)
                        {
                                SetModified(false);
index 3918113..4157e9e 100644 (file)
@@ -43,9 +43,9 @@ public :
 
        void SetTempPath(const String &path);
        virtual void AddUndoRecord (bool bInsert, const CPoint & ptStartPos,
-               const CPoint & ptEndPos, LPCTSTR pszText, int cchText,
+               const CPoint & ptEndPos, LPCTSTR pszText, size_t cchText,
                int nActionType = CE_ACTION_UNKNOWN,
-               CDWordArray *paSavedRevisionNumbers = NULL);
+               CDWordArray *paSavedRevisionNumbers = NULL) override;
        bool curUndoGroup();
        void ReplaceFullLines(CDiffTextBuffer& dbuf, CDiffTextBuffer& sbuf, CCrystalTextView * pSource, int nLineBegin, int nLineEnd, int nAction =CE_ACTION_UNKNOWN);
 
@@ -72,11 +72,11 @@ public :
        // if line has any text (including eol), set strLine to text (including eol)
        bool GetFullLine(int nLineIndex, CString &strLine) const;
 
-       virtual void SetModified (bool bModified = TRUE);
+       virtual void SetModified (bool bModified = TRUE) override;
        void prepareForRescan();
-       virtual void OnNotifyLineHasBeenEdited(int nLine);
+       virtual void OnNotifyLineHasBeenEdited(int nLine) override;
        bool IsInitialized() const;
        virtual bool DeleteText2 (CCrystalTextView * pSource, int nStartLine,
                int nStartPos, int nEndLine, int nEndPos,
-               int nAction = CE_ACTION_UNKNOWN, bool bHistory =true);
+               int nAction = CE_ACTION_UNKNOWN, bool bHistory =true) override;
 };
index c864096..27141ee 100644 (file)
@@ -456,9 +456,9 @@ bool CDiffWrapper::PostFilter(int StartPos, int EndPos, int Direction,
                                int TrivLinePos = i+1;
                                for(; TrivLinePos != (StartPos + QtyLinesInBlock);++TrivLinePos)
                                {
-                                       size_t len = files[FileNo].linbuf[TrivLinePos + 1] - files[FileNo].linbuf[TrivLinePos];
+                                       size_t len1 = files[FileNo].linbuf[TrivLinePos + 1] - files[FileNo].linbuf[TrivLinePos];
                                        const char *LineStrTrvCk = files[FileNo].linbuf[TrivLinePos];
-                                       std::string LineDataTrvCk(LineStrTrvCk, linelen(LineStrTrvCk, len));
+                                       std::string LineDataTrvCk(LineStrTrvCk, linelen(LineStrTrvCk, len1));
                                        if (LineDataTrvCk.size() &&
                                                !IsTrivialBytes(LineDataTrvCk.c_str(), LineDataTrvCk.c_str() + LineDataTrvCk.size(), filtercommentsset))
                                        {
@@ -755,12 +755,11 @@ bool CDiffWrapper::RunFileDiff()
                String sTempPath = env::GetTemporaryPath(); // get path to Temp folder
                String path = paths::ConcatPath(sTempPath, _T("Diff.txt"));
 
-               outfile = _tfopen(path.c_str(), _T("w+"));
-               if (outfile != NULL)
+               if (_tfopen_s(&outfile, path.c_str(), _T("w+")) == 0)
                {
                        print_normal_script(script);
                        fclose(outfile);
-                       outfile = NULL;
+                       outfile = nullptr;
                }
 #endif
        }
@@ -1002,36 +1001,38 @@ String CDiffWrapper::FormatSwitchString() const
        
        switch (m_options.m_outputStyle)
        {
-       case OUTPUT_CONTEXT:
+       case DIFF_OUTPUT_NORMAL:
+               switches = _T(" ");
+               break;
+       case DIFF_OUTPUT_CONTEXT:
                switches = _T(" C");
                break;
-       case OUTPUT_UNIFIED:
+       case DIFF_OUTPUT_UNIFIED:
                switches = _T(" U");
                break;
-       case OUTPUT_ED:
+#if 0
+       case DIFF_OUTPUT_ED:
                switches = _T(" e");
                break;
-       case OUTPUT_FORWARD_ED:
+       case DIFF_OUTPUT_FORWARD_ED:
                switches = _T(" f");
                break;
-       case OUTPUT_RCS:
+       case DIFF_OUTPUT_RCS:
                switches = _T(" n");
                break;
-       case OUTPUT_NORMAL:
-               switches = _T(" ");
-               break;
-       case OUTPUT_IFDEF:
+       case DIFF_OUTPUT_IFDEF:
                switches = _T(" D");
                break;
-       case OUTPUT_SDIFF:
+       case DIFF_OUTPUT_SDIFF:
                switches = _T(" y");
                break;
+#endif
        }
 
        if (m_options.m_contextLines > 0)
        {
                TCHAR tmpNum[5] = {0};
-               _itot(m_options.m_contextLines, tmpNum, 10);
+               _itot_s(m_options.m_contextLines, tmpNum, 10);
                switches += tmpNum;
        }
 
@@ -1308,17 +1309,18 @@ CDiffWrapper::LoadWinMergeDiffsFromDiffUtilsScript3(
        const file_data * inf10, 
        const file_data * inf12)
 {
-       DiffList diff10, diff12, *pdiff;
+       DiffList diff10, diff12;
        diff10.Clear();
        diff12.Clear();
 
        for (int file = 0; file < 2; file++)
        {
-               struct change *next;
+               struct change *next = nullptr;
                int trans_a0, trans_b0, trans_a1, trans_b1;
                int first0, last0, first1, last1, deletes, inserts;
                OP_TYPE op;
-               const file_data *pinf;
+               const file_data *pinf = nullptr;
+               DiffList *pdiff = nullptr;
 
                switch (file)
                {
@@ -1361,18 +1363,11 @@ CDiffWrapper::LoadWinMergeDiffsFromDiffUtilsScript3(
                                        // Store information about these blocks in moved line info
                                        if (GetDetectMovedBlocks())
                                        {
-                                               int index1 = -1;
-                                               int index2 = -1;
-                                               MovedLines::ML_SIDE side1;
-                                               MovedLines::ML_SIDE side2;
-                                               if (file == 0 /* diff10 */)
-                                               {
-                                                       index1 = 0;
-                                                       index2 = 1;
-                                                       side1 = MovedLines::SIDE_RIGHT;
-                                                       side2 = MovedLines::SIDE_LEFT;
-                                               }
-                                               else if (file == 1 /* diff12 */)
+                                               int index1 = 0;  // defaults for (file == 0 /* diff10 */)
+                                               int index2 = 1;
+                                               MovedLines::ML_SIDE side1 = MovedLines::SIDE_RIGHT;
+                                               MovedLines::ML_SIDE side2 = MovedLines::SIDE_LEFT;
+                                               if (file == 1 /* diff12 */)
                                                {
                                                        index1 = 2;
                                                        index2 = 1;
@@ -1419,14 +1414,15 @@ CDiffWrapper::LoadWinMergeDiffsFromDiffUtilsScript3(
 
 void CDiffWrapper::WritePatchFileHeader(enum output_style output_style, bool bAppendFiles)
 {
-       outfile = NULL;
+       outfile = nullptr;
        if (!m_sPatchFile.empty())
        {
                const TCHAR *mode = (bAppendFiles ? _T("a+") : _T("w+"));
-               outfile = _tfopen(m_sPatchFile.c_str(), mode);
+               if (_tfopen_s(&outfile, m_sPatchFile.c_str(), mode) != 0)
+                       outfile = nullptr;
        }
 
-       if (!outfile)
+       if (outfile == nullptr)
        {
                m_status.bPatchFileFailed = true;
                return;
@@ -1435,14 +1431,16 @@ void CDiffWrapper::WritePatchFileHeader(enum output_style output_style, bool bAp
        // Output patchfile
        switch (output_style)
        {
+       case OUTPUT_NORMAL:
        case OUTPUT_CONTEXT:
        case OUTPUT_UNIFIED:
+#if 0
        case OUTPUT_ED:
        case OUTPUT_FORWARD_ED:
        case OUTPUT_RCS:
-       case OUTPUT_NORMAL:
        case OUTPUT_IFDEF:
        case OUTPUT_SDIFF:
+#endif
                break;
        case OUTPUT_HTML:
                print_html_header();
@@ -1450,18 +1448,19 @@ void CDiffWrapper::WritePatchFileHeader(enum output_style output_style, bool bAp
        }
        
        fclose(outfile);
-       outfile = NULL;
+       outfile = nullptr;
 }
 
 void CDiffWrapper::WritePatchFileTerminator(enum output_style output_style)
 {
-       outfile = NULL;
+       outfile = nullptr;
        if (!m_sPatchFile.empty())
        {
-               outfile = _tfopen(m_sPatchFile.c_str(), _T("a+"));
+               if (_tfopen_s(&outfile, m_sPatchFile.c_str(), _T("a+")) != 0)
+                       outfile = nullptr;
        }
 
-       if (!outfile)
+       if (outfile == nullptr)
        {
                m_status.bPatchFileFailed = true;
                return;
@@ -1470,14 +1469,16 @@ void CDiffWrapper::WritePatchFileTerminator(enum output_style output_style)
        // Output patchfile
        switch (output_style)
        {
+       case OUTPUT_NORMAL:
        case OUTPUT_CONTEXT:
        case OUTPUT_UNIFIED:
+#if 0
        case OUTPUT_ED:
        case OUTPUT_FORWARD_ED:
        case OUTPUT_RCS:
-       case OUTPUT_NORMAL:
        case OUTPUT_IFDEF:
        case OUTPUT_SDIFF:
+#endif
                break;
        case OUTPUT_HTML:
                print_html_terminator();
@@ -1485,7 +1486,7 @@ void CDiffWrapper::WritePatchFileTerminator(enum output_style output_style)
        }
        
        fclose(outfile);
-       outfile = NULL;
+       outfile = nullptr;
 }
 
 /**
@@ -1510,8 +1511,8 @@ void CDiffWrapper::WritePatchFile(struct change * script, file_data * inf)
                path2 = m_files[1];
        path1 = paths::ToUnixPath(path1);
        path2 = paths::ToUnixPath(path2);
-       inf_patch[0].name = strdup(ucr::toSystemCP(path1).c_str());
-       inf_patch[1].name = strdup(ucr::toSystemCP(path2).c_str());
+       inf_patch[0].name = _strdup(ucr::toSystemCP(path1).c_str());
+       inf_patch[1].name = _strdup(ucr::toSystemCP(path2).c_str());
 
        // If paths in m_s1File and m_s2File point to original files, then we can use
        // them to fix potentially meaningless stats from potentially temporary files,
@@ -1527,14 +1528,15 @@ void CDiffWrapper::WritePatchFile(struct change * script, file_data * inf)
                assert(false);
        }
 
-       outfile = NULL;
+       outfile = nullptr;
        if (!m_sPatchFile.empty())
        {
                const TCHAR *mode = (m_bAppendFiles ? _T("a+") : _T("w+"));
-               outfile = _tfopen(m_sPatchFile.c_str(), mode);
+               if (_tfopen_s(&outfile, m_sPatchFile.c_str(), mode) != 0)
+                       outfile = nullptr;
        }
 
-       if (!outfile)
+       if (outfile == nullptr)
        {
                m_status.bPatchFileFailed = true;
                return;
@@ -1553,17 +1555,20 @@ void CDiffWrapper::WritePatchFile(struct change * script, file_data * inf)
        if (strcmp(inf[0].name, "NUL") == 0)
        {
                free((void *)inf[0].name);
-               inf[0].name = strdup("/dev/null");
+               inf[0].name = _strdup("/dev/null");
        }
        if (strcmp(inf[1].name, "NUL") == 0)
        {
                free((void *)inf[1].name);
-               inf[1].name = strdup("/dev/null");
+               inf[1].name = _strdup("/dev/null");
        }
 
        // Output patchfile
        switch (output_style)
        {
+       case OUTPUT_NORMAL:
+               print_normal_script(script);
+               break;
        case OUTPUT_CONTEXT:
                print_context_header(inf_patch, 0);
                print_context_script(script, 0);
@@ -1572,6 +1577,7 @@ void CDiffWrapper::WritePatchFile(struct change * script, file_data * inf)
                print_context_header(inf_patch, 1);
                print_context_script(script, 1);
                break;
+#if 0
        case OUTPUT_ED:
                print_ed_script(script);
                break;
@@ -1581,15 +1587,13 @@ void CDiffWrapper::WritePatchFile(struct change * script, file_data * inf)
        case OUTPUT_RCS:
                print_rcs_script(script);
                break;
-       case OUTPUT_NORMAL:
-               print_normal_script(script);
-               break;
        case OUTPUT_IFDEF:
                print_ifdef_script(script);
                break;
        case OUTPUT_SDIFF:
                print_sdiff_script(script);
                break;
+#endif
        case OUTPUT_HTML:
                print_html_diff_header(inf_patch);
                print_html_script(script);
@@ -1597,7 +1601,7 @@ void CDiffWrapper::WritePatchFile(struct change * script, file_data * inf)
        }
        
        fclose(outfile);
-       outfile = NULL;
+       outfile = nullptr;
 
        free((void *)inf_patch[0].name);
        free((void *)inf_patch[1].name);
index a103c49..31e3bc4 100644 (file)
@@ -1348,14 +1348,14 @@ AllowUpwardDirectory::ReturnCode
 CheckAllowUpwardDirectory(const CDiffContext& ctxt, const CTempPathContext *pTempPathContext, PathContext &pathsParent)
 {
        std::vector<String> path(ctxt.GetCompareDirs());
-       for (int i = 0; i < path.size(); ++i)
+       for (int i = 0; i < static_cast<int>(path.size()); ++i)
                path[i] = ctxt.GetNormalizedPath(i);
 
        // If we have temp context it means we are comparing archives
        if (pTempPathContext)
        {
                std::vector<String> name(path.size());
-               for (int i = 0; i < path.size(); ++i)
+               for (int i = 0; i < static_cast<int>(path.size()); ++i)
                        name[i] = paths::FindFileName(path[i]);
 
                String::size_type cchLeftRoot = pTempPathContext->m_strRoot[0].length();
@@ -1364,13 +1364,13 @@ CheckAllowUpwardDirectory(const CDiffContext& ctxt, const CTempPathContext *pTem
                        pathsParent.SetSize(ctxt.GetCompareDirs());
                        if (pTempPathContext->m_pParent)
                        {
-                               for (int i = 0; i < path.size(); ++i)
+                               for (int i = 0; i < static_cast<int>(path.size()); ++i)
                                        pathsParent[i] = pTempPathContext->m_pParent->m_strRoot[i];
                                if (paths::GetPairComparability(pathsParent) != paths::IS_EXISTING_DIR)
                                        return AllowUpwardDirectory::Never;
                                return AllowUpwardDirectory::ParentIsTempPath;
                        }
-                       for (int i = 0; i < path.size(); ++i)
+                       for (int i = 0; i < static_cast<int>(path.size()); ++i)
                                pathsParent[i] = pTempPathContext->m_strDisplayRoot[i];
                        if (pathsParent.size() < 3)
                        {
@@ -1386,9 +1386,9 @@ CheckAllowUpwardDirectory(const CDiffContext& ctxt, const CTempPathContext *pTem
                                strutils::compare_nocase(name[0], _T("ORIGINAL")) == 0 && 
                                strutils::compare_nocase(name[1], _T("ALTERED")) == 0)
                        {
-                               for (int i = 0; i < path.size(); ++i)
+                               for (int i = 0; i < static_cast<int>(path.size()); ++i)
                                        pathsParent[i] = paths::GetParentPath(pathsParent[i]);
-                               for (int i = 0; i < path.size(); ++i)
+                               for (int i = 0; i < static_cast<int>(path.size()); ++i)
                                        name[i] = paths::FindFileName(pathsParent[i]);
                                if (strutils::compare_nocase(name[0], name[1]) == 0)
                                {
@@ -1403,7 +1403,7 @@ CheckAllowUpwardDirectory(const CDiffContext& ctxt, const CTempPathContext *pTem
 
        // If regular parent folders exist, allow opening them
        pathsParent.SetSize(ctxt.GetCompareDirs());
-       for (int i = 0; i < path.size(); ++i)
+       for (int i = 0; i < static_cast<int>(path.size()); ++i)
                pathsParent[i] = paths::GetParentPath(path[i]);
        if (paths::GetPairComparability(pathsParent) != paths::IS_EXISTING_DIR)
                return AllowUpwardDirectory::Never;
index e44f5f9..e37794c 100644 (file)
@@ -117,7 +117,9 @@ BOOL DirCmpReportDlg::OnInitDialog()
 
        // Set selected path to variable so file selection dialog shows
        // correct filename and path.
-       m_ctlReportFile.GetWindowText(PopString(m_sReportFile));
+       CString cstrReportFile;
+       m_ctlReportFile.GetWindowText(cstrReportFile);
+       m_sReportFile = cstrReportFile;
 
        UpdateData(FALSE);
 
index 357d56a..1d5bb81 100644 (file)
@@ -95,6 +95,3 @@ private:
 public:
        afx_msg void OnLvnItemchangedColdlgList(NMHDR *pNMHDR, LRESULT *pResult);
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 5a8538a..c816048 100644 (file)
@@ -68,5 +68,3 @@ private:
 #endif
 };
 
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 658d103..22463bb 100644 (file)
@@ -145,6 +145,3 @@ private:
        bool m_bMarkedRescan; /**< If TRUE next rescan scans only marked items */
        bool m_bGeneratingReport;
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 071f9ef..2478c46 100644 (file)
@@ -6,10 +6,7 @@
  */
 #pragma once
 
-#ifndef DirReportTypes_h_included
 #include "DirReportTypes.h"
-#endif
-
 #include "SuperComboBox.h"
 
 /** 
index 78e3a73..41467b3 100644 (file)
@@ -48,11 +48,11 @@ enum
 /**
  * @brief Width of compare method name pane in statusbar
  */
-const int COMPMETHOD_PANEL_WIDTH = 105;
+const int COMPMETHOD_PANEL_WIDTH = 100;
 /**
  * @brief Width of filter name pane in statusbar
  */
-const int FILTER_PANEL_WIDTH = 135;
+const int FILTER_PANEL_WIDTH = 100;
 
 /**
  * @brief Bottom statusbar panels and indicators
@@ -70,7 +70,7 @@ static UINT indicators[] =
 /**
  * @brief RO status panel width
  */
-static UINT RO_PANEL_WIDTH = 40;
+static UINT RO_PANEL_WIDTH = 30;
 
 /////////////////////////////////////////////////////////////////////////////
 // CDirFrame
@@ -130,6 +130,7 @@ int CDirFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
        String sText = _("RO");
        const int lpx = CClientDC(this).GetDeviceCaps(LOGPIXELSX);
        auto pointToPixel = [lpx](int point) { return MulDiv(point, lpx, 72); };
+       m_wndStatusBar.SetPaneInfo(0, 0, SBPS_STRETCH | SBPS_NOBORDERS, 0);
        m_wndStatusBar.SetPaneInfo(PANE_COMPMETHOD, ID_STATUS_FILTER, 0, pointToPixel(COMPMETHOD_PANEL_WIDTH));
        m_wndStatusBar.SetPaneInfo(PANE_FILTER, ID_STATUS_FILTER, 0, pointToPixel(FILTER_PANEL_WIDTH));
        m_wndStatusBar.SetPaneInfo(PANE_LEFT_RO, ID_STATUS_LEFTDIR_RO, 0, pointToPixel(RO_PANEL_WIDTH));
index 3bc3630..3e43fd8 100644 (file)
@@ -79,7 +79,3 @@ protected:
        DECLARE_MESSAGE_MAP()
 };
 
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 2d439b7..3084b44 100644 (file)
@@ -470,7 +470,7 @@ int DirScan_CompareItems(DiffFuncStruct *myStruct, uintptr_t parentdiffpos)
        std::vector<DiffWorkerPtr> workers;
        NotificationQueue queue;
        myStruct->context->m_pCompareStats->SetCompareThreadCount(nworkers);
-       for (unsigned i = 0; i < nworkers; ++i)
+       for (int i = 0; i < nworkers; ++i)
        {
                workers.push_back(DiffWorkerPtr(new DiffWorker(queue, myStruct->context, i)));
                threadPool.start(*workers[i]);
index 28b5ac2..601b38e 100644 (file)
@@ -116,6 +116,7 @@ CDirView::CDirView()
                , m_hCurrentMenu(nullptr)
                , m_pSavedTreeState(nullptr)
                , m_pColItems(nullptr)
+               , m_nActivePane(-1)
 {
        m_dwDefaultStyle &= ~LVS_TYPEMASK;
        // Show selection all the time, so user can see current item even when
@@ -136,14 +137,12 @@ BEGIN_MESSAGE_MAP(CDirView, CListView)
        ON_WM_CONTEXTMENU()
        //{{AFX_MSG_MAP(CDirView)
        ON_WM_LBUTTONDBLCLK()
-       ON_COMMAND(ID_L2R, (OnDirCopy<SIDE_LEFT, SIDE_RIGHT>))
-       ON_UPDATE_COMMAND_UI(ID_L2R, (OnUpdateDirCopy<SIDE_LEFT, SIDE_RIGHT>))
+       ON_COMMAND_RANGE(ID_L2R, ID_R2L, OnDirCopy)
+       ON_UPDATE_COMMAND_UI_RANGE(ID_L2R, ID_R2L, OnUpdateDirCopy)
        ON_COMMAND(ID_DIR_COPY_LEFT_TO_RIGHT, (OnCtxtDirCopy<SIDE_LEFT, SIDE_RIGHT>))
        ON_UPDATE_COMMAND_UI(ID_DIR_COPY_LEFT_TO_RIGHT, (OnUpdateCtxtDirCopy<SIDE_LEFT, SIDE_RIGHT>))
        ON_COMMAND(ID_DIR_COPY_LEFT_TO_MIDDLE, (OnCtxtDirCopy<SIDE_LEFT, SIDE_MIDDLE>))
        ON_UPDATE_COMMAND_UI(ID_DIR_COPY_LEFT_TO_MIDDLE, (OnUpdateCtxtDirCopy<SIDE_LEFT, SIDE_MIDDLE>))
-       ON_COMMAND(ID_R2L, (OnDirCopy<SIDE_RIGHT, SIDE_LEFT>))
-       ON_UPDATE_COMMAND_UI(ID_R2L, (OnUpdateDirCopy<SIDE_RIGHT, SIDE_LEFT>))
        ON_COMMAND(ID_DIR_COPY_RIGHT_TO_LEFT, (OnCtxtDirCopy<SIDE_RIGHT, SIDE_LEFT>))
        ON_UPDATE_COMMAND_UI(ID_DIR_COPY_RIGHT_TO_LEFT, (OnUpdateCtxtDirCopy<SIDE_RIGHT, SIDE_LEFT>))
        ON_COMMAND(ID_DIR_COPY_RIGHT_TO_MIDDLE, (OnCtxtDirCopy<SIDE_RIGHT, SIDE_MIDDLE>))
@@ -781,10 +780,45 @@ bool CDirView::ListShellContextMenu(SIDE_TYPE stype)
 /**
  * @brief User chose (main menu) Copy from right to left
  */
-template<SIDE_TYPE srctype, SIDE_TYPE dsttype>
-void CDirView::OnDirCopy()
+void CDirView::OnDirCopy(UINT id)
 {
-       DoDirAction(&DirActions::Copy<srctype, dsttype>, _("Copying files..."));
+       bool to_right = (id == ID_L2R) ? true : false;
+       if (GetDocument()->m_nDirs < 3)
+       {
+               if (to_right)
+                       DoDirAction(&DirActions::Copy<SIDE_LEFT, SIDE_RIGHT>, _("Copying files..."));
+               else
+                       DoDirAction(&DirActions::Copy<SIDE_RIGHT, SIDE_LEFT>, _("Copying files..."));
+       }
+       else
+       {
+               if (to_right)
+               {
+                       switch (m_nActivePane)
+                       {
+                       case 0:
+                               DoDirAction(&DirActions::Copy<SIDE_LEFT, SIDE_MIDDLE>, _("Copying files..."));
+                               break;
+                       case 1:
+                       case 2:
+                               DoDirAction(&DirActions::Copy<SIDE_MIDDLE, SIDE_RIGHT>, _("Copying files..."));
+                               break;
+                       }
+               }
+               else
+               {
+                       switch (m_nActivePane)
+                       {
+                       case 0:
+                       case 1:
+                               DoDirAction(&DirActions::Copy<SIDE_MIDDLE, SIDE_LEFT>, _("Copying files..."));
+                               break;
+                       case 2:
+                               DoDirAction(&DirActions::Copy<SIDE_RIGHT, SIDE_MIDDLE>, _("Copying files..."));
+                               break;
+                       }
+               }
+       }
 }
 
 /// User chose (context men) Copy from right to left
@@ -809,10 +843,45 @@ void CDirView::OnUpdateCtxtDirCopy(CCmdUI* pCmdUI)
 }
 
 /// Update main menu Copy Right to Left item
-template<SIDE_TYPE srctype, SIDE_TYPE dsttype>
 void CDirView::OnUpdateDirCopy(CCmdUI* pCmdUI)
 {
-       DoUpdateDirCopy<srctype, dsttype>(pCmdUI, eMain);
+       bool to_right = pCmdUI->m_nID == ID_L2R ? true : false;
+       if (GetDocument()->m_nDirs < 3)
+       {
+               if (to_right)
+                       DoUpdateDirCopy<SIDE_LEFT, SIDE_RIGHT>(pCmdUI, eContext);
+               else
+                       DoUpdateDirCopy<SIDE_RIGHT, SIDE_LEFT>(pCmdUI, eContext);
+       }
+       else
+       {
+               if (to_right)
+               {
+                       switch (m_nActivePane)
+                       {
+                       case 0:
+                               DoUpdateDirCopy<SIDE_LEFT, SIDE_MIDDLE>(pCmdUI, eContext);
+                               break;
+                       case 1:
+                       case 2:
+                               DoUpdateDirCopy<SIDE_MIDDLE, SIDE_RIGHT>(pCmdUI, eContext);
+                               break;
+                       }
+               }
+               else
+               {
+                       switch (m_nActivePane)
+                       {
+                       case 0:
+                       case 1:
+                               DoUpdateDirCopy<SIDE_MIDDLE, SIDE_LEFT>(pCmdUI, eContext);
+                               break;
+                       case 2:
+                               DoUpdateDirCopy<SIDE_RIGHT, SIDE_MIDDLE>(pCmdUI, eContext);
+                               break;
+                       }
+               }
+       }
 }
 
 void CDirView::DoDirAction(DirActions::method_type func, const String& status_message)
@@ -1234,6 +1303,32 @@ void CDirView::OpenSpecialItems(uintptr_t pos1, uintptr_t pos2, uintptr_t pos3)
 }
 
 /**
+ * @brief Creates a pairing folder for unique folder item.
+ * This function creates a pairing folder for unique folder item in
+ * folder compare. This way user can browse into unique folder's
+ * contents and don't necessarily need to copy whole folder structure.
+ * @return true if user agreed and folder was created.
+ */
+static bool CreateFoldersPair(const PathContext& paths)
+{
+       bool created = false;
+       for (const auto& path : paths)
+       {
+               if (!paths::DoesPathExist(path))
+               {
+                       String message =
+                               strutils::format_string1( 
+                                       _("The folder exists only in other side and cannot be opened.\n\nDo you want to create a matching folder:\n%1\nto the other side and open these folders?"),
+                                       path);
+                       int res = AfxMessageBox(message.c_str(), MB_YESNO | MB_ICONWARNING | MB_DONT_ASK_AGAIN);
+                       if (res == IDYES)
+                               created = paths::CreateIfNeeded(path);
+               }
+       }
+       return created;
+}
+
+/**
  * @brief Open selected files or directories.
  *
  * Opens selected files to file compare. If comparing
@@ -1291,10 +1386,13 @@ void CDirView::OpenSelection(SELECTIONTYPE selectionType /*= SELECTIONTYPE_NORMA
                success = GetOpenThreeItems(ctxt, pos1, pos2, pos3, pdi,
                                paths, sel1, sel2, sel3, isdir, nPane, errmsg);
        else
+       {
                // Only one item selected, so perform diff on its sides
                success = GetOpenOneItem(ctxt, pos1, pdi, 
                                paths, sel1, isdir, nPane, errmsg);
-               if (!success)
+               if (isdir)
+                       CreateFoldersPair(paths);
+       }
        if (!success)
        {
                if (!errmsg.empty())
@@ -1409,9 +1507,11 @@ void CDirView::OpenSelectionHex()
                success = GetOpenTwoItems(ctxt, SELECTIONTYPE_NORMAL, pos1, pos2, pdi,
                                paths, sel1, sel2, isdir, nPane, errmsg);
        else
+       {
                // Only one item selected, so perform diff on its sides
                success = GetOpenOneItem(ctxt, pos1, pdi,
                                paths, sel1, isdir, nPane, errmsg);
+       }
        if (!success)
        {
                if (!errmsg.empty())
@@ -1606,7 +1706,8 @@ void CDirView::DoOpen(SIDE_TYPE stype)
 {
        int sel = GetSingleSelectedItem();
        if (sel == -1) return;
-       String file = GetSelectedFileName(SelBegin(), stype, GetDiffContext());
+       DirItemIterator dirBegin = SelBegin();
+       String file = GetSelectedFileName(dirBegin, stype, GetDiffContext());
        if (file.empty()) return;
        HINSTANCE rtn = ShellExecute(::GetDesktopWindow(), _T("edit"), file.c_str(), 0, 0, SW_SHOWNORMAL);
        if (reinterpret_cast<uintptr_t>(rtn) == SE_ERR_NOASSOC)
@@ -1620,7 +1721,8 @@ void CDirView::DoOpenWith(SIDE_TYPE stype)
 {
        int sel = GetSingleSelectedItem();
        if (sel == -1) return;
-       String file = GetSelectedFileName(SelBegin(), stype, GetDiffContext());
+       DirItemIterator dirBegin = SelBegin();
+       String file = GetSelectedFileName(dirBegin, stype, GetDiffContext());
        if (file.empty()) return;
        CString sysdir;
        if (!GetSystemDirectory(sysdir.GetBuffer(MAX_PATH), MAX_PATH)) return;
@@ -1634,7 +1736,8 @@ void CDirView::DoOpenWithEditor(SIDE_TYPE stype)
 {
        int sel = GetSingleSelectedItem();
        if (sel == -1) return;
-       String file = GetSelectedFileName(SelBegin(), stype, GetDiffContext());
+       DirItemIterator dirBegin = SelBegin();
+       String file = GetSelectedFileName(dirBegin, stype, GetDiffContext());
        if (file.empty()) return;
 
        theApp.OpenFileToExternalEditor(file);
@@ -1644,7 +1747,8 @@ void CDirView::DoOpenParentFolder(SIDE_TYPE stype)
 {
        int sel = GetSingleSelectedItem();
        if (sel == -1) return;
-       String file = GetSelectedFileName(SelBegin(), stype, GetDiffContext());
+       DirItemIterator dirBegin = SelBegin();
+       String file = GetSelectedFileName(dirBegin, stype, GetDiffContext());
        if (file.empty()) return;
        String parentFolder = paths::GetParentPath(file);
        ShellExecute(::GetDesktopWindow(), _T("open"), parentFolder.c_str(), 0, 0, SW_SHOWNORMAL);
@@ -1882,6 +1986,14 @@ void CDirView::OpenPrevDiff()
        }
 }
 
+void CDirView::SetActivePane(int pane)
+{
+       if (m_nActivePane >= 0)
+               GetParentFrame()->GetHeaderInterface()->SetActive(m_nActivePane, false);
+       GetParentFrame()->GetHeaderInterface()->SetActive(pane, true);
+       m_nActivePane = pane;
+}
+
 // Go to next diff
 // If none or one item selected select found item
 void CDirView::OnNextdiff()
@@ -2155,7 +2267,7 @@ LRESULT CDirView::OnUpdateUIMessage(WPARAM wParam, LPARAM lParam)
 
                // If compare took more than TimeToSignalCompare seconds, notify user
                clock_t elapsed = clock() - m_compareStart;
-               GetParentFrame()->SetMessageText(
+               GetParentFrame()->SetStatus(
                        strutils::format(_("Elapsed time: %ld ms").c_str(), elapsed).c_str()
                );
                if (elapsed > TimeToSignalCompare * CLOCKS_PER_SEC)
@@ -3009,7 +3121,8 @@ afx_msg void CDirView::OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult)
                if (!sText.IsEmpty())
                {
                        try {
-                               *pResult = DoItemRename(SelBegin(), GetDiffContext(), String(sText));
+                               DirItemIterator dirBegin = SelBegin();
+                               *pResult = DoItemRename(dirBegin, GetDiffContext(), String(sText));
                        } catch (ContentsChangedException& e) {
                                AfxMessageBox(e.m_msg.c_str(), MB_ICONWARNING);
                        }
@@ -3103,8 +3216,15 @@ void CDirView::OnViewTreeMode()
  */
 void CDirView::OnUpdateViewTreeMode(CCmdUI* pCmdUI)
 {
-       pCmdUI->SetCheck(m_bTreeMode);
-       pCmdUI->Enable(GetDiffContext().m_bRecursive);
+       // Don't show Tree Mode as 'checked' if the
+       // menu item is greyed out (disabled).  Its very confusing.
+       if( GetDocument()->GetDiffContext().m_bRecursive ) {
+               pCmdUI->SetCheck(m_bTreeMode);
+               pCmdUI->Enable(TRUE);
+       } else {
+               pCmdUI->SetCheck(FALSE);
+               pCmdUI->Enable(FALSE);
+       }
 }
 
 /**
index 2df781d..4cf9cf3 100644 (file)
@@ -119,6 +119,7 @@ public:
        void MoveToPrevDiff();
        void OpenNextDiff();
        void OpenPrevDiff();
+       void SetActivePane(int pane);
 
 // Implementation types
 private:
@@ -224,17 +225,16 @@ protected:
        HMENU m_hCurrentMenu; /**< Current shell context menu (either left or right) */
        std::unique_ptr<DirViewTreeState> m_pSavedTreeState;
        std::unique_ptr<DirViewColItems> m_pColItems;
+       int m_nActivePane;
 
        // Generated message map functions
        afx_msg void OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult);
        afx_msg void OnContextMenu(CWnd*, CPoint point);
        //{{AFX_MSG(CDirView)
        afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
-       template<SIDE_TYPE srctype, SIDE_TYPE dsttype>
-       afx_msg void OnDirCopy();
+       afx_msg void OnDirCopy(UINT id);
        template<SIDE_TYPE srctype, SIDE_TYPE dsttype>
        afx_msg void OnCtxtDirCopy();
-       template<SIDE_TYPE srctype, SIDE_TYPE dsttype>
        afx_msg void OnUpdateDirCopy(CCmdUI* pCmdUI);
        template<SIDE_TYPE srctype, SIDE_TYPE dsttype>
        afx_msg void OnUpdateCtxtDirCopy(CCmdUI* pCmdUI);
@@ -425,9 +425,3 @@ public:
 inline CDirDoc* CDirView::GetDocument()
 { return reinterpret_cast<CDirDoc*>(m_pDocument); }
 #endif
-
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 6e86e82..922d704 100644 (file)
@@ -947,6 +947,9 @@ static int ColEncodingSort(const CDiffContext *, const void *p, const void *q)
 }
 /* @} */
 
+#undef FIELD_OFFSET    // incorrect for Win32 as defined in WinNT.h
+#define FIELD_OFFSET(type, field)    ((size_t)(LONG_PTR)&(((type *)0)->field))
+
 /**
  * @brief All existing folder compare columns.
  *
index 0d4eb18..44d420b 100644 (file)
@@ -1,7 +1,10 @@
 #include <StdAfx.h>
 #include "DropHandler.h"
 #include <memory>
-#include <ShlObj.h>
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
+#include <shlobj.h>
+#pragma warning (pop)
 #include <comip.h>
 #include "paths.h"
 #include "Environment.h"
index a0768d8..4456d51 100644 (file)
@@ -34,6 +34,7 @@
 
 BEGIN_MESSAGE_MAP(CEditorFilePathBar, CDialogBar)
        ON_NOTIFY_EX (TTN_NEEDTEXT, 0, OnToolTipNotify)
+       ON_CONTROL_RANGE (EN_SETFOCUS, IDC_STATIC_TITLE_PANE0, IDC_STATIC_TITLE_PANE2, OnSetFocusEdit)
 END_MESSAGE_MAP()
 
 
@@ -109,6 +110,15 @@ void CEditorFilePathBar::Resize()
                widths[pane] = (infoBar.rcNormalPosition.right / m_nPanes) - 6;
        Resize(widths);
 }
+
+/** 
+ * @brief Set callback function on EN_SETFOCUS notification
+ */
+void CEditorFilePathBar::SetOnSetFocusCallback(const std::function<void(int)> callbackfunc)
+{
+       m_callbackfunc = callbackfunc;
+}
+
 /** 
  * @brief Set widths.
  * This function resizes both controls to given size. The width is usually
@@ -188,6 +198,12 @@ BOOL CEditorFilePathBar::OnToolTipNotify(UINT id, NMHDR * pTTTStruct, LRESULT *
        return(FALSE);
 }
 
+void CEditorFilePathBar::OnSetFocusEdit(UINT id)
+{
+       if (m_callbackfunc)
+               m_callbackfunc(id - IDC_STATIC_TITLE_PANE0);
+}
+
 /** 
  * @brief Get the path for one side
  *
index ea578a3..09f4d64 100644 (file)
@@ -26,6 +26,7 @@
 #pragma once
 
 #include "FilepathEdit.h"
+#include <functional>
 
 /**
  * Interface to update the header data.
@@ -38,6 +39,7 @@ public:
        virtual void SetActive(int pane, bool bActive) = 0;
        virtual void SetPaneCount(int nPanes) = 0;
        virtual void Resize() = 0;
+       virtual void SetOnSetFocusCallback(const std::function<void(int)> callbackfunc) = 0;
 };
 
 
@@ -61,6 +63,7 @@ public :
        
        void Resize();
        void Resize(int widths[]);
+       void SetOnSetFocusCallback(const std::function<void(int)> callbackfunc);
 
        // Implement IFilepathHeaders
        void SetText(int pane, const String& sString);
@@ -69,7 +72,10 @@ public :
        void SetPaneCount(int nPanes);
 
 protected:
-       BOOL OnToolTipNotify( UINT id, NMHDR * pTTTStruct, LRESULT * pResult );
+       //{{AFX_MSG(CEditorFilePathBar)
+       afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pTTTStruct, LRESULT * pResult );
+       afx_msg void OnSetFocusEdit(UINT id);
+       //}}AFX_MSG
        DECLARE_MESSAGE_MAP();
 
 private:
@@ -77,4 +83,5 @@ private:
        CFilepathEdit m_Edit[3]; /**< Edit controls. */
        CFont m_font; /**< Font for editcontrols */
        int m_nPanes;
+       std::function<void(int)> m_callbackfunc;
 };
index ca1638e..3917ea6 100644 (file)
@@ -43,6 +43,3 @@ private:
 
 public:
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index bb3f1d5..942d35c 100644 (file)
@@ -7,7 +7,10 @@
 #define POCO_NO_UNWINDOWS 1
 #include "Environment.h"
 #include <windows.h>
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
 #include <shlobj.h>
+#pragma warning (pop)
 #include <sstream>
 #include <Poco/Path.h>
 #include <Poco/Process.h>
index 5cabee1..403bc61 100644 (file)
@@ -88,7 +88,7 @@ void FileFilterMgr::LoadFromDirectory(const String& dir, const String& szPattern
                                // caller specified a specific extension
                                // (This is really a workaround for brokenness in windows, which
                                //  doesn't screen correctly on extension in pattern)
-                               std::string ext = filename.substr(filename.length() - extlen);
+                               const std::string ext = filename.substr(filename.length() - extlen);
                                if (icompare(u8ext, ext) != 0)
                                        return;
                        }
index 911d0c3..e2453dc 100644 (file)
@@ -326,7 +326,7 @@ void FileFiltersDlg::OnInfoTip(NMHDR * pNMHDR, LRESULT * pResult)
                {
                        // Set item text to tooltip
                        String strText = m_listFilters.GetItemText(lvhti.iItem, lvhti.iSubItem);
-                       _tcscpy(pInfoTip->pszText, strText.c_str());
+                       _tcscpy_s(pInfoTip->pszText, pInfoTip->cchTextMax, strText.c_str());
                }
        }
 }
@@ -434,7 +434,7 @@ void FileFiltersDlg::OnBnClickedFilterfileNewbutton()
                TCHAR ext[_MAX_EXT] = {0};
                TCHAR dir[_MAX_DIR] = {0};
                TCHAR drive[_MAX_DRIVE] = {0};
-               _tsplitpath(s.c_str(), drive, dir, file, ext);
+               _tsplitpath_s(s.c_str(), drive, _MAX_DRIVE, dir, _MAX_DIR, file, _MAX_FNAME, ext, _MAX_EXT);
                if (_tcslen(ext) == 0)
                {
                        s += FileFilterExt;
index 6d1daa6..9f1fd97 100644 (file)
@@ -86,6 +86,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index d69a928..10cf7bd 100644 (file)
 
 #include <windows.h>
 #include "FileOrFolderSelect.h"
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
 #include <shlobj.h>
+#pragma warning (pop)
 #include <sys/stat.h>
 #include "Environment.h"
 #include "paths.h"
index 79f7ddb..6ee9d4f 100644 (file)
@@ -450,7 +450,7 @@ void GetFreeFunctionsInScripts(std::vector<String>& sNamesArray, const wchar_t *
 
        // fill in these structures
        int nFnc = 0;   
-       int iScript;
+       size_t iScript;
        for (iScript = 0 ; iScript < piScriptArray->size() ; iScript++)
        {
                const PluginInfoPtr & plugin = piScriptArray->at(iScript);
@@ -479,7 +479,7 @@ bool Interactive(String & text, const wchar_t *TransformationEvent, int iFncChos
        PluginArray * piScriptArray = 
                CAllThreadsScripts::GetActiveSet()->GetAvailableScripts(TransformationEvent);
 
-       int iScript;
+       size_t iScript;
        for (iScript = 0 ; iScript < piScriptArray->size() ; iScript++)
        {
                if (iFncChosen < piScriptArray->at(iScript)->m_nFreeFunctions)
index b2a355c..63288a6 100644 (file)
@@ -63,6 +63,3 @@ private:
        COLORREF m_crBackGnd; /**< Control's background color. */
        CBrush m_brBackGnd; /**< Background brush for the control. */
 };
-
-
-/////////////////////////////////////////////////////////////////////////////
index 9b134ef..1107446 100644 (file)
@@ -151,7 +151,7 @@ bool CGhostTextBuffer::InternalDeleteGhostLine (CCrystalTextView * pSource,
 void CGhostTextBuffer::GetTextWithoutEmptys(int nStartLine, int nStartChar, 
                  int nEndLine, int nEndChar, 
                  CString &text, CRLFSTYLE nCrlfStyle /* CRLF_STYLE_AUTOMATIC */,
-                 bool bExcludeInvisibleLines/*=true*/)
+                 bool bExcludeInvisibleLines/*=true*/) const
 {
        const size_t lines = m_aLines.size();
        ASSERT(nStartLine >= 0 && nStartLine < static_cast<intptr_t>(lines));
@@ -252,7 +252,7 @@ void CGhostTextBuffer::GetTextWithoutEmptys(int nStartLine, int nStartChar,
  *   (m_ptCursorPos, m_ptLastChange for example).
  */
 bool CGhostTextBuffer::InsertText (CCrystalTextView * pSource, int nLine,
-               int nPos, LPCTSTR pszText, int cchText, int &nEndLine, int &nEndChar,
+               int nPos, LPCTSTR pszText, size_t cchText, int &nEndLine, int &nEndChar,
                int nAction, bool bHistory /*=true*/)
 {
        bool bGroupFlag = false;
@@ -770,7 +770,7 @@ void CGhostTextBuffer::OnNotifyLineHasBeenEdited(int nLine)
        return;
 }
 
-static int CountEol(LPCTSTR pszText, int cchText)
+static int CountEol(LPCTSTR pszText, size_t cchText)
 {
        int nEol = 0;
        for (int nTextPos = 0; nTextPos < cchText; ++nTextPos)
@@ -786,7 +786,7 @@ static int CountEol(LPCTSTR pszText, int cchText)
 }
 
 void CGhostTextBuffer::AddUndoRecord(bool bInsert, const CPoint & ptStartPos,
-       const CPoint & ptEndPos, LPCTSTR pszText, int cchText,
+       const CPoint & ptEndPos, LPCTSTR pszText, size_t cchText,
        int nActionType /*= CE_ACTION_UNKNOWN*/,
        CDWordArray *paSavedRevisionNumbers)
 {
index 5ea02ec..4e7d198 100644 (file)
@@ -73,24 +73,24 @@ public :
        virtual void GetTextWithoutEmptys (int nStartLine, int nStartChar,
                        int nEndLine, int nEndChar, CString &text,
                        CRLFSTYLE nCrlfStyle =CRLF_STYLE_AUTOMATIC,
-                       bool bExcludeInvisibleLines = true);
+                       bool bExcludeInvisibleLines = true) const override;
 
 
        // Text modification functions
        virtual bool InsertText (CCrystalTextView * pSource, int nLine, int nPos,
-               LPCTSTR pszText, int cchText, int &nEndLine, int &nEndChar,
-               int nAction = CE_ACTION_UNKNOWN, bool bHistory =true);
+               LPCTSTR pszText, size_t cchText, int &nEndLine, int &nEndChar,
+               int nAction = CE_ACTION_UNKNOWN, bool bHistory =true) override;
        virtual bool DeleteText2 (CCrystalTextView * pSource, int nStartLine,
                int nStartPos, int nEndLine, int nEndPos,
-               int nAction = CE_ACTION_UNKNOWN, bool bHistory =true);
+               int nAction = CE_ACTION_UNKNOWN, bool bHistory =true) override;
        bool InsertGhostLine (CCrystalTextView * pSource, int nLine);
 
        virtual void AddUndoRecord (bool bInsert, const CPoint & ptStartPos, const CPoint & ptEndPos,
-                                   LPCTSTR pszText, int cchText, int nActionType = CE_ACTION_UNKNOWN, CDWordArray *paSavedRevisionNumbers = NULL);
-       virtual UndoRecord GetUndoRecord(int nUndoPos) const;
+                                   LPCTSTR pszText, size_t cchText, int nActionType = CE_ACTION_UNKNOWN, CDWordArray *paSavedRevisionNumbers = NULL) override;
+       virtual UndoRecord GetUndoRecord(int nUndoPos) const override;
 
-       virtual CDWordArray *CopyRevisionNumbers(int nStartLine, int nEndLine) const;
-       virtual void RestoreRevisionNumbers(int nStartLine, CDWordArray *paSavedRevisionNumbers);
+       virtual CDWordArray *CopyRevisionNumbers(int nStartLine, int nEndLine) const override;
+       virtual void RestoreRevisionNumbers(int nStartLine, CDWordArray *paSavedRevisionNumbers) override;
 
 public:
        //@{
@@ -138,8 +138,3 @@ protected:
 
        DECLARE_MESSAGE_MAP ()
 };
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 2777fe7..2f25621 100644 (file)
@@ -118,6 +118,3 @@ public:
        virtual void DrawMargin (CDC * pdc, const CRect & rect, int nLineIndex, int nLineNumber);
 
 };
-
-
-/////////////////////////////////////////////////////////////////////////////
index 5b31310..3822708 100644 (file)
@@ -129,7 +129,3 @@ protected:
        DECLARE_MESSAGE_MAP()
 };
 
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 6ae97c9..96cfa0b 100644 (file)
@@ -138,6 +138,12 @@ BOOL CHexMergeFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/,
        }
 
        m_wndFilePathBar.SetPaneCount(m_pMergeDoc->m_nBuffers);
+       m_wndFilePathBar.SetOnSetFocusCallback([&](int pane) {
+               if (m_wndSplitter.GetColumnCount() > 1)
+                       m_wndSplitter.SetActivePane(0, pane);
+               else
+                       m_wndSplitter.SetActivePane(pane, 0);
+       });
 
        // Set filename bars inactive so colors get initialized
        for (nPane = 0; nPane < m_pMergeDoc->m_nBuffers; nPane++)
@@ -168,15 +174,16 @@ BOOL CHexMergeFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/,
        {
                pif[0]->set_sibling(pif[1]);
                pif[1]->set_sibling(pif[0]);
-               pif[1]->share_undorecords(pif[0]);
+               pif[1]->share_undorecords(pif[0]->share_undorecords(nullptr));
        }
        else if (m_pMergeDoc->m_nBuffers > 2)
        {
                pif[0]->set_sibling(pif[1]);
                pif[1]->set_sibling2(pif[0], pif[2]);
                pif[2]->set_sibling(pif[1]);
-               pif[1]->share_undorecords(pif[0]);
-               pif[2]->share_undorecords(pif[0]);
+               pif[2]->share_undorecords(
+                       pif[1]->share_undorecords(
+                               pif[0]->share_undorecords(nullptr)));
        }
 
        // tell merge doc about these views
index 088eb41..d599762 100644 (file)
@@ -28,7 +28,7 @@
 #include "SplitterWndEx.h"
 #include "EditorFilepathBar.h"
 
-#define HEKSEDIT_INTERFACE_VERSION 1
+#define HEKSEDIT_INTERFACE_VERSION 2
 #include "heksedit.h"
 
 class CHexMergeDoc;
@@ -93,8 +93,3 @@ private:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 8de2654..2c343a2 100644 (file)
@@ -351,7 +351,7 @@ HRESULT CHexMergeView::SaveFile(LPCTSTR path)
  */
 BOOL CHexMergeView::GetModified()
 {
-       return m_pif->get_modified();
+       return m_pif->get_status()->iFileChanged;
 }
 
 /**
index 3b3e66a..0d17a7a 100644 (file)
@@ -100,8 +100,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index c765b40..6124bf7 100644 (file)
@@ -469,6 +469,7 @@ int CImgMergeFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
        }
 
        m_wndFilePathBar.SetPaneCount(m_pImgMergeWindow->GetPaneCount());
+       m_wndFilePathBar.SetOnSetFocusCallback([&](int pane) { m_pImgMergeWindow->SetActivePane(pane); });
 
        // Merge frame also has a dockable bar at the very left
        // created in OnCreateClient 
@@ -904,8 +905,8 @@ void CImgMergeFrame::UpdateHeaderSizes()
                {
                        for (int pane = 0; pane < nPaneCount; pane++)
                        {
-                               RECT rc = m_pImgMergeWindow->GetPaneWindowRect(pane);
-                               w[pane] = rc.right - rc.left - 4;
+                               RECT rc1 = m_pImgMergeWindow->GetPaneWindowRect(pane);
+                               w[pane] = rc1.right - rc1.left - 4;
                                if (w[pane]<1) w[pane]=1; // Perry 2003-01-22 (I don't know why this happens)
                        }
                }
@@ -1114,19 +1115,22 @@ bool CImgMergeFrame::PromptAndSaveIfNeeded(bool bAllowCancel)
        {
                if (bLModified && dlg.m_leftSave == SaveClosingDlg::SAVECLOSING_SAVE)
                {
-                       if (!(bLSaveSuccess = DoFileSave(0)))
+                       bLSaveSuccess = DoFileSave(0);
+                       if (!bLSaveSuccess)
                                result = false;
                }
 
                if (bMModified && dlg.m_middleSave == SaveClosingDlg::SAVECLOSING_SAVE)
                {
-                       if (!(bMSaveSuccess = DoFileSave(1)))
+                       bMSaveSuccess = DoFileSave(1);
+                       if (!bMSaveSuccess)
                                result = false;
                }
 
                if (bRModified && dlg.m_rightSave == SaveClosingDlg::SAVECLOSING_SAVE)
                {
-                       if (!(bRSaveSuccess = DoFileSave(m_pImgMergeWindow->GetPaneCount() - 1)))
+                       bRSaveSuccess = DoFileSave(m_pImgMergeWindow->GetPaneCount() - 1);
+                       if (!bRSaveSuccess)
                                result = false;
                }
        }
@@ -1277,8 +1281,8 @@ void CImgMergeFrame::OnIdleUpdateCmdUI()
                RGBQUAD color[3];
                for (int pane = 0; pane < m_pImgMergeWindow->GetPaneCount(); ++pane)
                        color[pane] = m_pImgMergeWindow->GetPixelColor(pane, pt.x, pt.y);
-               double colorDistance01, colorDistance12;
-               colorDistance01 = m_pImgMergeWindow->GetColorDistance(0, 1, pt.x, pt.y);
+               double colorDistance01 = m_pImgMergeWindow->GetColorDistance(0, 1, pt.x, pt.y);
+               double colorDistance12 = 0;
                if (m_pImgMergeWindow->GetPaneCount() == 3)
                        colorDistance12 = m_pImgMergeWindow->GetColorDistance(1, 2, pt.x, pt.y);
 
@@ -1344,7 +1348,8 @@ void CImgMergeFrame::OnUpdateStatusNum(CCmdUI* pCmdUI)
        else if (m_pImgMergeWindow->GetCurrentDiffIndex() < 0)
        {
                s = theApp.LoadString(nDiffs == 1 ? IDS_1_DIFF_FOUND : IDS_NO_DIFF_SEL_FMT);
-               strutils::replace(s, _T("%1"), _itot(nDiffs, sCnt, 10));
+               _itot_s(nDiffs, sCnt, 10);
+               strutils::replace(s, _T("%1"), sCnt);
        }
        
        // There are differences and diff selected
@@ -1353,8 +1358,10 @@ void CImgMergeFrame::OnUpdateStatusNum(CCmdUI* pCmdUI)
        {
                s = theApp.LoadString(IDS_DIFF_NUMBER_STATUS_FMT);
                const int signInd = m_pImgMergeWindow->GetCurrentDiffIndex();
-               strutils::replace(s, _T("%1"), _itot(signInd + 1, sIdx, 10));
-               strutils::replace(s, _T("%2"), _itot(nDiffs, sCnt, 10));
+               _itot_s(signInd + 1, sIdx, 10);
+               strutils::replace(s, _T("%1"), sIdx);
+               _itot_s(nDiffs, sCnt, 10);
+               strutils::replace(s, _T("%2"), sCnt);
        }
        pCmdUI->SetText(s.c_str());
 }
@@ -1925,8 +1932,8 @@ void CImgMergeFrame::OnImgUseBackColor()
                if (dialog.DoModal() == IDOK)
                {
                        COLORREF clrBackColor = dialog.GetColor();
-                       RGBQUAD backColor = {GetBValue(clrBackColor), GetGValue(clrBackColor), GetRValue(clrBackColor)};
-                       m_pImgMergeWindow->SetBackColor(backColor);
+                       RGBQUAD backColor1 = {GetBValue(clrBackColor), GetGValue(clrBackColor), GetRValue(clrBackColor)};
+                       m_pImgMergeWindow->SetBackColor(backColor1);
                        m_pImgMergeWindow->SetUseBackColor(bUseBackColor);
                }
        }
index 939ce4b..f1efeb5 100644 (file)
@@ -221,8 +221,3 @@ private:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index fa6eea0..8e0e5e5 100644 (file)
@@ -6,7 +6,10 @@
  */
 #include "JumpList.h"
 #include <vector>
-#include <ShlObj.h>
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
+#include <shlobj.h>
+#pragma warning (pop)
 #include <propvarutil.h>
 #include <propkey.h>
 #include "unicoder.h"
index 40f7eeb..c056da5 100644 (file)
@@ -64,6 +64,3 @@ private:
 
        LineFiltersList * m_pList; /**< Helper list for getting/setting filters. */
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 081fe3e..b0dda5c 100644 (file)
@@ -226,15 +226,16 @@ void LineFiltersList::Import(const String& filters)
 {
        const TCHAR sep[] = _T("\r\n");
        TCHAR *p_filters = (TCHAR *)&filters[0];
+       TCHAR *pfilterNext = nullptr;
        
        if (!filters.empty())
        {
                // find each regular expression and add to list
-               TCHAR *token = _tcstok(p_filters, sep);
+               TCHAR *token = _tcstok_s(p_filters, sep, &pfilterNext);
                while (token)
                {
                        AddFilter(token, true);
-                       token = _tcstok(NULL, sep);
+                       token = _tcstok_s(NULL, sep, &pfilterNext);
                }
                SaveFilters();
        }
index 9622aab..8b1aaba 100644 (file)
@@ -75,6 +75,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 4df540d..2538ff1 100644 (file)
@@ -135,8 +135,3 @@ protected:
 inline CMergeDoc* CLocationView::GetDocument()
    { return reinterpret_cast<CMergeDoc*>(m_pDocument); }
 #endif
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 9ebc072..3103eb4 100644 (file)
@@ -353,6 +353,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 
        const int lpx = CClientDC(this).GetDeviceCaps(LOGPIXELSX);
        auto pointToPixel = [lpx](int point) { return MulDiv(point, lpx, 72); };
+       m_wndStatusBar.SetPaneInfo(0, 0, SBPS_STRETCH | SBPS_NOBORDERS, 0);
        m_wndStatusBar.SetPaneInfo(1, ID_STATUS_PLUGIN, 0, pointToPixel(225));
        m_wndStatusBar.SetPaneInfo(2, ID_STATUS_MERGINGMODE, 0, pointToPixel(75)); 
        m_wndStatusBar.SetPaneInfo(3, ID_STATUS_DIFFNUM, 0, pointToPixel(112)); 
@@ -1785,11 +1786,11 @@ void CMainFrame::OnResizePanes()
                if (bResize)
                        pFrame->UpdateSplitter();
        }
-       else if (CHexMergeFrame *pFrame = DYNAMIC_DOWNCAST(CHexMergeFrame, pActiveFrame))
+       else if (CHexMergeFrame *pFrame1 = DYNAMIC_DOWNCAST(CHexMergeFrame, pActiveFrame))
        {
-               pFrame->UpdateAutoPaneResize();
+               pFrame1->UpdateAutoPaneResize();
                if (bResize)
-                       pFrame->UpdateSplitter();
+                       pFrame1->UpdateSplitter();
        }
 }
 
@@ -2216,8 +2217,8 @@ void CMainFrame::OnHelpCheckForUpdates()
                delete file;
 
                int exe_vers[4] = { 0 }, cur_vers[4] = { 0 };
-               _stscanf(version.GetProductVersion().c_str(), _T("%d.%d.%d.%d"), &exe_vers[0], &exe_vers[1], &exe_vers[2], &exe_vers[3]);
-               _stscanf(current_version.c_str(),             _T("%d.%d.%d.%d"), &cur_vers[0], &cur_vers[1], &cur_vers[2], &cur_vers[3]);
+               _stscanf_s(version.GetProductVersion().c_str(), _T("%d.%d.%d.%d"), &exe_vers[0], &exe_vers[1], &exe_vers[2], &exe_vers[3]);
+               _stscanf_s(current_version.c_str(),             _T("%d.%d.%d.%d"), &cur_vers[0], &cur_vers[1], &cur_vers[2], &cur_vers[3]);
                String exe_version_hex = strutils::format(_T("%08x%08x%08x%08x"), exe_vers[0], exe_vers[1], exe_vers[2], exe_vers[3]);
                String cur_version_hex = strutils::format(_T("%08x%08x%08x%08x"), cur_vers[0], cur_vers[1], cur_vers[2], cur_vers[3]);
 
@@ -2329,8 +2330,8 @@ BOOL CMainFrame::DoOpenConflict(const String& conflictFile, const String strDesc
                                (strDesc && !strDesc[0].empty()) ? strDesc[0] : _("Theirs File"),
                                (strDesc && !strDesc[2].empty()) ? strDesc[2] : _("Mine File") };
                        DWORD dwFlags[2] = {FFILEOPEN_READONLY | FFILEOPEN_NOMRU, FFILEOPEN_NOMRU | FFILEOPEN_MODIFIED};
-                       conflictCompared = DoFileOpen(&PathContext(revFile, workFile), 
-                                               dwFlags, strDesc2);
+                       PathContext tmpPathContext(revFile, workFile);
+                       conflictCompared = DoFileOpen(&tmpPathContext, dwFlags, strDesc2);
                }
                else
                {
@@ -2338,9 +2339,9 @@ BOOL CMainFrame::DoOpenConflict(const String& conflictFile, const String strDesc
                                (strDesc && !strDesc[0].empty()) ? strDesc[0] : _("Base File"),
                                (strDesc && !strDesc[1].empty()) ? strDesc[1] : _("Theirs File"),
                                (strDesc && !strDesc[2].empty()) ? strDesc[2] : _("Mine File") };
+                       PathContext tmpPathContext(baseFile, revFile, workFile);
                        DWORD dwFlags[3] = {FFILEOPEN_READONLY | FFILEOPEN_NOMRU, FFILEOPEN_READONLY | FFILEOPEN_NOMRU, FFILEOPEN_NOMRU | FFILEOPEN_MODIFIED};
-                       conflictCompared = DoFileOpen(&PathContext(baseFile, revFile, workFile), 
-                                               dwFlags, strDesc3);
+                       conflictCompared = DoFileOpen(&tmpPathContext, dwFlags, strDesc3);
                }
        }
        else
@@ -2464,7 +2465,7 @@ void CMainFrame::OnUpdateCompareMethod(CCmdUI* pCmdUI)
 void CMainFrame::OnMRUs(UINT nID)
 {
        std::vector<JumpList::Item> mrus = JumpList::GetRecentDocs(GetOptionsMgr()->GetInt(OPT_MRU_MAX));
-       const int idx = nID - ID_MRU_FIRST;
+       const size_t idx = nID - ID_MRU_FIRST;
        if (idx < mrus.size())
        {
                MergeCmdLineInfo cmdInfo((_T("\"") + mrus[idx].path + _T("\" ") + mrus[idx].params).c_str());
@@ -2480,7 +2481,7 @@ void CMainFrame::OnUpdateNoMRUs(CCmdUI* pCmdUI)
                return;
        
        // empty the menu
-       int i = ::GetMenuItemCount(hMenu);
+       size_t i = ::GetMenuItemCount(hMenu);
        while (i --)
                ::DeleteMenu(hMenu, 0, MF_BYPOSITION);
 
index f09d7fb..47ebe7b 100644 (file)
@@ -280,8 +280,3 @@ private:
 };
 
 CMainFrame * GetMainFrame(); // access to the singleton main frame object
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index f016a68..606e9d6 100644 (file)
@@ -899,12 +899,12 @@ BOOL CMergeApp::CreateBackup(BOOL bFolder, const String& pszPath)
                // nice way to add a real time (invalid chars etc).
                if (GetOptionsMgr()->GetBool(OPT_BACKUP_ADD_TIME))
                {
-                       struct tm *tm;
+                       struct tm tm;
                        time_t curtime = 0;
                        time(&curtime);
-                       tm = localtime(&curtime);
+                       ::localtime_s(&tm, &curtime);
                        CString timestr;
-                       timestr.Format(_T("%04d%02d%02d%02d%02d%02d"), tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
+                       timestr.Format(_T("%04d%02d%02d%02d%02d%02d"), tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
                        filename += _T("-");
                        filename += timestr;
                }
index 99b69a4..408efc4 100644 (file)
@@ -180,6 +180,3 @@ private:
 };
 
 extern CMergeApp theApp;
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
diff --git a/Src/Merge.vcxproj b/Src/Merge.vcxproj
deleted file mode 100644 (file)
index 210abac..0000000
+++ /dev/null
@@ -1,1177 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Test|Win32">\r
-      <Configuration>Test</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Test|x64">\r
-      <Configuration>Test</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="UnicodeDebug|Win32">\r
-      <Configuration>UnicodeDebug</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="UnicodeDebug|x64">\r
-      <Configuration>UnicodeDebug</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="UnicodeRelease|Win32">\r
-      <Configuration>UnicodeRelease</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="UnicodeRelease|x64">\r
-      <Configuration>UnicodeRelease</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-  </ItemGroup>\r
-  <PropertyGroup Label="Globals">\r
-    <ProjectName>Merge</ProjectName>\r
-    <ProjectGuid>{9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}</ProjectGuid>\r
-    <RootNamespace>Merge</RootNamespace>\r
-    <Keyword>MFCProj</Keyword>\r
-  </PropertyGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>Static</UseOfMfc>\r
-    <CharacterSet>Unicode</CharacterSet>\r
-    <PlatformToolset>v141</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>Static</UseOfMfc>\r
-    <CharacterSet>Unicode</CharacterSet>\r
-    <PlatformToolset>v141</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>Static</UseOfMfc>\r
-    <CharacterSet>Unicode</CharacterSet>\r
-    <PlatformToolset>v141_xp</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>Static</UseOfMfc>\r
-    <CharacterSet>Unicode</CharacterSet>\r
-    <PlatformToolset>v141</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>Static</UseOfMfc>\r
-    <CharacterSet>Unicode</CharacterSet>\r
-    <PlatformToolset>v141</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <UseOfMfc>Static</UseOfMfc>\r
-    <CharacterSet>Unicode</CharacterSet>\r
-    <PlatformToolset>v141_xp</PlatformToolset>\r
-  </PropertyGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
-  <ImportGroup Label="ExtensionSettings">\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <PropertyGroup Label="UserMacros" />\r
-  <PropertyGroup>\r
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">.\..\Build\Merge$(Configuration)\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">.\..\BuildTmp\Merge$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">.\..\Build\$(Platform)\Merge$(Configuration)\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">.\..\BuildTmp\$(Platform)\Merge$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">false</LinkIncremental>\r
-    <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">true</EmbedManifest>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">.\..\Build\Merge$(Configuration)\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">.\..\Build\Merge$(Configuration)\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">.\..\BuildTmp\Merge$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">.\..\BuildTmp\Merge$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">true</LinkIncremental>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">true</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">.\..\Build\$(Platform)\Merge$(Configuration)\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Test|x64'">.\..\Build\$(Platform)\Merge$(Configuration)\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">.\..\BuildTmp\$(Platform)\Merge$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Test|x64'">.\..\BuildTmp\$(Platform)\Merge$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">true</LinkIncremental>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</LinkIncremental>\r
-    <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">true</EmbedManifest>\r
-    <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</EmbedManifest>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">Win$(ProjectName)U</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Test|x64'">Win$(ProjectName)U</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">Win$(ProjectName)U</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">Win$(ProjectName)U</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Win$(ProjectName)U</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">Win$(ProjectName)U</TargetName>\r
-  </PropertyGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">\r
-    <Midl>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MkTypLibCompatible>true</MkTypLibCompatible>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <TargetEnvironment>Win32</TargetEnvironment>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>MinSpace</Optimization>\r
-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
-      <AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WINVER=0x0501;WIN32;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <StringPooling>true</StringPooling>\r
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
-      <PrecompiledHeader>Use</PrecompiledHeader>\r
-      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
-      <CompileAs>Default</CompileAs>\r
-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
-      <ExceptionHandling>Async</ExceptionHandling>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0409</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalOptions>/verbose:lib %(AdditionalOptions)</AdditionalOptions>\r
-      <AdditionalDependencies>version.lib;shlwapi.lib;imm32.lib;HtmlHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(OutDir)/WinMergeU.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <AdditionalLibraryDirectories>..\Externals\poco\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <IgnoreSpecificDefaultLibraries>msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Windows</SubSystem>\r
-      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-    </Link>\r
-    <PostBuildEvent>\r
-      <Command>\r
-      </Command>\r
-    </PostBuildEvent>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">\r
-    <CustomBuildStep>\r
-      <Command>\r
-      </Command>\r
-      <Outputs>$(TargetDir)WinMergeU.map;%(Outputs)</Outputs>\r
-    </CustomBuildStep>\r
-    <Midl>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MkTypLibCompatible>true</MkTypLibCompatible>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <TargetEnvironment>X64</TargetEnvironment>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>MinSpace</Optimization>\r
-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
-      <AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WINVER=0x0501;WIN64;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;HAVE_LIMITS_H;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <StringPooling>true</StringPooling>\r
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
-      <PrecompiledHeader>Use</PrecompiledHeader>\r
-      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
-      <CompileAs>Default</CompileAs>\r
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
-      <ExceptionHandling>Async</ExceptionHandling>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0409</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalOptions>/verbose:lib %(AdditionalOptions)</AdditionalOptions>\r
-      <AdditionalDependencies>version.lib;shlwapi.lib;imm32.lib;HtmlHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(OutDir)/WinMergeU.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <AdditionalLibraryDirectories>..\Externals\poco\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <IgnoreSpecificDefaultLibraries>msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Windows</SubSystem>\r
-      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX64</TargetMachine>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-      <OptimizeReferences>\r
-      </OptimizeReferences>\r
-    </Link>\r
-    <PostBuildEvent>\r
-      <Command>\r
-      </Command>\r
-    </PostBuildEvent>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">\r
-    <Midl>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MkTypLibCompatible>true</MkTypLibCompatible>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <TargetEnvironment>Win32</TargetEnvironment>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WINVER=0x0501;_DEBUG;WIN32;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
-      <PrecompiledHeader>Use</PrecompiledHeader>\r
-      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
-      <BrowseInformation>true</BrowseInformation>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
-      <CompileAs>Default</CompileAs>\r
-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
-      <ExceptionHandling>Async</ExceptionHandling>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0409</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalDependencies>version.lib;shlwapi.lib;imm32.lib;HtmlHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(OutDir)/WinMergeU.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <AdditionalLibraryDirectories>..\Externals\poco\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Windows</SubSystem>\r
-      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
-    </Link>\r
-    <PostBuildEvent>\r
-      <Command>\r
-      </Command>\r
-    </PostBuildEvent>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">\r
-    <Midl>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MkTypLibCompatible>true</MkTypLibCompatible>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <TargetEnvironment>Win32</TargetEnvironment>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>.;..\Externals\gtest;..\Externals\gtest\include;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0501;_DEBUG;WIN32;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
-      <PrecompiledHeader>Use</PrecompiledHeader>\r
-      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
-      <BrowseInformation>true</BrowseInformation>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
-      <CompileAs>Default</CompileAs>\r
-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
-      <ExceptionHandling>Async</ExceptionHandling>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0409</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalDependencies>version.lib;shlwapi.lib;imm32.lib;HtmlHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(OutDir)/WinMergeU.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <AdditionalLibraryDirectories>..\Externals\poco\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Console</SubSystem>\r
-      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
-    </Link>\r
-    <PostBuildEvent>\r
-      <Command>\r
-      </Command>\r
-    </PostBuildEvent>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">\r
-    <CustomBuildStep>\r
-      <Command>\r
-      </Command>\r
-      <Outputs>$(TargetDir)WinMergeU.map;%(Outputs)</Outputs>\r
-    </CustomBuildStep>\r
-    <Midl>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MkTypLibCompatible>true</MkTypLibCompatible>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <TargetEnvironment>X64</TargetEnvironment>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;HAVE_LIMITS_H;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
-      <PrecompiledHeader>Use</PrecompiledHeader>\r
-      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
-      <BrowseInformation>true</BrowseInformation>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
-      <CompileAs>Default</CompileAs>\r
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
-      <ExceptionHandling>Async</ExceptionHandling>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0409</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalDependencies>version.lib;shlwapi.lib;imm32.lib;HtmlHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(OutDir)/WinMergeU.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <AdditionalLibraryDirectories>..\Externals\poco\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Windows</SubSystem>\r
-      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX64</TargetMachine>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-      <Profile>false</Profile>\r
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
-    </Link>\r
-    <PostBuildEvent>\r
-      <Command>\r
-      </Command>\r
-    </PostBuildEvent>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'">\r
-    <CustomBuildStep>\r
-      <Command>\r
-      </Command>\r
-      <Outputs>$(TargetDir)WinMergeU.map;%(Outputs)</Outputs>\r
-    </CustomBuildStep>\r
-    <Midl>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MkTypLibCompatible>true</MkTypLibCompatible>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <TargetEnvironment>X64</TargetEnvironment>\r
-      <HeaderFileName>\r
-      </HeaderFileName>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>.;..\Externals\gtest;..\Externals\gtest\include;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;HAVE_LIMITS_H;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
-      <PrecompiledHeader>Use</PrecompiledHeader>\r
-      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
-      <BrowseInformation>true</BrowseInformation>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
-      <CompileAs>Default</CompileAs>\r
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
-      <ExceptionHandling>Async</ExceptionHandling>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Culture>0x0409</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <AdditionalDependencies>version.lib;shlwapi.lib;imm32.lib;HtmlHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(OutDir)/WinMergeU.exe</OutputFile>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <AdditionalLibraryDirectories>..\Externals\poco\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Console</SubSystem>\r
-      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX64</TargetMachine>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-      <Profile>false</Profile>\r
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
-    </Link>\r
-    <PostBuildEvent>\r
-      <Command>\r
-      </Command>\r
-    </PostBuildEvent>\r
-  </ItemDefinitionGroup>\r
-  <ItemGroup>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\asp.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\basic.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\batch.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaleditview.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextmarkers.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextview.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextview2.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ceditreplacedlg.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\cfindtextdlg.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\chcondlg.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\cplusplus.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\cregexp_poco.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\crystaleditviewex.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\crystalparser.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\crystaltextblock.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\cs2cs.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\csharp.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\css.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ctextmarkerdlg.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\dcl.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\filesup.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\fortran.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\fpattern.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\go.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\gotodlg.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\html.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ini.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\innosetup.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\is.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\java.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\LineInfo.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\lisp.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\memcombo.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\nsis.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\pascal.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\perl.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\php.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\po.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\powershell.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\python.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\registry.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\rexx.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\rsrc.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ruby.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\rust.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\sgml.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\sh.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\siod.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\sql.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\statbar.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\string_util.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\SyntaxColors.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\tcl.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\tex.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\UndoRecord.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\verilog.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\vhdl.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ViewableWhitespace.cpp" />\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\xml.cpp" />\r
-    <ClCompile Include="7zCommon.cpp">\r
-    </ClCompile>\r
-    <ClCompile Include="AboutDlg.cpp">\r
-    </ClCompile>\r
-    <ClCompile Include="Common\BCMenu.cpp" />\r
-    <ClCompile Include="Common\Bitmap.cpp" />\r
-    <ClCompile Include="CCPromptDlg.cpp">\r
-    </ClCompile>\r
-    <ClCompile Include="charsets.c">\r
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Test|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Test|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">true</BrowseInformation>\r
-      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">true</BrowseInformation>\r
-      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">true</BrowseInformation>\r
-      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</BrowseInformation>\r
-      <Optimization Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">Disabled</Optimization>\r
-      <Optimization Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Disabled</Optimization>\r
-      <Optimization Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">Disabled</Optimization>\r
-      <Optimization Condition="'$(Configuration)|$(Platform)'=='Test|x64'">Disabled</Optimization>\r
-      <Optimization Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">MinSpace</Optimization>\r
-      <Optimization Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">MinSpace</Optimization>\r
-    </ClCompile>\r
-    <ClCompile Include="ChildFrm.cpp" />\r
-    <ClCompile Include="Common\ClipBoard.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\CMoveConstraint.cpp" />\r
-    <ClCompile Include="codepage_detect.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\ColorButton.cpp" />\r
-    <ClCompile Include="Common\ExConverter.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\BinaryCompare.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareOptions.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareStatisticsDlg.cpp" />\r
-    <ClCompile Include="CompareStats.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="ConfigLog.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="ConfirmFolderCopyDlg.cpp" />\r
-    <ClCompile Include="ConflictFileParser.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\coretools.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DropHandler.cpp" />\r
-    <ClCompile Include="ImgMergeFrm.cpp" />\r
-    <ClCompile Include="Merge7zFormatMergePluginImpl.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Merge7zFormatShellImpl.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeStatusBar.cpp" />\r
-    <ClCompile Include="OptionsDef.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsCustomColors.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffContext.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffFileData.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffFileInfo.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffItem.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffItemList.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffList.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffTextBuffer.cpp" />\r
-    <ClCompile Include="DiffThread.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffViewBar.cpp" />\r
-    <ClCompile Include="DiffWrapper.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DirActions.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DirCmpReport.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DirCmpReportDlg.cpp" />\r
-    <ClCompile Include="DirColsDlg.cpp" />\r
-    <ClCompile Include="DirCompProgressBar.cpp" />\r
-    <ClCompile Include="DirDoc.cpp" />\r
-    <ClCompile Include="DirFrame.cpp" />\r
-    <ClCompile Include="DirItem.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DirScan.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DirTravel.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="DirView.cpp" />\r
-    <ClCompile Include="DirViewColItems.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="dllpstub.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="EditorFilepathBar.cpp" />\r
-    <ClCompile Include="EncodingErrorBar.cpp" />\r
-    <ClCompile Include="Environment.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FileActionScript.cpp" />\r
-    <ClCompile Include="FileFilter.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FileFilterHelper.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FileFilterMgr.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FileFiltersDlg.cpp" />\r
-    <ClCompile Include="FileOrFolderSelect.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FilepathEdit.cpp" />\r
-    <ClCompile Include="FileTextEncoding.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FileTransform.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FileVersion.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FilterCommentsManager.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FilterList.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="FolderCmp.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="GhostTextBuffer.cpp" />\r
-    <ClCompile Include="GhostTextView.cpp" />\r
-    <ClCompile Include="HexMergeDoc.cpp" />\r
-    <ClCompile Include="HexMergeFrm.cpp" />\r
-    <ClCompile Include="HexMergeView.cpp" />\r
-    <ClCompile Include="Common\LanguageSelect.cpp" />\r
-    <ClCompile Include="JumpList.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="LineFiltersDlg.cpp" />\r
-    <ClCompile Include="LineFiltersList.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="LoadSaveCodepageDlg.cpp" />\r
-    <ClCompile Include="locality.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="LocationBar.cpp" />\r
-    <ClCompile Include="LocationView.cpp" />\r
-    <ClCompile Include="Common\lwdisp.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="MainFrm.cpp" />\r
-    <ClCompile Include="markdown.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\MDITabBar.cpp" />\r
-    <ClCompile Include="Merge.cpp" />\r
-    <ClCompile Include="MergeApp.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeCmdLineInfo.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeDoc.cpp" />\r
-    <ClCompile Include="MergeDocDiffSync.cpp" />\r
-    <ClCompile Include="MergeDocEncoding.cpp" />\r
-    <ClCompile Include="MergeDocLineDiffs.cpp" />\r
-    <ClCompile Include="MergeEditView.cpp" />\r
-    <ClCompile Include="Common\MessageBoxDialog.cpp" />\r
-    <ClCompile Include="MovedBlocks.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="MovedLines.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\multiformatText.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="OpenDoc.cpp" />\r
-    <ClCompile Include="OpenFrm.cpp" />\r
-    <ClCompile Include="OpenView.cpp" />\r
-    <ClCompile Include="OptionsDiffColors.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsDiffOptions.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsFont.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsInit.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="common\OptionsMgr.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsPanel.cpp" />\r
-    <ClCompile Include="OptionsSyntaxColors.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="PatchDlg.cpp" />\r
-    <ClCompile Include="PatchHTML.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="PatchTool.cpp" />\r
-    <ClCompile Include="PathContext.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="paths.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\Picture.cpp" />\r
-    <ClCompile Include="Common\PidlContainer.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="PluginManager.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Plugins.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="PluginsListDlg.cpp" />\r
-    <ClCompile Include="Common\PreferencesDlg.cpp" />\r
-    <ClCompile Include="ProjectFile.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="ProjectFilePathsDlg.cpp" />\r
-    <ClCompile Include="PropArchive.cpp" />\r
-    <ClCompile Include="PropBackups.cpp" />\r
-    <ClCompile Include="PropCodepage.cpp" />\r
-    <ClCompile Include="PropColors.cpp" />\r
-    <ClCompile Include="PropCompare.cpp" />\r
-    <ClCompile Include="PropCompareBinary.cpp" />\r
-    <ClCompile Include="PropCompareFolder.cpp" />\r
-    <ClCompile Include="PropCompareImage.cpp" />\r
-    <ClCompile Include="PropEditor.cpp" />\r
-    <ClCompile Include="Common\PropertyPageHost.cpp" />\r
-    <ClCompile Include="PropGeneral.cpp" />\r
-    <ClCompile Include="PropMarkerColors.cpp" />\r
-    <ClCompile Include="PropRegistry.cpp" />\r
-    <ClCompile Include="PropShell.cpp" />\r
-    <ClCompile Include="PropSyntaxColors.cpp" />\r
-    <ClCompile Include="PropTextColors.cpp" />\r
-    <ClCompile Include="PropVss.cpp" />\r
-    <ClCompile Include="Common\RegKey.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\RegOptionsMgr.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="SaveClosingDlg.cpp" />\r
-    <ClCompile Include="Common\scbarcf.cpp" />\r
-    <ClCompile Include="Common\scbarg.cpp" />\r
-    <ClCompile Include="SelectUnpackerDlg.cpp" />\r
-    <ClCompile Include="SharedFilterDlg.cpp" />\r
-    <ClCompile Include="Common\ShellContextMenu.cpp" />\r
-    <ClCompile Include="Common\ShellFileOperations.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\sizecbar.cpp" />\r
-    <ClCompile Include="Common\SortHeaderCtrl.cpp" />\r
-    <ClCompile Include="SourceControl.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\SplitterWndEx.cpp" />\r
-    <ClCompile Include="StdAfx.cpp">\r
-      <PrecompiledHeader>Create</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="stringdiffs.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\SuperComboBox.cpp" />\r
-    <ClCompile Include="TempFile.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Test.cpp" />\r
-    <ClCompile Include="TestFilterDlg.cpp" />\r
-    <ClCompile Include="Common\unicoder.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\UnicodeString.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\UniFile.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="TestMain.cpp" />\r
-    <ClCompile Include="TrDialogs.cpp" />\r
-    <ClCompile Include="UniMarkdownFile.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\varprop.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\version.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="VSSHelper.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="VssPromptDlg.cpp" />\r
-    <ClCompile Include="WMGotoDlg.cpp" />\r
-    <ClCompile Include="diffutils\src\analyze.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\lib\cmpbuf.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\context.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\Diff.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\ed.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\GnuVersion.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\ifdef.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\io.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\normal.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\side.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\util.c">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\mystat.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\ByteComparator.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\ByteCompare.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\DiffUtils.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\TimeSizeCompare.cpp">\r
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaleditview.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextmarkers.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextview.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ceditreplacedlg.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\cfindtextdlg.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\chcondlg.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\cregexp.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\crystaleditviewex.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\crystalparser.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\crystaltextblock.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\cs2cs.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ctextmarkerdlg.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\editcmd.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\editreg.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\edtlib.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\filesup.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\fpattern.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\gotodlg.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\LineInfo.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\memcombo.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\registry.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\statbar.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\string_util.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\SyntaxColors.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\UndoRecord.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ViewableWhitespace.h" />\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\wispelld.h" />\r
-    <ClInclude Include="7zCommon.h" />\r
-    <ClInclude Include="AboutDlg.h" />\r
-    <ClInclude Include="Common\BCMenu.h" />\r
-    <ClInclude Include="Common\Bitmap.h" />\r
-    <ClInclude Include="CCPromptDlg.h" />\r
-    <ClInclude Include="charsets.h" />\r
-    <ClInclude Include="ChildFrm.h" />\r
-    <ClInclude Include="Common\ClipBoard.h" />\r
-    <ClInclude Include="Common\CMoveConstraint.h" />\r
-    <ClInclude Include="codepage_detect.h" />\r
-    <ClInclude Include="Common\ColorButton.h" />\r
-    <ClInclude Include="Common\ExConverter.h" />\r
-    <ClInclude Include="CompareEngines\BinaryCompare.h" />\r
-    <ClInclude Include="CompareOptions.h" />\r
-    <ClInclude Include="CompareStatisticsDlg.h" />\r
-    <ClInclude Include="CompareStats.h" />\r
-    <ClInclude Include="ConfigLog.h" />\r
-    <ClInclude Include="ConfirmFolderCopyDlg.h" />\r
-    <ClInclude Include="ConflictFileParser.h" />\r
-    <ClInclude Include="Common\coretools.h" />\r
-    <ClInclude Include="Common\coretypes.h" />\r
-    <ClInclude Include="Constants.h" />\r
-    <ClInclude Include="DirActions.h" />\r
-    <ClInclude Include="HexMergeView.h" />\r
-    <ClInclude Include="DropHandler.h" />\r
-    <ClInclude Include="IMergeDoc.h" />\r
-    <ClInclude Include="ImgMergeFrm.h" />\r
-    <ClInclude Include="Merge7zFormatMergePluginImpl.h" />\r
-    <ClInclude Include="Merge7zFormatRegister.h" />\r
-    <ClInclude Include="Merge7zFormatShellImpl.h" />\r
-    <ClInclude Include="MergeStatusBar.h" />\r
-    <ClInclude Include="OptionsCustomColors.h" />\r
-    <ClInclude Include="Diff3.h" />\r
-    <ClInclude Include="DiffContext.h" />\r
-    <ClInclude Include="DiffFileData.h" />\r
-    <ClInclude Include="DiffFileInfo.h" />\r
-    <ClInclude Include="DiffItem.h" />\r
-    <ClInclude Include="DiffItemList.h" />\r
-    <ClInclude Include="DiffList.h" />\r
-    <ClInclude Include="DiffTextBuffer.h" />\r
-    <ClInclude Include="DiffThread.h" />\r
-    <ClInclude Include="DiffViewBar.h" />\r
-    <ClInclude Include="DiffWrapper.h" />\r
-    <ClInclude Include="DirCmpReport.h" />\r
-    <ClInclude Include="DirCmpReportDlg.h" />\r
-    <ClInclude Include="DirColsDlg.h" />\r
-    <ClInclude Include="DirCompProgressBar.h" />\r
-    <ClInclude Include="DirDoc.h" />\r
-    <ClInclude Include="DirFrame.h" />\r
-    <ClInclude Include="DirItem.h" />\r
-    <ClInclude Include="DirReportTypes.h" />\r
-    <ClInclude Include="DirScan.h" />\r
-    <ClInclude Include="DirTravel.h" />\r
-    <ClInclude Include="DirView.h" />\r
-    <ClInclude Include="DirViewColItems.h" />\r
-    <ClInclude Include="dllpstub.h" />\r
-    <ClInclude Include="EditorFilepathBar.h" />\r
-    <ClInclude Include="EncodingErrorBar.h" />\r
-    <ClInclude Include="Environment.h" />\r
-    <ClInclude Include="Exceptions.h" />\r
-    <ClInclude Include="FileActionScript.h" />\r
-    <ClInclude Include="FileFilter.h" />\r
-    <ClInclude Include="FileFilterHelper.h" />\r
-    <ClInclude Include="FileFilterMgr.h" />\r
-    <ClInclude Include="FileFiltersDlg.h" />\r
-    <ClInclude Include="FileLocation.h" />\r
-    <ClInclude Include="FileOrFolderSelect.h" />\r
-    <ClInclude Include="FilepathEdit.h" />\r
-    <ClInclude Include="files.h" />\r
-    <ClInclude Include="FileTextEncoding.h" />\r
-    <ClInclude Include="FileTextStats.h" />\r
-    <ClInclude Include="FileTransform.h" />\r
-    <ClInclude Include="FileVersion.h" />\r
-    <ClInclude Include="FilterCommentsManager.h" />\r
-    <ClInclude Include="FilterList.h" />\r
-    <ClInclude Include="FolderCmp.h" />\r
-    <ClInclude Include="GhostTextBuffer.h" />\r
-    <ClInclude Include="GhostTextView.h" />\r
-    <ClInclude Include="HexMergeDoc.h" />\r
-    <ClInclude Include="HexMergeFrm.h" />\r
-    <ClInclude Include="IAbortable.h" />\r
-    <ClInclude Include="IListCtrlImpl.h" />\r
-    <ClInclude Include="IntToIntMap.h" />\r
-    <ClInclude Include="IOptionsPanel.h" />\r
-    <ClInclude Include="Common\LanguageSelect.h" />\r
-    <ClInclude Include="JumpList.h" />\r
-    <ClInclude Include="LineFiltersDlg.h" />\r
-    <ClInclude Include="LineFiltersList.h" />\r
-    <ClInclude Include="LoadSaveCodepageDlg.h" />\r
-    <ClInclude Include="locality.h" />\r
-    <ClInclude Include="LocationBar.h" />\r
-    <ClInclude Include="LocationView.h" />\r
-    <ClInclude Include="Common\lwdisp.h" />\r
-    <ClInclude Include="MainFrm.h" />\r
-    <ClInclude Include="markdown.h" />\r
-    <ClInclude Include="Common\MDITabBar.h" />\r
-    <ClInclude Include="Common\memdc.h" />\r
-    <ClInclude Include="Merge.h" />\r
-    <ClInclude Include="MergeApp.h" />\r
-    <ClInclude Include="MergeCmdLineInfo.h" />\r
-    <ClInclude Include="MergeDoc.h" />\r
-    <ClInclude Include="MergeEditStatus.h" />\r
-    <ClInclude Include="MergeEditView.h" />\r
-    <ClInclude Include="MergeLineFlags.h" />\r
-    <ClInclude Include="Common\MessageBoxDialog.h" />\r
-    <ClInclude Include="MovedLines.h" />\r
-    <ClInclude Include="Common\multiformatText.h" />\r
-    <ClInclude Include="OpenDoc.h" />\r
-    <ClInclude Include="OpenFrm.h" />\r
-    <ClInclude Include="OpenView.h" />\r
-    <ClInclude Include="OptionsDef.h" />\r
-    <ClInclude Include="common\OptionsMgr.h" />\r
-    <ClInclude Include="OptionsDiffColors.h" />\r
-    <ClInclude Include="OptionsDiffOptions.h" />\r
-    <ClInclude Include="OptionsFont.h" />\r
-    <ClInclude Include="OptionsInit.h" />\r
-    <ClInclude Include="OptionsPanel.h" />\r
-    <ClInclude Include="OptionsSyntaxColors.h" />\r
-    <ClInclude Include="PatchDlg.h" />\r
-    <ClInclude Include="PatchHTML.h" />\r
-    <ClInclude Include="PatchTool.h" />\r
-    <ClInclude Include="PathContext.h" />\r
-    <ClInclude Include="paths.h" />\r
-    <ClInclude Include="Common\Picture.h" />\r
-    <ClInclude Include="Common\PidlContainer.h" />\r
-    <ClInclude Include="PluginManager.h" />\r
-    <ClInclude Include="Plugins.h" />\r
-    <ClInclude Include="PluginsListDlg.h" />\r
-    <ClInclude Include="Common\PreferencesDlg.h" />\r
-    <ClInclude Include="ProjectFile.h" />\r
-    <ClInclude Include="ProjectFilePathsDlg.h" />\r
-    <ClInclude Include="PropArchive.h" />\r
-    <ClInclude Include="PropBackups.h" />\r
-    <ClInclude Include="PropCodepage.h" />\r
-    <ClInclude Include="PropColors.h" />\r
-    <ClInclude Include="PropCompare.h" />\r
-    <ClInclude Include="PropCompareBinary.h" />\r
-    <ClInclude Include="PropCompareFolder.h" />\r
-    <ClInclude Include="PropCompareImage.h" />\r
-    <ClInclude Include="PropEditor.h" />\r
-    <ClInclude Include="Common\PropertyPageHost.h" />\r
-    <ClInclude Include="PropGeneral.h" />\r
-    <ClInclude Include="PropMarkerColors.h" />\r
-    <ClInclude Include="PropRegistry.h" />\r
-    <ClInclude Include="PropShell.h" />\r
-    <ClInclude Include="PropSyntaxColors.h" />\r
-    <ClInclude Include="PropTextColors.h" />\r
-    <ClInclude Include="PropVss.h" />\r
-    <ClInclude Include="Common\RegKey.h" />\r
-    <ClInclude Include="Common\RegOptionsMgr.h" />\r
-    <ClInclude Include="Resource.h" />\r
-    <ClInclude Include="SaveClosingDlg.h" />\r
-    <ClInclude Include="Common\scbarcf.h" />\r
-    <ClInclude Include="Common\scbarg.h" />\r
-    <ClInclude Include="SelectUnpackerDlg.h" />\r
-    <ClInclude Include="SharedFilterDlg.h" />\r
-    <ClInclude Include="Common\ShellContextMenu.h" />\r
-    <ClInclude Include="Common\ShellFileOperations.h" />\r
-    <ClInclude Include="Common\sizecbar.h" />\r
-    <ClInclude Include="Common\SortHeaderCtrl.h" />\r
-    <ClInclude Include="Common\SplitterWndEx.h" />\r
-    <ClInclude Include="SourceControl.h" />\r
-    <ClInclude Include="ssapi.h" />\r
-    <ClInclude Include="StdAfx.h" />\r
-    <ClInclude Include="stringdiffs.h" />\r
-    <ClInclude Include="stringdiffsi.h" />\r
-    <ClInclude Include="Common\SuperComboBox.h" />\r
-    <ClInclude Include="TempFile.h" />\r
-    <ClInclude Include="TestMain.h" />\r
-    <ClInclude Include="TestFilterDlg.h" />\r
-    <ClInclude Include="Common\unicoder.h" />\r
-    <ClInclude Include="Common\UnicodeString.h" />\r
-    <ClInclude Include="Common\UniFile.h" />\r
-    <ClInclude Include="TrDialogs.h" />\r
-    <ClInclude Include="UniMarkdownFile.h" />\r
-    <ClInclude Include="Common\varprop.h" />\r
-    <ClInclude Include="Common\version.h" />\r
-    <ClInclude Include="VSSHelper.h" />\r
-    <ClInclude Include="VssPromptDlg.h" />\r
-    <ClInclude Include="WMGotoDlg.h" />\r
-    <ClInclude Include="diffutils\lib\cmpbuf.h" />\r
-    <ClInclude Include="diffutils\config.h" />\r
-    <ClInclude Include="diffutils\src\diff.h" />\r
-    <ClInclude Include="diffutils\src\system.h" />\r
-    <ClInclude Include="CompareEngines\ByteComparator.h" />\r
-    <ClInclude Include="CompareEngines\ByteCompare.h" />\r
-    <ClInclude Include="CompareEngines\DiffUtils.h" />\r
-    <ClInclude Include="CompareEngines\TimeSizeCompare.h" />\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaleditview.inl" />\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.inl" />\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaltextview.inl" />\r
-    <None Include="..\Externals\crystaledit\editlib\filesup.inl" />\r
-    <None Include="..\Externals\crystaledit\editlib\memcombo.inl" />\r
-    <None Include="res\binarydiff.ico" />\r
-    <None Include="res\both.bmp" />\r
-    <None Include="res\equalbinary.ico" />\r
-    <None Include="res\equalfile.ico" />\r
-    <None Include="res\error.ico" />\r
-    <None Include="res\fileskip.ico" />\r
-    <None Include="res\folder.ico" />\r
-    <None Include="res\folderskip.ico" />\r
-    <None Include="res\folderup.ico" />\r
-    <None Include="res\folderup_disable.ico" />\r
-    <None Include="res\hand.cur" />\r
-    <None Include="res\left.bmp" />\r
-    <None Include="res\left_to_browse.bmp" />\r
-    <None Include="res\left_to_right.bmp" />\r
-    <None Include="res\lfile.ico" />\r
-    <None Include="res\lfolder.ico" />\r
-    <None Include="res\Merge.ico" />\r
-    <None Include="res\Merge.rc2" />\r
-    <None Include="res\MergeDir.ico" />\r
-    <None Include="res\MergeDoc.ico" />\r
-    <None Include="res\MergeProject.ico" />\r
-    <None Include="res\mg_cur.cur" />\r
-    <None Include="res\move_left_to_browse.bmp" />\r
-    <None Include="res\move_right_to_browse.bmp" />\r
-    <None Include="res\notequalfile.ico" />\r
-    <None Include="res\rfile.ico" />\r
-    <None Include="res\rfolder.ico" />\r
-    <None Include="res\right.bmp" />\r
-    <None Include="res\right_to_browse.bmp" />\r
-    <None Include="res\right_to_left.bmp" />\r
-    <None Include="res\sigma.ico" />\r
-    <None Include="CHANGELO" />\r
-    <None Include="..\Docs\Users\ChangeLog.txt" />\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ResourceCompile Include="Merge.rc" />\r
-  </ItemGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
-  <ImportGroup Label="ExtensionTargets">\r
-  </ImportGroup>\r
-  <ProjectExtensions>\r
-    <VisualStudio>\r
-      <UserProperties RESOURCE_FILE="Merge.rc" />\r
-    </VisualStudio>\r
-  </ProjectExtensions>\r
-</Project>
\ No newline at end of file
diff --git a/Src/Merge.vcxproj.filters b/Src/Merge.vcxproj.filters
deleted file mode 100644 (file)
index 99d4799..0000000
+++ /dev/null
@@ -1,1547 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <ItemGroup>\r
-    <Filter Include="Source Files">\r
-      <UniqueIdentifier>{e8f63c02-8bf9-425d-88d0-831ca188bbdf}</UniqueIdentifier>\r
-      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>\r
-    </Filter>\r
-    <Filter Include="Header Files">\r
-      <UniqueIdentifier>{ff78af1d-3eee-4c01-8be1-27cf73dfe922}</UniqueIdentifier>\r
-      <Extensions>h;hpp;hxx;hm;inl</Extensions>\r
-    </Filter>\r
-    <Filter Include="Resource Files">\r
-      <UniqueIdentifier>{4e04f59d-bb70-4e67-a8d7-2b01fb6d0cd8}</UniqueIdentifier>\r
-      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe</Extensions>\r
-    </Filter>\r
-    <Filter Include="EditLib">\r
-      <UniqueIdentifier>{84d4664c-e7ea-4d24-8d55-b1303c40b7f4}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="DiffEngine">\r
-      <UniqueIdentifier>{16e1af2b-75c9-4deb-b49f-819018df0478}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="ChangeLogs">\r
-      <UniqueIdentifier>{aefb7247-d6e5-411d-9cc5-4a12f5efda4a}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Compare Engines">\r
-      <UniqueIdentifier>{b889169f-de55-4db7-ad06-423f6438fa90}</UniqueIdentifier>\r
-      <Extensions>cpp;c;h</Extensions>\r
-    </Filter>\r
-    <Filter Include="EditLib\parsers">\r
-      <UniqueIdentifier>{740d4dd9-ab31-47b8-9cbb-8e6a7b5db4fe}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="MFCGui">\r
-      <UniqueIdentifier>{caf52667-921a-47aa-84a3-f277aac15107}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="MFCGui\Source Files">\r
-      <UniqueIdentifier>{5dc3ba0d-6755-48f8-ad11-df56b167b514}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="MFCGui\Header Files">\r
-      <UniqueIdentifier>{10ce7aff-bcfd-4ed0-98c3-766226c4c89e}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="MFCGui\Dialogs">\r
-      <UniqueIdentifier>{d520b3a7-c530-4053-8766-07c26ed85f85}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="MFCGui\Dialogs\PropertyPages">\r
-      <UniqueIdentifier>{c6b39fdf-7c68-42c3-895b-da25bb6e51b4}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="MFCGui\Common">\r
-      <UniqueIdentifier>{297182f0-e39d-4ac4-9df3-315882ce9e07}</UniqueIdentifier>\r
-    </Filter>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ClCompile Include="charsets.c">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="codepage_detect.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareOptions.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareStats.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="ConfigLog.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="ConflictFileParser.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\coretools.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffContext.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffFileData.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffFileInfo.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffItem.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffItemList.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffList.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffThread.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffWrapper.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirCmpReport.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirItem.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirScan.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirTravel.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="dllpstub.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Environment.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileFilter.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileFilterHelper.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileFilterMgr.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileTextEncoding.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileTransform.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileVersion.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FilterCommentsManager.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FilterList.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FolderCmp.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="locality.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\lwdisp.c">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="markdown.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeCmdLineInfo.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MovedBlocks.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MovedLines.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\multiformatText.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsInit.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="common\OptionsMgr.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PatchHTML.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PathContext.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="paths.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\PidlContainer.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PluginManager.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Plugins.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="ProjectFile.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\RegKey.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\RegOptionsMgr.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\ShellFileOperations.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="stringdiffs.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="TempFile.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\unicoder.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\UnicodeString.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\UniFile.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="UniMarkdownFile.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\varprop.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\version.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="VSSHelper.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\analyze.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\lib\cmpbuf.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\context.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\Diff.cpp">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\ed.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\GnuVersion.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\ifdef.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\io.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\normal.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\side.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\util.c">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\ByteComparator.cpp">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\ByteCompare.cpp">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\DiffUtils.cpp">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\TimeSizeCompare.cpp">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaleditview.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextview.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextview2.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ceditreplacedlg.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\LineInfo.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\SyntaxColors.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\UndoRecord.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ViewableWhitespace.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\cfindtextdlg.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\chcondlg.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\crystaleditviewex.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\crystalparser.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\crystaltextblock.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\cs2cs.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\filesup.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\fpattern.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\gotodlg.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\memcombo.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\registry.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\statbar.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\string_util.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\batch.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\asp.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\basic.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\cplusplus.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\csharp.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\css.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\dcl.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\fortran.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\html.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ini.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\innosetup.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\java.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\is.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\lisp.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\nsis.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\perl.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\pascal.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\php.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\po.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\powershell.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\python.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\rexx.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\rsrc.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\sgml.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ruby.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\sh.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\siod.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\sql.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\tcl.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\tex.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\verilog.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\vhdl.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\xml.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\cregexp_poco.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeApp.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="7zCommon.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="ChildFrm.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\CMoveConstraint.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\ColorButton.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffTextBuffer.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DiffViewBar.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirDoc.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirFrame.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirView.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="EditorFilepathBar.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="EncodingErrorBar.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileActionScript.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileOrFolderSelect.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FilepathEdit.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="GhostTextBuffer.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="GhostTextView.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="HexMergeDoc.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="HexMergeFrm.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="HexMergeView.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="LocationBar.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="LocationView.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MainFrm.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Merge.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeDoc.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeDocDiffSync.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeDocEncoding.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeDocLineDiffs.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeEditView.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OpenDoc.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OpenFrm.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OpenView.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="StdAfx.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\LanguageSelect.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\ExConverter.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirCompProgressBar.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsFont.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsSyntaxColors.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsDiffColors.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsDiffOptions.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropVss.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropArchive.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropBackups.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropCodepage.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropColors.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropCompare.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropCompareFolder.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropEditor.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropGeneral.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropRegistry.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropShell.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropSyntaxColors.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropTextColors.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="AboutDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirCmpReportDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirColsDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="LineFiltersDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="LoadSaveCodepageDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PatchDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PluginsListDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="ProjectFilePathsDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="SaveClosingDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="SelectUnpackerDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="SharedFilterDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="TestFilterDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="WMGotoDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="FileFiltersDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareStatisticsDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="ConfirmFolderCopyDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PatchTool.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\SortHeaderCtrl.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\PreferencesDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="JumpList.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\ClipBoard.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsCustomColors.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Merge7zFormatShellImpl.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="ImgMergeFrm.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropCompareImage.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Merge7zFormatMergePluginImpl.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="LineFiltersList.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CompareEngines\BinaryCompare.cpp">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropCompareBinary.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="SourceControl.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirViewColItems.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DirActions.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="DropHandler.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsDef.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="OptionsPanel.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\scbarg.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\scbarcf.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\sizecbar.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\BCMenu.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\MDITabBar.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\MessageBoxDialog.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\SuperComboBox.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\SplitterWndEx.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\Bitmap.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\Picture.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="VssPromptDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\ShellContextMenu.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Common\PropertyPageHost.cpp">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="CCPromptDlg.cpp">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="TrDialogs.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="MergeStatusBar.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="Test.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="TestMain.cpp">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="diffutils\src\mystat.cpp">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\go.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\rust.cpp">\r
-      <Filter>EditLib\parsers</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="PropMarkerColors.cpp">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextmarkers.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\Externals\crystaledit\editlib\ctextmarkerdlg.cpp">\r
-      <Filter>EditLib</Filter>\r
-    </ClCompile>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ClInclude Include="charsets.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="codepage_detect.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CompareOptions.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CompareStats.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="ConfigLog.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="ConflictFileParser.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\coretools.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffContext.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffFileData.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffFileInfo.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffItem.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffItemList.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffList.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffThread.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffWrapper.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirCmpReport.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirItem.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirReportTypes.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirScan.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirTravel.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="dllpstub.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Environment.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Exceptions.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileFilter.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileFilterHelper.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileFilterMgr.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileLocation.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="files.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileTextEncoding.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileTextStats.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileTransform.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileVersion.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FilterCommentsManager.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FilterList.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FolderCmp.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="IAbortable.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="IntToIntMap.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="LineFiltersList.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="locality.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\lwdisp.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="markdown.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MergeCmdLineInfo.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MovedLines.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\multiformatText.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OptionsDef.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="common\OptionsMgr.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PatchHTML.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PathContext.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="paths.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\PidlContainer.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PluginManager.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Plugins.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="ProjectFile.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\RegKey.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\RegOptionsMgr.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\ShellFileOperations.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="ssapi.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="stringdiffs.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="stringdiffsi.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="TempFile.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\unicoder.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\UnicodeString.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\UniFile.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="UniMarkdownFile.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\varprop.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\version.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="VSSHelper.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="diffutils\lib\cmpbuf.h">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="diffutils\config.h">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="diffutils\src\diff.h">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="diffutils\src\system.h">\r
-      <Filter>DiffEngine</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CompareEngines\ByteComparator.h">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CompareEngines\ByteCompare.h">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CompareEngines\DiffUtils.h">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CompareEngines\TimeSizeCompare.h">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaleditview.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextview.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ceditreplacedlg.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\LineInfo.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\SyntaxColors.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\UndoRecord.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ViewableWhitespace.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\cfindtextdlg.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\chcondlg.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\cregexp.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\crystaleditviewex.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\crystalparser.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\crystaltextblock.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\cs2cs.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\editcmd.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\editreg.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\edtlib.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\filesup.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\fpattern.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\gotodlg.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\memcombo.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\registry.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\statbar.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\string_util.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\wispelld.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="StdAfx.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Resource.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OpenFrm.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OpenView.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OpenDoc.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MergeEditView.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MergeEditStatus.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MergeDoc.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Merge.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MainFrm.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="LocationView.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="LocationBar.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="IOptionsPanel.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="HexMergeFrm.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="HexMergeDoc.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="GhostTextView.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="GhostTextBuffer.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileOrFolderSelect.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="ChildFrm.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffViewBar.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DiffTextBuffer.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirDoc.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirFrame.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirView.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="EditorFilepathBar.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="EncodingErrorBar.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileActionScript.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FilepathEdit.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\LanguageSelect.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\coretypes.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="IListCtrlImpl.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MergeLineFlags.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MergeApp.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\ExConverter.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirCompProgressBar.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Diff3.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OptionsFont.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OptionsSyntaxColors.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OptionsDiffColors.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OptionsDiffOptions.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropArchive.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropVss.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropBackups.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropCodepage.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropColors.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropCompare.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropCompareFolder.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropEditor.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropGeneral.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropRegistry.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropShell.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropSyntaxColors.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropTextColors.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="AboutDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CompareStatisticsDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="ConfirmFolderCopyDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirCmpReportDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="FileFiltersDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="LoadSaveCodepageDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="LineFiltersDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PatchDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PluginsListDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="SaveClosingDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="SelectUnpackerDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="SharedFilterDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="TestFilterDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="WMGotoDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="ProjectFilePathsDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirColsDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PatchTool.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\PreferencesDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="JumpList.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\ClipBoard.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OptionsCustomColors.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="7zCommon.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Merge7zFormatShellImpl.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="ImgMergeFrm.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropCompareImage.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="IMergeDoc.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Merge7zFormatMergePluginImpl.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Merge7zFormatRegister.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CompareEngines\BinaryCompare.h">\r
-      <Filter>Compare Engines</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirViewColItems.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DirActions.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="HexMergeView.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropCompareBinary.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="CCPromptDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="VssPromptDlg.h">\r
-      <Filter>MFCGui\Dialogs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\SuperComboBox.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\SortHeaderCtrl.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\CMoveConstraint.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\MDITabBar.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\PropertyPageHost.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\SplitterWndEx.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\sizecbar.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\scbarg.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\scbarcf.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\MessageBoxDialog.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OptionsPanel.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\Bitmap.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\memdc.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\ShellContextMenu.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\BCMenu.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\ColorButton.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Common\Picture.h">\r
-      <Filter>MFCGui\Common</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="DropHandler.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="Constants.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="SourceControl.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="OptionsInit.h">\r
-      <Filter>Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="TrDialogs.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="MergeStatusBar.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="TestMain.h">\r
-      <Filter>MFCGui\Header Files</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextmarkers.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="PropMarkerColors.h">\r
-      <Filter>MFCGui\Dialogs\PropertyPages</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\Externals\crystaledit\editlib\ctextmarkerdlg.h">\r
-      <Filter>EditLib</Filter>\r
-    </ClInclude>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <None Include="res\binarydiff.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\both.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\equalbinary.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\equalfile.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\error.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\fileskip.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\folder.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\folderskip.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\folderup.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\folderup_disable.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\hand.cur">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\left.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\left_to_browse.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\left_to_right.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\lfile.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\lfolder.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\Merge.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\Merge.rc2">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\MergeDir.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\MergeDoc.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\MergeProject.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\mg_cur.cur">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\move_left_to_browse.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\move_right_to_browse.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\notequalfile.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\rfile.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\rfolder.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\right.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\right_to_browse.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\right_to_left.bmp">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="res\sigma.ico">\r
-      <Filter>Resource Files</Filter>\r
-    </None>\r
-    <None Include="CHANGELO">\r
-      <Filter>ChangeLogs</Filter>\r
-    </None>\r
-    <None Include="..\Docs\Users\ChangeLog.txt">\r
-      <Filter>ChangeLogs</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaleditview.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaltextview.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\filesup.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\memcombo.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ResourceCompile Include="Merge.rc">\r
-      <Filter>MFCGui\Source Files</Filter>\r
-    </ResourceCompile>\r
-  </ItemGroup>\r
-</Project>
\ No newline at end of file
index 1286f85..07b2a6d 100644 (file)
@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Test|Win32">\r
+      <Configuration>Test</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Test|x64">\r
+      <Configuration>Test</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
     <ProjectConfiguration Include="UnicodeDebug|Win32">\r
       <Configuration>UnicodeDebug</Configuration>\r
       <Platform>Win32</Platform>\r
     <CharacterSet>Unicode</CharacterSet>\r
     <PlatformToolset>v140_xp</PlatformToolset>\r
   </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseOfMfc>Static</UseOfMfc>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <PlatformToolset>v140_xp</PlatformToolset>\r
+  </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'" Label="Configuration">\r
     <ConfigurationType>Application</ConfigurationType>\r
     <UseOfMfc>Static</UseOfMfc>\r
     <CharacterSet>Unicode</CharacterSet>\r
     <PlatformToolset>v140_xp</PlatformToolset>\r
   </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseOfMfc>Static</UseOfMfc>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <PlatformToolset>v140_xp</PlatformToolset>\r
+  </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'" Label="Configuration">\r
     <ConfigurationType>Application</ConfigurationType>\r
     <UseOfMfc>Static</UseOfMfc>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">false</LinkIncremental>\r
     <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">true</EmbedManifest>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">.\..\Build\Merge$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">.\..\Build\Merge$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">.\..\BuildTmp\Merge$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">.\..\BuildTmp\Merge$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">true</LinkIncremental>\r
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">true</LinkIncremental>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">.\..\Build\$(Platform)\Merge$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Test|x64'">.\..\Build\$(Platform)\Merge$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">.\..\BuildTmp\$(Platform)\Merge$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Test|x64'">.\..\BuildTmp\$(Platform)\Merge$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">true</LinkIncremental>\r
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</LinkIncremental>\r
     <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">true</EmbedManifest>\r
+    <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</EmbedManifest>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">Win$(ProjectName)U</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Test|x64'">Win$(ProjectName)U</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">Win$(ProjectName)U</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">Win$(ProjectName)U</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Win$(ProjectName)U</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">Win$(ProjectName)U</TargetName>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">\r
       <Optimization>MinSpace</Optimization>\r
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
       <AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WIN32;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <PreprocessorDefinitions>WINVER=0x0501;WIN32;_WINDOWS;_STATIC_CPPLIB;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <StringPooling>true</StringPooling>\r
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
       <FunctionLevelLinking>true</FunctionLevelLinking>\r
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
       <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
       <ExceptionHandling>Async</ExceptionHandling>\r
+      <SDLCheck>true</SDLCheck>\r
     </ClCompile>\r
     <ResourceCompile>\r
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <Optimization>MinSpace</Optimization>\r
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
       <AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WIN64;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;HAVE_LIMITS_H;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <PreprocessorDefinitions>WINVER=0x0501;WIN64;_WINDOWS;_STATIC_CPPLIB;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;HAVE_LIMITS_H;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <StringPooling>true</StringPooling>\r
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
       <FunctionLevelLinking>true</FunctionLevelLinking>\r
       <CompileAs>Default</CompileAs>\r
       <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
       <ExceptionHandling>Async</ExceptionHandling>\r
+      <SDLCheck>true</SDLCheck>\r
     </ClCompile>\r
     <ResourceCompile>\r
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
       <Optimization>Disabled</Optimization>\r
       <AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <PreprocessorDefinitions>WINVER=0x0501;_DEBUG;WIN32;_WINDOWS;_STATIC_CPPLIB;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
       <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
       <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
       <ExceptionHandling>Async</ExceptionHandling>\r
+      <SDLCheck>true</SDLCheck>\r
     </ClCompile>\r
     <ResourceCompile>\r
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       </Command>\r
     </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">\r
+    <Midl>\r
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <MkTypLibCompatible>true</MkTypLibCompatible>\r
+      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+      <TargetEnvironment>Win32</TargetEnvironment>\r
+      <HeaderFileName>\r
+      </HeaderFileName>\r
+    </Midl>\r
+    <ClCompile>\r
+      <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>.;..\Externals\gtest;..\Externals\gtest\include;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0501;_DEBUG;WIN32;_WINDOWS;_STATIC_CPPLIB;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <CompileAs>Default</CompileAs>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+    </ClCompile>\r
+    <ResourceCompile>\r
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <Culture>0x0409</Culture>\r
+    </ResourceCompile>\r
+    <Link>\r
+      <AdditionalDependencies>version.lib;shlwapi.lib;imm32.lib;HtmlHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <OutputFile>$(OutDir)/WinMergeU.exe</OutputFile>\r
+      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+      <AdditionalLibraryDirectories>..\Externals\poco\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <SubSystem>Console</SubSystem>\r
+      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX86</TargetMachine>\r
+      <GenerateMapFile>true</GenerateMapFile>\r
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
+    </Link>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+  </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">\r
     <CustomBuildStep>\r
       <Command>\r
       <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
       <Optimization>Disabled</Optimization>\r
       <AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>_DEBUG;WIN64;_WINDOWS;_STATIC_CPPLIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;HAVE_LIMITS_H;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <PreprocessorDefinitions>WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;_STATIC_CPPLIB;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;HAVE_LIMITS_H;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
       <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <CompileAs>Default</CompileAs>\r
       <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
       <ExceptionHandling>Async</ExceptionHandling>\r
+      <SDLCheck>true</SDLCheck>\r
     </ClCompile>\r
     <ResourceCompile>\r
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       </Command>\r
     </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Test|x64'">\r
+    <CustomBuildStep>\r
+      <Command>\r
+      </Command>\r
+      <Outputs>$(TargetDir)WinMergeU.map;%(Outputs)</Outputs>\r
+    </CustomBuildStep>\r
+    <Midl>\r
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <MkTypLibCompatible>true</MkTypLibCompatible>\r
+      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+      <TargetEnvironment>X64</TargetEnvironment>\r
+      <HeaderFileName>\r
+      </HeaderFileName>\r
+    </Midl>\r
+    <ClCompile>\r
+      <AdditionalOptions>/EHa  %(AdditionalOptions)</AdditionalOptions>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>.;..\Externals\gtest;..\Externals\gtest\include;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;_STATIC_CPPLIB;POCO_STATIC;HAVE_STDLIB_H;STDC_HEADERS;HAVE_STRING_H=1;HAVE_LIMITS_H;PR_FILE_NAME="pr";DIFF_PROGRAM="diff";REGEX_MALLOC;__MSC__;__NT__;USG=1;EDITPADC_CLASS=;COMPILE_MULTIMON_STUBS;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <CompileAs>Default</CompileAs>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+    </ClCompile>\r
+    <ResourceCompile>\r
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <Culture>0x0409</Culture>\r
+    </ResourceCompile>\r
+    <Link>\r
+      <AdditionalDependencies>version.lib;shlwapi.lib;imm32.lib;HtmlHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <OutputFile>$(OutDir)/WinMergeU.exe</OutputFile>\r
+      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+      <AdditionalLibraryDirectories>..\Externals\poco\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <SubSystem>Console</SubSystem>\r
+      <EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX64</TargetMachine>\r
+      <GenerateMapFile>true</GenerateMapFile>\r
+      <Profile>false</Profile>\r
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
+    </Link>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+  </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClCompile Include="..\Externals\crystaledit\editlib\asp.cpp" />\r
     <ClCompile Include="..\Externals\crystaledit\editlib\basic.cpp" />\r
     </ClCompile>\r
     <ClCompile Include="charsets.c">\r
       <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Test|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Test|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
       <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">true</BrowseInformation>\r
+      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">true</BrowseInformation>\r
       <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">true</BrowseInformation>\r
+      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Test|x64'">true</BrowseInformation>\r
       <Optimization Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|Win32'">Disabled</Optimization>\r
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Test|Win32'">Disabled</Optimization>\r
       <Optimization Condition="'$(Configuration)|$(Platform)'=='UnicodeDebug|x64'">Disabled</Optimization>\r
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Test|x64'">Disabled</Optimization>\r
       <Optimization Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|Win32'">MinSpace</Optimization>\r
       <Optimization Condition="'$(Configuration)|$(Platform)'=='UnicodeRelease|x64'">MinSpace</Optimization>\r
     </ClCompile>\r
     </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <ClInclude Include="..\Externals\boost\boost\config.hpp" />\r
+    <ClInclude Include="..\Externals\boost\boost\config\compiler\visualc.hpp" />\r
+    <ClInclude Include="..\Externals\boost\boost\config\select_compiler_config.hpp" />\r
     <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaleditview.h" />\r
     <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.h" />\r
     <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextmarkers.h" />\r
     <ClInclude Include="CompareEngines\TimeSizeCompare.h" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaleditview.inl" />\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.inl" />\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaltextview.inl" />\r
-    <None Include="..\Externals\crystaledit\editlib\filesup.inl" />\r
-    <None Include="..\Externals\crystaledit\editlib\memcombo.inl" />\r
     <None Include="res\binarydiff.ico" />\r
     <None Include="res\both.bmp" />\r
     <None Include="res\equalbinary.ico" />\r
index d1be4a2..43eb1c6 100644 (file)
     <ClCompile Include="MergeStatusBar.cpp">\r
       <Filter>MFCGui\Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="Test.cpp">\r
+      <Filter>MFCGui\Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="TestMain.cpp">\r
+      <Filter>MFCGui\Source Files</Filter>\r
+    </ClCompile>\r
     <ClCompile Include="diffutils\src\mystat.cpp">\r
       <Filter>GNU diffutils</Filter>\r
     </ClCompile>\r
     <ClCompile Include="..\Externals\crystaledit\editlib\rust.cpp">\r
       <Filter>EditLib\parsers</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="Test.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="TestMain.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="..\Externals\crystaledit\editlib\ccrystaltextmarkers.cpp">\r
       <Filter>EditLib</Filter>\r
     </ClCompile>\r
       <Filter>MFCGui\Header Files</Filter>\r
     </ClInclude>\r
     <ClInclude Include="TestMain.h">\r
-      <Filter>Header Files</Filter>\r
+      <Filter>MFCGui\Header Files</Filter>\r
     </ClInclude>\r
     <ClInclude Include="..\Externals\crystaledit\editlib\ccrystaltextmarkers.h">\r
       <Filter>EditLib</Filter>\r
     <ClInclude Include="..\Externals\crystaledit\editlib\ctextmarkerdlg.h">\r
       <Filter>EditLib</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\Externals\boost\boost\config.hpp">\r
+      <Filter>Boost</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\Externals\boost\boost\config\compiler\visualc.hpp">\r
+      <Filter>Boost\config\compiler</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\Externals\boost\boost\config\select_compiler_config.hpp">\r
+      <Filter>Boost\config</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\Version.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Common\VersionInfo.h">\r
+      <Filter>MFCGui\Common</Filter>\r
+    </ClInclude>\r
     <ClInclude Include="MergeEditSplitterView.h">\r
       <Filter>MFCGui\Header Files</Filter>\r
     </ClInclude>\r
     <None Include="..\Docs\Users\ChangeLog.txt">\r
       <Filter>ChangeLogs</Filter>\r
     </None>\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaleditview.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaltextbuffer.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\ccrystaltextview.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\filesup.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
-    <None Include="..\Externals\crystaledit\editlib\memcombo.inl">\r
-      <Filter>EditLib</Filter>\r
-    </None>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ResourceCompile Include="Merge.rc">\r
index 4abef40..a6e662d 100644 (file)
@@ -4,7 +4,10 @@
  * @brief Implementation file for Merge7zFormatShellImpl class
  */
 #include "Merge7zFormatShellImpl.h"
-#include <ShlObj.h>
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
+#include <shlobj.h>
+#pragma warning (pop)
 #include <ShObjIdl.h>
 #include <comip.h>
 #include <vector>
index d9c29d8..3eee3eb 100644 (file)
@@ -27,8 +27,7 @@
 // ID line follows -- this is updated by SVN
 // $Id: MergeCmdLineInfo.h 6940 2009-08-01 17:29:01Z kimmov $
 
-#ifndef _MERGE_CMD_LINE_INFO_INCLUDED_
-#define _MERGE_CMD_LINE_INFO_INCLUDED_
+#pragma once
 
 #include "UnicodeString.h"
 #include "PathContext.h"
@@ -103,4 +102,3 @@ private:
        MergeCmdLineInfo& operator=(const MergeCmdLineInfo& rhs);
 };
 
-#endif // _MERGE_CMD_LINE_INFO_INCLUDED_
index 47b6fac..712fd35 100644 (file)
@@ -127,9 +127,6 @@ END_MESSAGE_MAP()
 /////////////////////////////////////////////////////////////////////////////
 // CMergeDoc construction/destruction
 
-
-#pragma warning(disable:4355)
-
 /**
  * @brief Constructor.
  */
@@ -172,8 +169,6 @@ CMergeDoc::CMergeDoc()
        m_diffWrapper.SetPrediffer(NULL);
 }
 
-#pragma warning(default:4355)
-
 /**
  * @brief Destructor.
  *
@@ -325,7 +320,7 @@ int CMergeDoc::Rescan(bool &bBinary, IDENTLEVEL &identical,
 {
        DIFFOPTIONS diffOptions = {0};
        DiffFileInfo fileInfo;
-       bool diffSuccess;
+       bool diffSuccess = false;
        int nResult = RESCAN_OK;
        FileChange FileChanged[3] = {FileNoChange, FileNoChange, FileNoChange};
        int nBuffer;
@@ -444,7 +439,7 @@ int CMergeDoc::Rescan(bool &bBinary, IDENTLEVEL &identical,
                const std::vector<std::vector<int> > syncpoints = GetSyncPointList();   
                int nStartLine[3] = {0};
                int nLines[3], nRealLine[3];
-               for (int i = 0; i <= syncpoints.size(); ++i)
+               for (size_t i = 0; i <= syncpoints.size(); ++i)
                {
                        // Save text buffer to file
                        for (nBuffer = 0; nBuffer < m_nBuffers; nBuffer++)
@@ -1699,9 +1694,9 @@ void CMergeDoc::DoFileSave(int nBuffer)
                // If DirDoc contains compare results
                if (m_pDirDoc && m_pDirDoc->HasDiffs())
                {
-                       for (int nBuffer = 0; nBuffer < m_nBuffers; nBuffer++)
+                       for (int nBuffer1 = 0; nBuffer1 < m_nBuffers; nBuffer1++)
                        {
-                               if (m_bEditAfterRescan[nBuffer])
+                               if (m_bEditAfterRescan[nBuffer1])
                                {
                                        FlushAndRescan(false);
                                        break;
@@ -1798,7 +1793,8 @@ void CMergeDoc::OnUpdateStatusNum(CCmdUI* pCmdUI)
        else if (GetCurrentDiff() < 0)
        {
                s = nDiffs == 1 ? _("1 Difference Found") : _("%1 Differences Found");
-               strutils::replace(s, _T("%1"), _itot(nDiffs, sCnt, 10));
+               _itot_s(nDiffs, sCnt, 10);
+               strutils::replace(s, _T("%1"), sCnt);
        }
        
        // There are differences and diff selected
@@ -1807,8 +1803,10 @@ void CMergeDoc::OnUpdateStatusNum(CCmdUI* pCmdUI)
        {
                s = _("Difference %1 of %2");
                const int signInd = m_diffList.GetSignificantIndex(GetCurrentDiff());
-               strutils::replace(s, _T("%1"), _itot(signInd + 1, sIdx, 10));
-               strutils::replace(s, _T("%2"), _itot(nDiffs, sCnt, 10));
+               _itot_s(signInd + 1, sIdx, 10);
+               strutils::replace(s, _T("%1"), sIdx);
+               _itot_s(nDiffs, sCnt, 10);
+               strutils::replace(s, _T("%2"), sCnt);
        }
        pCmdUI->SetText(s.c_str());
 }
@@ -2315,8 +2313,8 @@ void CMergeDoc::RemoveMergeViews(int nGroup)
 
        for (; nGroup < m_nGroups - 1; nGroup++)
        {
-       for (int nBuffer = 0; nBuffer < m_nBuffers; nBuffer++)
-       {
+               for (int nBuffer = 0; nBuffer < m_nBuffers; nBuffer++)
+               {
                        m_pView[nGroup][nBuffer] = m_pView[nGroup + 1][nBuffer];
                        m_pView[nGroup][nBuffer]->m_nThisGroup = nGroup;
                }
@@ -2556,7 +2554,7 @@ bool CMergeDoc::OpenDocs(int nFiles, const FileLocation ifileloc[],
        }
 
        // Bail out if either side failed
-       if (std::find_if(nSuccess, nSuccess + m_nBuffers, std::not1(std::ptr_fun(FileLoadResult::IsOk))) != nSuccess + m_nBuffers)
+       if (std::find_if(nSuccess, nSuccess + m_nBuffers, [](DWORD d){return !FileLoadResult::IsOk(d);} ) != nSuccess + m_nBuffers)
        {
                CChildFrame *pFrame = GetParentFrame();
                if (pFrame)
@@ -3448,7 +3446,7 @@ std::vector<std::vector<int> > CMergeDoc::GetSyncPointList()
                        if (m_ptBuf[nBuffer]->GetLineFlags(nLine) & LF_INVALID_BREAKPOINT)
                        {
                                idx[nBuffer]++;
-                               if (list.size() <= idx[nBuffer])
+                               if (static_cast<int>(list.size()) <= idx[nBuffer])
                                        list.push_back(points);
                                list[idx[nBuffer]][nBuffer] = nLine;
                        }
index 65b2d82..9a1f421 100644 (file)
@@ -393,8 +393,3 @@ private:
        String GetFileExt(LPCTSTR sFileName, LPCTSTR sDescription) const;
        void DoFileSave(int pane);
 };
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index a70563a..9e133fc 100644 (file)
@@ -1934,7 +1934,7 @@ void CMergeEditView::OnUpdateClearSyncPoints(CCmdUI* pCmdUI)
  * @sa CCrystalEditView::OnEditOperation()
  * @todo More edit-events for rescan delaying?
  */
-void CMergeEditView::OnEditOperation(int nAction, LPCTSTR pszText, int cchText)
+void CMergeEditView::OnEditOperation(int nAction, LPCTSTR pszText, size_t cchText)
 {
        if (IsReadOnly(m_nThisPane))
        {
@@ -2507,7 +2507,7 @@ HMENU CMergeEditView::createScriptsSubmenu(HMENU hMenu)
        FileTransform::GetFreeFunctionsInScripts(functionNamesList, L"EDITOR_SCRIPT");
 
        // empty the menu
-       int i = GetMenuItemCount(hMenu);
+       size_t i = GetMenuItemCount(hMenu);
        while (i --)
                DeleteMenu(hMenu, 0, MF_BYPOSITION);
 
@@ -2570,7 +2570,7 @@ HMENU CMergeEditView::createPrediffersSubmenu(HMENU hMenu)
        AppendMenu(hMenu, MF_STRING, ID_SUGGESTED_PLUGINS, _("Suggested plugins").c_str());
 
        int ID = ID_PREDIFFERS_FIRST;   // first ID in menu
-       int iScript;
+       size_t iScript;
        for (iScript = 0 ; iScript < piScriptArray->size() ; iScript++, ID ++)
        {
                const PluginInfoPtr & plugin = piScriptArray->at(iScript);
@@ -2652,12 +2652,12 @@ void CMergeEditView::OnContextMenu(CWnd* pWnd, CPoint point)
        // Remove copying item copying from active side
        if (m_nThisPane == 0) // left?
        {
-               menu.RemoveMenu(ID_R2L, MF_BYCOMMAND);
+               menu.RemoveMenu(ID_COPY_FROM_RIGHT, MF_BYCOMMAND);
                menu.RemoveMenu(ID_COPY_FROM_LEFT, MF_BYCOMMAND);
        }
        if (m_nThisPane == GetDocument()->m_nBuffers - 1)
        {
-               menu.RemoveMenu(ID_L2R, MF_BYCOMMAND);
+               menu.RemoveMenu(ID_COPY_FROM_LEFT, MF_BYCOMMAND);
                menu.RemoveMenu(ID_COPY_FROM_RIGHT, MF_BYCOMMAND);
        }
 
@@ -2866,7 +2866,7 @@ void CMergeEditView::OnWMGoto()
 
        if (dlg.DoModal() == IDOK)
        {
-               CMergeDoc * pDoc = GetDocument();
+               CMergeDoc * pDoc1 = GetDocument();
                CMergeEditView * pCurrentView = NULL;
 
                // Get views
@@ -2877,21 +2877,21 @@ void CMergeEditView::OnWMGoto()
 
                if (dlg.m_nGotoWhat == 0)
                {
-                       int nRealLine = num;
-                       if (nRealLine < 0)
-                               nRealLine = 0;
-                       if (nRealLine > nLastLine)
-                               nRealLine = nLastLine;
+                       int nRealLine1 = num;
+                       if (nRealLine1 < 0)
+                               nRealLine1 = 0;
+                       if (nRealLine1 > nLastLine)
+                               nRealLine1 = nLastLine;
 
-                       GotoLine(nRealLine, true, (pDoc->m_nBuffers < 3) ? (dlg.m_nFile == 2 ? 1 : 0) : dlg.m_nFile);
+                       GotoLine(nRealLine1, true, (pDoc1->m_nBuffers < 3) ? (dlg.m_nFile == 2 ? 1 : 0) : dlg.m_nFile);
                }
                else
                {
                        int diff = num;
                        if (diff < 0)
                                diff = 0;
-                       if (diff >= pDoc->m_diffList.GetSize())
-                               diff = pDoc->m_diffList.GetSize();
+                       if (diff >= pDoc1->m_diffList.GetSize())
+                               diff = pDoc1->m_diffList.GetSize();
 
                        pCurrentView->SelectDiff(diff, true, false);
                }
@@ -2951,7 +2951,7 @@ void CMergeEditView::OnScripts(UINT nID )
        bool bChanged = FileTransform::Interactive(text, L"EDITOR_SCRIPT", nID - ID_SCRIPT_FIRST);
        if (bChanged)
                // now replace the text
-               ReplaceSelection(text.c_str(), static_cast<int>(text.length()), 0);
+               ReplaceSelection(text.c_str(), text.length(), 0);
 }
 
 /**
@@ -3079,7 +3079,7 @@ void CMergeEditView::SetPredifferByMenu(UINT nID )
  */
 int CMergeEditView::FindPrediffer(LPCTSTR prediffer) const
 {
-       int i;
+       size_t i;
        int ID = ID_PREDIFFERS_FIRST;
 
        // Search file prediffers
@@ -3164,9 +3164,9 @@ void CMergeEditView::GotoLine(UINT nLine, bool bRealLine, int pane)
                }
                else
                {
-                       CPoint ptPos(0, pView->GetLineCount() - 1);
-                       pView->SetCursorPos(ptPos);
-                       pView->SetAnchor(ptPos);
+                       CPoint ptPos1(0, pView->GetLineCount() - 1);
+                       pView->SetCursorPos(ptPos1);
+                       pView->SetAnchor(ptPos1);
                }
        }
 
@@ -3273,7 +3273,7 @@ void CMergeEditView::OnEditCopyLineNumbers()
                CString sSpaces(' ', static_cast<int>(nNumWidth - strutils::to_str(line + 1).length()));
                
                strText += sSpaces;
-               strNumLine.Format(_T("%d: %s"), line + 1, strLine);
+               strNumLine.Format(_T("%d: %s"), line + 1, (LPCTSTR)strLine);
                strText += strNumLine;
        }
        PutToClipboard(strText, strText.GetLength(), m_bColumnSelection);
index 2af50bd..7afb3af 100644 (file)
@@ -115,7 +115,7 @@ public:
        bool EnableRescan(bool bEnable);
        bool IsReadOnly(int pane) const;
        void ShowDiff(bool bScroll, bool bSelectText);
-       virtual void OnEditOperation(int nAction, LPCTSTR pszText, int cchText);
+       virtual void OnEditOperation(int nAction, LPCTSTR pszText, size_t cchText) override;
        void UpdateLineLengths();
        bool IsLineInCurrentDiff(int nLine) const;
        void SelectNone();
@@ -133,11 +133,11 @@ public:
        void SetStatusInterface(IMergeEditStatus * piMergeEditStatus);
        void SelectArea(const CPoint & ptStart, const CPoint & ptEnd) { SetSelection(ptStart, ptEnd); } // make public
        void GetSelection(CPoint &ptStart, CPoint &ptEnd) { CCrystalTextView::GetSelection(ptStart, ptEnd); }
-       virtual void UpdateSiblingScrollPos (bool bHorz);
-       virtual std::vector<TEXTBLOCK> GetAdditionalTextBlocks (int nLineIndex);
-       virtual COLORREF GetColor(int nColorIndex);
+       virtual void UpdateSiblingScrollPos (bool bHorz) override;
+       virtual std::vector<TEXTBLOCK> GetAdditionalTextBlocks (int nLineIndex) override;
+       virtual COLORREF GetColor(int nColorIndex) override;
        virtual void GetLineColors (int nLineIndex, COLORREF & crBkgnd,
-                       COLORREF & crText, bool & bDrawWhitespace);
+                       COLORREF & crText, bool & bDrawWhitespace) override;
        virtual void GetLineColors2 (int nLineIndex, DWORD ignoreFlags
                , COLORREF & crBkgnd, COLORREF & crText, bool & bDrawWhitespace);
        void WMGoto() { OnWMGoto(); };
@@ -147,23 +147,23 @@ public:
        int GetTopSubLine() const { return m_nTopSubLine; }
        int GetSubLines(int nLineIndex) { return CCrystalTextView::GetSubLines(nLineIndex); }
        virtual int GetSubLineCount() { return CCrystalTextView::GetSubLineCount(); }
-       virtual int GetSubLineIndex(int nLineIndex) { return CCrystalTextView::GetSubLineIndex(nLineIndex); }
-       virtual void GetLineBySubLine(int nSubLineIndex, int &nLine, int &nSubLine) {
+       virtual int GetSubLineIndex(int nLineIndex) override { return CCrystalTextView::GetSubLineIndex(nLineIndex); }
+       virtual void GetLineBySubLine(int nSubLineIndex, int &nLine, int &nSubLine) override {
                CCrystalTextView::GetLineBySubLine(nSubLineIndex, nLine, nSubLine);
        }
-       virtual int GetEmptySubLines( int nLineIndex );
-       virtual void InvalidateSubLineIndexCache( int nLineIndex );
+       virtual int GetEmptySubLines( int nLineIndex ) override;
+       virtual void InvalidateSubLineIndexCache( int nLineIndex ) override;
        void RepaintLocationPane();
        bool SetPredifferByName(const CString & prediffer);
        void SetPredifferByMenu(UINT nID);
        void DocumentsLoaded();
        void SetLocationView(const CLocationView * pView = NULL);
        void UpdateLocationViewPosition(int nTopLine = -1, int nBottomLine = -1);
-       virtual void RecalcPageLayouts(CDC * pdc, CPrintInfo * pInfo);
-       virtual void GetPrintHeaderText(int nPageNum, CString & text);
-       virtual void PrintHeader(CDC * pdc, int nPageNum);
-       virtual void PrintFooter(CDC * pdc, int nPageNum);
-       virtual void SetWordWrapping( bool bWordWrap );
+       virtual void RecalcPageLayouts(CDC * pdc, CPrintInfo * pInfo) override;
+       virtual void GetPrintHeaderText(int nPageNum, CString & text) override;
+       virtual void PrintHeader(CDC * pdc, int nPageNum) override;
+       virtual void PrintFooter(CDC * pdc, int nPageNum) override;
+       virtual void SetWordWrapping( bool bWordWrap ) override;
        void UpdateStatusbar();
        CMergeEditView *GetGroupView(int nPane) const;
 
@@ -353,8 +353,3 @@ protected:
 inline CMergeDoc* CMergeEditView::GetDocument()
    { return reinterpret_cast<CMergeDoc*>(m_pDocument); }
 #endif
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 21e408f..c177283 100644 (file)
@@ -536,9 +536,11 @@ void COpenView::OnOK()
        if (GetOptionsMgr()->GetBool(OPT_CLOSE_WITH_OK))
                GetParentFrame()->PostMessage(WM_CLOSE);
 
+       PathContext tmpPathContext(pDoc->m_files);
+       PackingInfo tmpPackingInfo(pDoc->m_infoHandler);
        GetMainFrame()->DoFileOpen(
-               &PathContext(pDoc->m_files), std::array<DWORD, 3>(pDoc->m_dwFlags).data(), 
-               NULL, _T(""), !!pDoc->m_bRecurse, NULL, _T(""), &PackingInfo(pDoc->m_infoHandler));
+               &tmpPathContext, std::array<DWORD, 3>(pDoc->m_dwFlags).data(), 
+               NULL, _T(""), !!pDoc->m_bRecurse, NULL, _T(""), &tmpPackingInfo);
 }
 
 /** 
@@ -883,8 +885,10 @@ void COpenView::OnSelchangeCombo(int index)
        int sel = m_ctlPath[index].GetCurSel();
        if (sel != CB_ERR)
        {
-               m_ctlPath[index].GetLBText(sel, PopString(m_strPath[index]));
-               m_ctlPath[index].SetWindowText(m_strPath[index].c_str());
+               CString cstrPath;
+               m_ctlPath[index].GetLBText(sel, cstrPath);
+               m_strPath[index] = cstrPath;
+               m_ctlPath[index].SetWindowText(cstrPath);
                UpdateData(TRUE);
        }
        UpdateButtonStates();
index 33a3e4b..a9c29f9 100644 (file)
@@ -1,3 +1,5 @@
+#pragma once\r
+\r
 class COptionsMgr;\r
 \r
 namespace Options {\r
index 7d89fb7..2d4a04f 100644 (file)
@@ -101,6 +101,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index d299428..5e64e2d 100644 (file)
@@ -155,10 +155,14 @@ print_html_diff_header (struct file_data inf[])
   fprintf (outfile, 
     "<table cellspacing=\"0\" cellpadding=\"0\">\n"
     "    <tr class=\"vc_diff_header\">\n");
+  
+  char ctimeBuffer[26];
+  ctime_s(ctimeBuffer, sizeof(ctimeBuffer), &inf[0].stat.st_mtime);
   fprintf (outfile, 
-    "    <th style=\"width:50%%; vertical-align:top;\">Left: %s</th>\n", ctime (&inf[0].stat.st_mtime));
+    "    <th style=\"width:50%%; vertical-align:top;\">Left: %s</th>\n", ctimeBuffer);
+  ctime_s(ctimeBuffer, sizeof(ctimeBuffer), &inf[1].stat.st_mtime);
   fprintf (outfile, 
-    "    <th style=\"width:50%%; vertical-align:top;\">Right: %s</th>\n", ctime (&inf[1].stat.st_mtime));
+    "    <th style=\"width:50%%; vertical-align:top;\">Right: %s</th>\n", ctimeBuffer);
   fprintf (outfile, 
     "    </tr>\n");
 }
index ed249a2..575837f 100644 (file)
@@ -588,8 +588,7 @@ static vector<String>& LoadTheScriptletList()
                scriptletsLoaded = true;
 
                // lock the *.sct to avoid them being deleted/moved away
-               int i;
-               for (i = 0 ; i < theScriptletList.size() ; i++)
+               for (size_t i = 0 ; i < theScriptletList.size() ; i++)
                {
                        String scriptlet = theScriptletList.at(i);
                        if (scriptlet.length() > 4 && strutils::compare_nocase(scriptlet.substr(scriptlet.length() - 4), _T(".sct")) != 0)
@@ -625,8 +624,7 @@ static void UnloadTheScriptletList()
        FastMutex::ScopedLock lock(scriptletsSem);
        if (scriptletsLoaded)
        {
-               int i;
-               for (i = 0 ; i < theScriptletHandleList.size() ; i++)
+               for (size_t i = 0 ; i < theScriptletHandleList.size() ; i++)
                {
                        HANDLE hFile = theScriptletHandleList.at(i);
                        if (hFile != 0)
@@ -644,7 +642,7 @@ static void UnloadTheScriptletList()
  */
 static void RemoveScriptletCandidate(const String &scriptletFilepath)
 {
-       for (int i=0; i<theScriptletList.size(); ++i)
+       for (size_t i=0; i<theScriptletList.size(); ++i)
        {
                if (scriptletFilepath == theScriptletList[i])
                {
@@ -681,9 +679,8 @@ static PluginArray * GetAvailableScripts( const wchar_t *transformationEvent)
 
        PluginArray * pPlugins = new PluginArray;
 
-       int i;
        std::list<String> badScriptlets;
-       for (i = 0 ; i < scriptlets.size() ; i++)
+       for (size_t i = 0 ; i < scriptlets.size() ; i++)
        {
                // Note all the info about the plugin
                PluginInfoPtr plugin(new PluginInfo);
@@ -778,7 +775,7 @@ void CScriptsOfThread::SaveSettings()
        {
                if (m_aPluginsByEvent[i] == NULL)
                        m_aPluginsByEvent[i].reset(::GetAvailableScripts(TransformationCategories[i]));
-               for (int j = 0; j < m_aPluginsByEvent[i]->size(); ++j)
+               for (size_t j = 0; j < m_aPluginsByEvent[i]->size(); ++j)
                {
                        const PluginInfoPtr & plugin = m_aPluginsByEvent[i]->at(j);
                        if (plugin->m_disabled)
@@ -815,7 +812,7 @@ void CScriptsOfThread::FreeScriptsForEvent(const wchar_t *transformationEvent)
 PluginInfo *CScriptsOfThread::GetAutomaticPluginByFilter(const wchar_t *transformationEvent, const String& filteredText)
 {
        PluginArray * piFileScriptArray = GetAvailableScripts(transformationEvent);
-       for (int step = 0 ; step < piFileScriptArray->size() ; step ++)
+       for (size_t step = 0 ; step < piFileScriptArray->size() ; step ++)
        {
                const PluginInfoPtr & plugin = piFileScriptArray->at(step);
                if (plugin->m_bAutomatic == false || plugin->m_disabled)
@@ -829,14 +826,13 @@ PluginInfo *CScriptsOfThread::GetAutomaticPluginByFilter(const wchar_t *transfor
 
 PluginInfo * CScriptsOfThread::GetPluginByName(const wchar_t *transformationEvent, const String& name)
 {
-       int i;
-       for (i = 0 ; i < nTransformationEvents ; i ++)
+       for (int i = 0 ; i < nTransformationEvents ; i ++)
                if (!transformationEvent || wcscmp(transformationEvent, TransformationCategories[i]) == 0)
                {
                        if (m_aPluginsByEvent[i] == NULL)
                                m_aPluginsByEvent[i].reset(::GetAvailableScripts(TransformationCategories[i]));
 
-                       for (int j = 0 ; j <  m_aPluginsByEvent[i]->size() ; j++)
+                       for (size_t j = 0 ; j <  m_aPluginsByEvent[i]->size() ; j++)
                                if (m_aPluginsByEvent[i]->at(j)->m_name == name)
                                        return m_aPluginsByEvent[i]->at(j).get();
                }
@@ -845,13 +841,12 @@ PluginInfo * CScriptsOfThread::GetPluginByName(const wchar_t *transformationEven
 
 PluginInfo *  CScriptsOfThread::GetPluginInfo(LPDISPATCH piScript)
 {
-       int i, j;
-       for (i = 0 ; i < nTransformationEvents ; i ++) 
+       for (int i = 0 ; i < nTransformationEvents ; i ++) 
        {
                if (m_aPluginsByEvent[i] == NULL)
                        continue;
                const PluginArrayPtr& pArray = m_aPluginsByEvent[i];
-               for (j = 0 ; j < pArray->size() ; j++)
+               for (size_t j = 0 ; j < pArray->size() ; j++)
                        if ((*pArray)[j]->m_lpDispatch == piScript)
                                return (*pArray)[j].get();
        }
@@ -891,8 +886,7 @@ CScriptsOfThread * CAllThreadsScripts::GetActiveSet()
 {
        FastMutex::ScopedLock lock(m_aAvailableThreadsLock);
        unsigned long nThreadId = GetCurrentThreadId();
-       int i;
-       for (i = 0 ; i < m_aAvailableThreads.size() ; i++)
+       for (size_t i = 0 ; i < m_aAvailableThreads.size() ; i++)
                if (m_aAvailableThreads[i] && m_aAvailableThreads[i]->m_nThreadId == nThreadId)
                        return m_aAvailableThreads[i];
        assert(0);
@@ -902,8 +896,7 @@ CScriptsOfThread * CAllThreadsScripts::GetActiveSetNoAssert()
 {
        FastMutex::ScopedLock lock(m_aAvailableThreadsLock);
        unsigned long nThreadId = GetCurrentThreadId();
-       int i;
-       for (i = 0 ; i < m_aAvailableThreads.size() ; i++)
+       for (size_t i = 0 ; i < m_aAvailableThreads.size() ; i++)
                if (m_aAvailableThreads[i] && m_aAvailableThreads[i]->m_nThreadId == nThreadId)
                        return m_aAvailableThreads[i];
        return NULL;
@@ -966,7 +959,7 @@ static void ShowPluginErrorMessage(IDispatch *piScript, LPTSTR description)
  */
 static HRESULT safeInvokeA(LPDISPATCH pi, VARIANT *ret, DISPID id, LPCCH op, ...)
 {
-       HRESULT h;
+       HRESULT h = E_FAIL;
        SE_Handler seh;
        TCHAR errorText[500];
        bool bExceptionCatched = false; 
@@ -1019,7 +1012,7 @@ static HRESULT safeInvokeA(LPDISPATCH pi, VARIANT *ret, DISPID id, LPCCH op, ...
  */
 static HRESULT safeInvokeW(LPDISPATCH pi, VARIANT *ret, LPCOLESTR silent, LPCCH op, ...)
 {
-       HRESULT h;
+       HRESULT h = E_FAIL;
        SE_Handler seh;
        TCHAR errorText[500];
        bool bExceptionCatched = false;
index 9f0c60b..6807cd0 100644 (file)
@@ -104,7 +104,7 @@ void PluginsListDlg::AddPluginsToList(const wchar_t *pluginEvent, const String&
        PluginArray * piPluginArray = 
                CAllThreadsScripts::GetActiveSet()->GetAvailableScripts(pluginEvent);
 
-       for (int iPlugin = 0 ; iPlugin < piPluginArray->size() ; iPlugin++)
+       for (size_t iPlugin = 0 ; iPlugin < piPluginArray->size() ; iPlugin++)
        {
                const PluginInfoPtr& plugin = piPluginArray->at(iPlugin);
                int ind = m_list.InsertItem(m_list.GetItemCount(), plugin->m_name.c_str());
index f4c7095..a497e8a 100644 (file)
@@ -54,6 +54,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 6789e3b..593f058 100644 (file)
@@ -118,6 +118,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index cc60202..4aa228f 100644 (file)
@@ -56,6 +56,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 25ccd3f..9b2b877 100644 (file)
@@ -48,6 +48,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 4e962a5..b73a14d 100644 (file)
@@ -66,6 +66,3 @@ protected:
        DECLARE_MESSAGE_MAP()
        void UpdateControls();
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 7c220a1..b96251c 100644 (file)
@@ -45,6 +45,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index fe62ca0..73f0ca4 100644 (file)
@@ -66,6 +66,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 26cb72e..41b63f8 100644 (file)
@@ -55,12 +55,9 @@ protected:
 
        // Generated message map functions
        //{{AFX_MSG(PropGeneral)
-       afx_msg void OnResetAllMessageBoxes();\r
+       afx_msg void OnResetAllMessageBoxes();
        afx_msg LRESULT OnLoadLanguages(WPARAM, LPARAM);
        afx_msg void OnDestroy();
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 6d0b706..8eae352 100644 (file)
@@ -59,6 +59,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index cab35a8..038e744 100644 (file)
@@ -73,6 +73,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 9156b1f..637e7d1 100644 (file)
@@ -72,6 +72,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 9bfaa60..5b48c8a 100644 (file)
@@ -50,6 +50,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 9056323..bd94af9 100644 (file)
@@ -70,7 +70,7 @@ void CSelectUnpackerDlg::Initialize()
        m_UnpackerPlugins.Add(automaticPlugin.get());
        m_bWithFileFlags.push_back(true);
        // add the real unpackers to the unpackers list
-       int i;
+       size_t i;
        for (i = 0 ; i < piFileScriptArray->size() ; i++)
        {
                // during the dialog, we use a pointer to the scriptsOfThreads array
@@ -259,7 +259,9 @@ void CSelectUnpackerDlg::OnSelchangeUnpackerName()
                // initialize with the default unpacker
                m_pPlugin = static_cast<PluginInfo*> (m_UnpackerPlugins.GetAt(0));
                PluginInfo * pPlugin;
-               m_cboUnpackerName.GetWindowText(PopString(m_strPluginName));
+               CString cstrPluginName;
+               m_cboUnpackerName.GetWindowText(cstrPluginName);
+               m_strPluginName = cstrPluginName;
                for (int j = 0 ; j < m_UnpackerPlugins.GetSize() ; j++)
                {
                        pPlugin = static_cast<PluginInfo*> (m_UnpackerPlugins.GetAt(j));
index adec8fe..5fcd05f 100644 (file)
@@ -98,6 +98,3 @@ protected:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 5fb0af0..c75d231 100644 (file)
@@ -50,6 +50,3 @@ protected:
 private:
        FilterType m_selectedType;
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 571adfa..9206224 100644 (file)
@@ -243,8 +243,8 @@ bool SourceControl::SaveToVersionControl(const String& strSavePath)
 
                _tcscpy_safe(buffer1, strSavePath.c_str());
                _tcscpy_safe(buffer2, m_vssHelper.GetProjectBase().c_str());
-               _tcslwr(buffer1);
-               _tcslwr(buffer2);
+               _tcslwr_s(buffer1, nBufferSize);
+               _tcslwr_s(buffer2, nBufferSize);
 
                //make sure they both have \\ instead of /
                _tcscpy_safe(buffer1, paths::ToWindowsPath(buffer1).c_str());
@@ -385,8 +385,8 @@ void SourceControl::CheckinToClearCase(const String &strDestinationPath)
        std::string vssPath = ucr::toUTF8(GetOptionsMgr()->GetString(OPT_VSS_PATH));
        try
        {
-               ProcessHandle hVss(Process::launch(vssPath, args));
-               int code = Process::wait(hVss);
+               ProcessHandle hVss1(Process::launch(vssPath, args));
+               int code = Process::wait(hVss1);
                if (code != 0)
                {
                        if (AppMsgBox::warning(_("Versioning System returned an error while attempting to check in the file.\n Please, check config spec of used view.\n Undo checkout operation?"),
@@ -397,8 +397,8 @@ void SourceControl::CheckinToClearCase(const String &strDestinationPath)
                                args.push_back("-rm");
                                format(sname_utf8, "\"%s\"", ucr::toUTF8(sname));
                                args.push_back(sname_utf8);
-                               ProcessHandle hVss(Process::launch(vssPath, args));
-                               code = Process::wait(hVss);
+                               ProcessHandle hVss2(Process::launch(vssPath, args));
+                               code = Process::wait(hVss2);
                                if (code != 0)
                                {
                                        AppErrorMessageBox(_("Versioning System returned an error while attempting to undo checkout the file.\n Please, check config spec of used view. "));
index 86b81f7..3c64ea1 100644 (file)
@@ -109,6 +109,3 @@ public:
                OutputDebugString(buf);
        }
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
index 31aa313..f6a92f9 100644 (file)
@@ -184,7 +184,8 @@ static bool CleanupWMtempfolder(const vector <int>& processIDs)
                                if (!WMrunning(processIDs, pid))
                                {
                                        tempfolderPID = paths::ConcatPath(paths::GetParentPath(pattern), ff.cFileName); 
-                                       if (res = ClearTempfolder(tempfolderPID))
+                                       res = ClearTempfolder(tempfolderPID);
+                                       if (res)
                                                bok = !!FindNextFile(h, &ff) ;
                                        continue;
                                }
index a00bd2c..3d03108 100644 (file)
@@ -53,6 +53,3 @@ private:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
index 6eba09e..425d67a 100644 (file)
@@ -23,7 +23,10 @@ public:
 \r
        unsigned GetDlgItemText(unsigned id, String& text)\r
        {\r
-               return dlg()->GetDlgItemTextW(id, PopString(text));\r
+               CString cstrText = text.c_str();\r
+               unsigned uResult = dlg()->GetDlgItemTextW(id, cstrText);\r
+               text = cstrText;\r
+               return uResult;\r
        }\r
 \r
        void SetDlgItemText(unsigned id, const String& text)\r
index a944468..0d851fe 100644 (file)
@@ -166,15 +166,15 @@ bool UniMarkdownFile::ReadString(String &line, String &eol, bool *lossy)
                        line = maketstring((const char *)current, m_current - current);
                        if (m_current < m_transparent)
                        {
-                               unsigned char eol = *m_current++;
-                               if (m_current < m_transparent && *m_current == (eol ^ ('\r'^'\n')))
+                               unsigned char eol1 = *m_current++;
+                               if (m_current < m_transparent && *m_current == (eol1 ^ ('\r'^'\n')))
                                {
                                        ++m_current;
                                        ++m_txtstats.ncrlfs;
                                }
                                else
                                {
-                                       ++(eol == '\r' ? m_txtstats.ncrs : m_txtstats.nlfs);
+                                       ++(eol1 == '\r' ? m_txtstats.ncrs : m_txtstats.nlfs);
                                }
                        }
                        bDone = true;
@@ -183,17 +183,17 @@ bool UniMarkdownFile::ReadString(String &line, String &eol, bool *lossy)
                {
                        while (m_current < m_base + m_filesize && isspace(*m_current))
                        {
-                               unsigned char eol = *m_current++;
-                               if (eol == '\r' || eol == '\n')
+                               unsigned char eol1 = *m_current++;
+                               if (eol1 == '\r' || eol1 == '\n')
                                {
-                                       if (m_current < m_base + m_filesize && *m_current == (eol ^ ('\r'^'\n')))
+                                       if (m_current < m_base + m_filesize && *m_current == (eol1 ^ ('\r'^'\n')))
                                        {
                                                ++m_current;
                                                ++m_txtstats.ncrlfs;
                                        }
                                        else
                                        {
-                                               ++(eol == '\r' ? m_txtstats.ncrs : m_txtstats.nlfs);
+                                               ++(eol1 == '\r' ? m_txtstats.ncrs : m_txtstats.nlfs);
                                        }
                                }
                        }
index 8ba3dc6..d0eb208 100644 (file)
@@ -140,7 +140,7 @@ bool VSSHelper::ReLinkVCProj(const String& strSavePath, String& sError)
                                //find sccprojectname inside this string
                                if (_tcsstr(buffer, _T("SccProjectUniqueName")) == buffer)
                                {
-                                       if (!GetSLNProjUniqueName(hfile, tfile, buffer))
+                                       if (!GetSLNProjUniqueName(hfile, tfile, buffer, nBufferSize))
                                                succeed = false;
                                }
                                else if (_tcsstr(buffer, _T("SccProjectName")) == buffer)
@@ -370,7 +370,7 @@ bool VSSHelper::GetVCProjName(HANDLE hFile, HANDLE tFile) const
        return true;
 }
 
-bool VSSHelper::GetSLNProjUniqueName(HANDLE hFile, HANDLE tFile, TCHAR * buf) const
+bool VSSHelper::GetSLNProjUniqueName(HANDLE hFile, HANDLE tFile, TCHAR * buf, size_t nBufSize) const
 {
        TCHAR buffer[1024] = {0};
        DWORD dwNumWritten = 0;
@@ -390,7 +390,7 @@ bool VSSHelper::GetSLNProjUniqueName(HANDLE hFile, HANDLE tFile, TCHAR * buf) co
        while (!_tcsstr(buffer, _T(".")))
        {                                               
                if (buffer[0] != '\\')
-                       _tcsncat(buf, buffer, _tcslen(buffer));
+                       _tcsncat_s(buf, nBufSize, buffer, _tcslen(buffer));
 
                if (!WriteFile(tFile, buffer, lstrlen(buffer), &dwNumWritten, NULL))
                        return false;
index 0069f76..453eca5 100644 (file)
@@ -41,7 +41,7 @@ protected:
        int GetWordFromBuffer(const TCHAR * inBuffer, DWORD dwInBufferSize,
                TCHAR * outBuffer, DWORD dwOutBufferSize, const TCHAR * charset = NULL) const;
        bool GetVCProjName(HANDLE hFile, HANDLE tFile) const;
-       bool GetSLNProjUniqueName(HANDLE hFile, HANDLE tFile, TCHAR * buf) const;
+       bool GetSLNProjUniqueName(HANDLE hFile, HANDLE tFile, TCHAR * buf, size_t nBufSize) const;
        bool GetSLNProjName(HANDLE hFile, HANDLE tFile, TCHAR * buf) const;
 
 private:
index a47decf..c1fa967 100644 (file)
@@ -180,7 +180,7 @@ static unsigned demoGuessEncoding_rc(const char *src, size_t len, int defcodepag
                size_t n = len < sizeof line - 1 ? len : sizeof line - 1;
                memcpy(line, base, n);
                line[n] = 0;
-       } while (len && sscanf(line, "#pragma code_page(%5u)", &cp) != 1);
+       } while (len && sscanf_s(line, "#pragma code_page(%5u)", &cp) != 1);
        return cp;
 }
 
@@ -230,7 +230,7 @@ static unsigned GuessEncoding_from_bytes(const String& ext, const char *src, siz
  * @param [in] bGuessEncoding Try to guess codepage (not just unicode encoding).
  * @return Structure getting the encoding info.
  */
-FileTextEncoding GuessCodepageEncoding(const String& filepath, int guessEncodingType, int mapmaxlen)
+FileTextEncoding GuessCodepageEncoding(const String& filepath, int guessEncodingType, ptrdiff_t mapmaxlen)
 {
        FileTextEncoding encoding;
        CMarkdown::FileImage fi(filepath.c_str(), mapmaxlen);
index 19dbda6..44c1fa6 100644 (file)
@@ -11,4 +11,4 @@
 /** @brief Buffer size used in this file. */
 static const int BufSize = 65536;
 
-FileTextEncoding GuessCodepageEncoding(const String& filepath, int guessEncodingType, int mapmaxlen = BufSize);
+FileTextEncoding GuessCodepageEncoding(const String& filepath, int guessEncodingType, ptrdiff_t mapmaxlen = BufSize);
index e821a12..8741342 100644 (file)
@@ -1,6 +1,8 @@
 /*
  *     config.h - pre-built version for MSDOS and NT.
  */
+#pragma once
 #define HAVE_VPRINTF 1
 #define RETSIGTYPE void
 #define STDC_HEADERS 1
index e95a8f9..fbf98bd 100644 (file)
@@ -21,8 +21,7 @@
 /* Least common multiple of two buffer sizes A and B.  */
 
 size_t
-buffer_lcm (a, b)
-     size_t a, b;
+buffer_lcm (size_t a, size_t b)
 {
   size_t m, n, r;
 
index a7621b7..ff22d2f 100644 (file)
@@ -16,11 +16,14 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with GNU DIFF; see the file COPYING.  If not, write to
 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#pragma once
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-size_t buffer_lcm PARAMS((size_t, size_t));
+size_t buffer_lcm (size_t, size_t);
 
 #ifdef __cplusplus
 }
index 3e382f2..192715d 100644 (file)
@@ -19,15 +19,14 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include "diff.h"
 
-static void print_ed_hunk PARAMS((struct change *));
-static void print_rcs_hunk PARAMS((struct change *));
-static void pr_forward_ed_hunk PARAMS((struct change *));
+static void print_ed_hunk (struct change *);
+static void print_rcs_hunk (struct change *);
+static void pr_forward_ed_hunk (struct change *);
 \f
 /* Print our script as ed commands.  */
 
 void
-print_ed_script (script)
-    struct change *script;
+print_ed_script (struct change *script)
 {
   print_script (script, find_reverse_change, print_ed_hunk);
 }
@@ -35,8 +34,7 @@ print_ed_script (script)
 /* Print a hunk of an ed diff */
 
 static void
-print_ed_hunk (hunk)
-     struct change *hunk; 
+print_ed_hunk (struct change *hunk)
 {
   int f0, l0, f1, l1;
   int deletes, inserts;
@@ -103,15 +101,13 @@ print_ed_hunk (hunk)
    which means that the commands are not truly useful with ed.  */
 
 void
-pr_forward_ed_script (script)
-     struct change *script;
+pr_forward_ed_script (struct change *script)
 {
   print_script (script, find_change, pr_forward_ed_hunk);
 }
 
 static void
-pr_forward_ed_hunk (hunk)
-     struct change *hunk;
+pr_forward_ed_hunk (struct change *hunk)
 {
   int i;
   int f0, l0, f1, l1;
@@ -147,8 +143,7 @@ pr_forward_ed_hunk (hunk)
    This format is used for RCS.  */
 
 void
-print_rcs_script (script)
-     struct change *script;
+print_rcs_script (struct change *script)
 {
   print_script (script, find_change, print_rcs_hunk);
 }
@@ -156,8 +151,7 @@ print_rcs_script (script)
 /* Print a hunk of an RCS diff */
 
 static void
-print_rcs_hunk (hunk)
-     struct change *hunk;
+print_rcs_hunk (struct change *hunk)
 {
   int i;
   int f0, l0, f1, l1;
index 7a84ac1..be90a21 100644 (file)
@@ -20,14 +20,13 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include "diff.h"
 
-static void print_normal_hunk PARAMS((struct change *));
+static void print_normal_hunk (struct change *);
 
 /* Print the edit-script SCRIPT as a normal diff.
    INF points to an array of descriptions of the two files.  */
 
 void
-print_normal_script (script)
-     struct change *script;
+print_normal_script (struct change *script)
 {
   print_script (script, find_change, print_normal_hunk);
 }
@@ -37,8 +36,7 @@ print_normal_script (script)
    describing changes in consecutive lines.  */
 
 static void
-print_normal_hunk (hunk)
-     struct change *hunk;
+print_normal_hunk (struct change *hunk)
 {
   int first0, last0, first1, last1, deletes, inserts;
   register int i;
index 4ba5b36..6fcf879 100644 (file)
@@ -67,14 +67,14 @@ struct partition
   int hi_minimal;      /* Likewise for high half.  */
 };
 
-static int diag PARAMS((int, int, int, int, int, struct partition *));
-static struct change *add_change PARAMS((int, int, int, int, struct change *));
-static struct change *build_reverse_script PARAMS((struct file_data const[]));
-static struct change *build_script PARAMS((struct file_data const[]));
-static void briefly_report PARAMS((int, struct file_data const[]));
-static void compareseq PARAMS((int, int, int, int, int));
-static void discard_confusing_lines PARAMS((struct file_data[]));
-static void shift_boundaries PARAMS((struct file_data[]));
+static int diag (int, int, int, int, int, struct partition *);
+static struct change *add_change (int, int, int, int, struct change *);
+static struct change *build_reverse_script (struct file_data const[]);
+static struct change *build_script (struct file_data const[]);
+static void briefly_report (int, struct file_data const[]);
+static void compareseq (int, int, int, int, int);
+static void discard_confusing_lines (struct file_data[]);
+static void shift_boundaries (struct file_data[]);
 
 /* Find the midpoint of the shortest edit script for a specified
    portion of the two files.
@@ -108,9 +108,7 @@ static void shift_boundaries PARAMS((struct file_data[]));
    It cannot cause incorrect diff output.  */
 
 static int
-diag (xoff, xlim, yoff, ylim, minimal, part)
-     int xoff, xlim, yoff, ylim, minimal;
-     struct partition *part;
+diag (int xoff, int xlim, int yoff, int ylim, int minimal, struct partition *part)
 {
   int *const fd = fdiag;       /* Give the compiler a chance. */
   int *const bd = bdiag;       /* Additional help for the compiler. */
@@ -348,8 +346,7 @@ diag (xoff, xlim, yoff, ylim, minimal, part)
    expensive it is.  */
 
 static void
-compareseq (xoff, xlim, yoff, ylim, minimal)
-     int xoff, xlim, yoff, ylim, minimal;
+compareseq (int xoff, int xlim, int yoff, int ylim, int minimal)
 {
   int * const xv = xvec; /* Help the compiler.  */
   int * const yv = yvec;
@@ -737,9 +734,7 @@ shift_boundaries (struct file_data filevec[])
    which the insertion was done; vice versa for INSERTED and LINE1.  */
 
 static struct change *
-add_change (line0, line1, deleted, inserted, old)
-     int line0, line1, deleted, inserted;
-     struct change *old;
+add_change (int line0, int line1, int deleted, int inserted, struct change *old)
 {
   struct change *newob = (struct change *) xmalloc (sizeof (struct change));
   memset(newob, 0, sizeof(*newob));
@@ -758,8 +753,7 @@ add_change (line0, line1, deleted, inserted, old)
    producing an edit script in reverse order.  */
 
 static struct change *
-build_reverse_script (filevec)
-     struct file_data const filevec[];
+build_reverse_script (struct file_data const filevec[])
 {
   struct change *script = 0;
   char *changed0 = filevec[0].changed_flag;
@@ -796,8 +790,7 @@ build_reverse_script (filevec)
    producing an edit script in forward order.  */
 
 static struct change *
-build_script (filevec)
-     struct file_data const filevec[];
+build_script (struct file_data const filevec[])
 {
   struct change *script = 0;
   char *changed0 = filevec[0].changed_flag;
@@ -829,9 +822,7 @@ build_script (filevec)
 \f
 /* If CHANGES, briefly report that two files differed.  */
 static void
-briefly_report (changes, filevec)
-     int changes;
-     struct file_data const filevec[];
+briefly_report (int changes, struct file_data const filevec[])
 {
   if (changes)
     message (no_details_flag ? "Files %s and %s differ\n"
@@ -886,9 +877,9 @@ struct change * diff_2_files (struct file_data filevec[], int depth, int * bin_s
                                for (i = 0; i < 2; i++)
                                        while (filevec[i].buffered_chars < buffer_size)
                                          {
-                                               int r = read (filevec[i].desc,
-                                                                         filevec[i].buffer     + filevec[i].buffered_chars,
-                                                                         (int)(buffer_size - filevec[i].buffered_chars));
+                                               int r = _read (filevec[i].desc,
+                                                                          filevec[i].buffer    + filevec[i].buffered_chars,
+                                                                          (int)(buffer_size - filevec[i].buffered_chars));
                                                if (r == 0)
                                                        break;
                                                if (r < 0)
@@ -986,9 +977,11 @@ struct change * diff_2_files (struct file_data filevec[], int depth, int * bin_s
                //  Get the results of comparison in the form of a chain
                // of `struct change's -- an edit script.  
                
+#if 0
                if (output_style == OUTPUT_ED)
                        script = build_reverse_script (filevec);
                else
+#endif
                        script = build_script (filevec);
                
                //  Set CHANGES if we had any diffs.
index 54fafa4..8dc67bc 100644 (file)
@@ -19,14 +19,14 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include "diff.h"
 
-static struct change *find_hunk PARAMS((struct change *));
-static void find_function PARAMS((struct file_data const *, int, char const HUGE **, size_t *));
-static void mark_ignorable PARAMS((struct change *));
-static void pr_context_hunk PARAMS((struct change *));
-static void pr_unidiff_hunk PARAMS((struct change *));
-static void print_context_label PARAMS ((char const *, struct file_data *, char const *));
-static void print_context_number_range PARAMS((struct file_data const *, int, int));
-static void print_unidiff_number_range PARAMS((struct file_data const *, int, int));
+static struct change *find_hunk (struct change *);
+static void find_function (struct file_data const *, int, char const HUGE **, size_t *);
+static void mark_ignorable (struct change *);
+static void pr_context_hunk (struct change *);
+static void pr_unidiff_hunk (struct change *);
+static void print_context_label (char const *, struct file_data *, char const *);
+static void print_context_number_range (struct file_data const *, int, int);
+static void print_unidiff_number_range (struct file_data const *, int, int);
 
 /* Last place find_function started searching from.  */
 static DECL_TLS int find_function_last_search;
@@ -37,25 +37,23 @@ static DECL_TLS int find_function_last_match;
 /* Print a label for a context diff, with a file name and date or a label.  */
 
 static void
-print_context_label (mark, inf, label)
-     char const *mark;
-     struct file_data *inf;
-     char const *label;
+print_context_label(char const *mark, struct file_data *inf, char const *label)
 {
   if (label)
     fprintf (outfile, "%s %s\n", mark, label);
   else
+       {
     /* See Posix.2 section 4.17.6.1.4 for this format.  */
-    fprintf (outfile, "%s %s\t%s",
-            mark, inf->name, ctime (&inf->stat.st_mtime));
+       char ctimeBuffer[26];
+       ctime_s(ctimeBuffer, sizeof(ctimeBuffer), &inf->stat.st_mtime);
+    fprintf (outfile, "%s %s\t%s", mark, inf->name, ctimeBuffer);
+       }
 }
 
 /* Print a header for a context diff, with the file names and dates.  */
 
 void
-print_context_header (inf, unidiff_flag)
-     struct file_data inf[];
-     int unidiff_flag;
+print_context_header(struct file_data inf[], int unidiff_flag)
 {
   if (unidiff_flag)
     {
@@ -72,9 +70,7 @@ print_context_header (inf, unidiff_flag)
 /* Print an edit script in context format.  */
 
 void
-print_context_script (script, unidiff_flag)
-     struct change *script;
-     int unidiff_flag;
+print_context_script (struct change *script, int unidiff_flag)
 {
   if (ignore_blank_lines_flag)
     mark_ignorable (script);
@@ -101,9 +97,7 @@ print_context_script (script, unidiff_flag)
    We print the translated (real) line numbers.  */
 
 static void
-print_context_number_range (file, a, b)
-     struct file_data const *file;
-     int a, b;
+print_context_number_range (struct file_data const *file, int a, int b)
 {
   int trans_a, trans_b;
   translate_range (file, a, b, &trans_a, &trans_b);
@@ -125,8 +119,7 @@ print_context_number_range (file, a, b)
    line with the appropriate flag-character.  */
 
 static void
-pr_context_hunk (hunk)
-     struct change *hunk;
+pr_context_hunk (struct change *hunk)
 {
   int first0, last0, first1, last1, show_from, show_to, i;
   struct change *next;
@@ -233,9 +226,7 @@ pr_context_hunk (hunk)
    We print the translated (real) line numbers.  */
 
 static void
-print_unidiff_number_range (file, a, b)
-     struct file_data const *file;
-     int a, b;
+print_unidiff_number_range (struct file_data const *file, int a, int b)
 {
   int trans_a, trans_b;
   translate_range (file, a, b, &trans_a, &trans_b);
@@ -257,8 +248,7 @@ print_unidiff_number_range (file, a, b)
    line with the appropriate flag-character.  */
 
 static void
-pr_unidiff_hunk (hunk)
-     struct change *hunk;
+pr_unidiff_hunk (struct change *hunk)
 {
   int first0, last0, first1, last1, show_from, show_to, i, j, k;
   struct change *next;
@@ -354,8 +344,7 @@ pr_unidiff_hunk (hunk)
    to the `struct change' for the last change before those lines.  */
 
 static struct change *
-find_hunk (start)
-     struct change *start;
+find_hunk (struct change *start)
 {
   struct change *prev;
   int top0, top1;
@@ -390,8 +379,7 @@ find_hunk (start)
    are ignorable lines.  */
 
 static void
-mark_ignorable (script)
-     struct change *script;
+mark_ignorable (struct change *script)
 {
   while (script)
     {
index 405e2fd..39bd075 100644 (file)
@@ -17,8 +17,7 @@ You should have received a copy of the GNU General Public License
 along with GNU DIFF; see the file COPYING.  If not, write to
 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-#ifndef __DIFF_H__
-#define __DIFF_H__
+#pragma once
 
 #include "system.h"
 #include <ctype.h>
@@ -54,29 +53,34 @@ extern "C" {
 #endif
 
 enum output_style {
+       
+  // NOTE: these values are stored in the user's Registry - don't change their value !!
+  //   (see enum DiffOutputType in Src/CompareOptions.h)
   /* Default output style.  */
-  OUTPUT_NORMAL,
+  OUTPUT_NORMAL = 0,
   /* Output the differences with lines of context before and after (-c).  */
-  OUTPUT_CONTEXT,
+  OUTPUT_CONTEXT = 1,
   /* Output the differences in a unified context diff format (-u). */
-  OUTPUT_UNIFIED,
+  OUTPUT_UNIFIED = 2,
   /* Output the differences as commands suitable for `ed' (-e).  */
-  OUTPUT_ED,
+#if 0
+  OUTPUT_ED = 3,
   /* Output the diff as a forward ed script (-f).  */
-  OUTPUT_FORWARD_ED,
+  OUTPUT_FORWARD_ED = 4,
   /* Like -f, but output a count of changed lines in each "command" (-n). */
-  OUTPUT_RCS,
+  OUTPUT_RCS = 5,
   /* Output merged #ifdef'd file (-D).  */
-  OUTPUT_IFDEF,
+  OUTPUT_IFDEF = 6,
   /* Output sdiff style (-y).  */
-  OUTPUT_SDIFF,
+  OUTPUT_SDIFF = 7,
+#endif
   /* Output html style.  */
-  OUTPUT_HTML
+  OUTPUT_HTML = 8
 };
 
 /* True for output styles that are robust,
    i.e. can handle a file that ends in a non-newline.  */
-#define ROBUST_OUTPUT_STYLE(S) ((S) != OUTPUT_ED && (S) != OUTPUT_FORWARD_ED)
+#define ROBUST_OUTPUT_STYLE(S) ((S)>=0) // ((S) != OUTPUT_ED && (S) != OUTPUT_FORWARD_ED)
 
 EXTERN int output_style;
 
@@ -307,68 +311,68 @@ EXTERN FILE *outfile;
 
 /* analyze.c */
 /* WinMerge: add last two params */
-struct change * diff_2_files PARAMS((struct file_data[], int, int *, int, int*));
+struct change * diff_2_files (struct file_data[], int, int *, int, int*);
 void moved_block_analysis(struct change ** pscript, struct file_data fd[]);
 
 /* context.c */
-void print_context_header PARAMS((struct file_data[], int));
-void print_context_script PARAMS((struct change *, int));
+void print_context_header (struct file_data[], int);
+void print_context_script (struct change *, int);
 
 /* diff.c */
-int excluded_filename PARAMS((char const *));
+int excluded_filename (char const *);
 
 /* dir.c */
 //int diff_dirs (CDiffContext*);
 
 /* ed.c */
-void print_ed_script PARAMS((struct change *));
-void pr_forward_ed_script PARAMS((struct change *));
+void print_ed_script (struct change *);
+void pr_forward_ed_script (struct change *);
 
 /* ifdef.c */
-void print_ifdef_script PARAMS((struct change *));
+void print_ifdef_script (struct change *);
 
 /* io.c */
 /* WinMerge: add last pointer param */
-int read_files PARAMS((struct file_data[], int, int *));
-int sip PARAMS((struct file_data *, int));
-void slurp PARAMS((struct file_data *));
+int read_files (struct file_data[], int, int *);
+int sip (struct file_data *, int);
+void slurp (struct file_data *);
 
 /* normal.c */
-void print_normal_script PARAMS((struct change *));
+void print_normal_script (struct change *);
 
 /* rcs.c */
-void print_rcs_script PARAMS((struct change *));
+void print_rcs_script (struct change *);
 
 /* side.c */
-void print_sdiff_script PARAMS((struct change *));
+void print_sdiff_script (struct change *);
 
 /* util.c */
-void *xmalloc PARAMS((size_t));
-void *xrealloc PARAMS((void *, size_t));
-char *concat PARAMS((char const *, char const *, char const *));
-char *dir_file_pathname PARAMS((char const *, char const *));
-int change_letter PARAMS((int, int));
-int line_cmp PARAMS((char const HUGE *, size_t, char const HUGE *, size_t));
-int translate_line_number PARAMS((struct file_data const *, int));
-struct change *find_change PARAMS((struct change *));
-struct change *find_reverse_change PARAMS((struct change *));
-void analyze_hunk PARAMS((struct change *, int *, int *, int *, int *, int *, int *, const struct file_data fd[]));
-void begin_output PARAMS((void));
-void debug_script PARAMS((struct change *));
-void error PARAMS((char const *, char const *, char const *));
-void fatal PARAMS((char const *));
-void finish_output PARAMS((void));
-void message PARAMS((char const *, char const *, char const *));
-void message5 PARAMS((char const *, char const *, char const *, char const *, char const *));
-void output_1_line PARAMS((char const HUGE *, char const HUGE *, char const *, char const *));
-void perror_with_name PARAMS((char const *));
-void pfatal_with_name PARAMS((char const *));
-void print_1_line PARAMS((char const *, char const HUGE * const *));
-void print_message_queue PARAMS((void));
-void print_number_range PARAMS((int, struct file_data *, int, int));
-void print_script PARAMS((struct change *, struct change * (*) PARAMS((struct change *)), void (*) PARAMS((struct change *))));
-void setup_output PARAMS((char const *, char const *, int));
-void translate_range PARAMS((struct file_data const *, int, int, int *, int *));
+void *xmalloc (size_t);
+void *xrealloc (void *, size_t);
+char *concat (char const *, char const *, char const *);
+char *dir_file_pathname (char const *, char const *);
+int change_letter (int, int);
+int line_cmp (char const HUGE *, size_t, char const HUGE *, size_t);
+int translate_line_number (struct file_data const *, int);
+struct change *find_change (struct change *);
+struct change *find_reverse_change (struct change *);
+void analyze_hunk (struct change *, int *, int *, int *, int *, int *, int *, const struct file_data fd[]);
+void begin_output (void);
+void debug_script (struct change *);
+void error (char const *, char const *, char const *);
+void fatal (char const *);
+void finish_output (void);
+void message (char const *, char const *, char const *);
+void message5 (char const *, char const *, char const *, char const *, char const *);
+void output_1_line (char const HUGE *, char const HUGE *, char const *, char const *);
+void perror_with_name (char const *);
+void pfatal_with_name (char const *);
+void print_1_line (char const *, char const HUGE * const *);
+void print_message_queue (void);
+void print_number_range (int, struct file_data *, int, int);
+void print_script (struct change *, struct change * (*) (struct change *), void (*) (struct change *));
+void setup_output (char const *, char const *, int);
+void translate_range (struct file_data const *, int, int, int *, int *);
 void cleanup_file_buffers(struct file_data fd[]);
 int FileIsBinary(int fd);
 
@@ -386,4 +390,3 @@ int mywstat(const wchar_t *filename, struct _stat64 *buf);
 }
 #endif
 
-#endif
index 15e9df6..98c95c2 100644 (file)
@@ -20,6 +20,7 @@ and this notice must be preserved on all copies.  */
 
 
 #include "diff.h"
+#include <cassert>
 
 struct group
 {
@@ -27,21 +28,20 @@ struct group
   int from, upto; /* start and limit lines for this group of lines */
 };
 
-static char *format_group PARAMS((FILE *, char *, int, struct group const[]));
-static char *scan_char_literal PARAMS((char *, int *));
-static char *scan_printf_spec PARAMS((char *));
-static int groups_letter_value PARAMS((struct group const[], int));
-static void format_ifdef PARAMS((char *, int, int, int, int));
-static void print_ifdef_hunk PARAMS((struct change *));
-static void print_ifdef_lines PARAMS((FILE *, char *, struct group const *));
+static char *format_group (FILE *, char *, int, struct group const[]);
+static char *scan_char_literal (char *, int *);
+static char *scan_printf_spec (char *);
+static int groups_letter_value (struct group const[], int);
+static void format_ifdef (char *, int, int, int, int);
+static void print_ifdef_hunk (struct change *);
+static void print_ifdef_lines (FILE *, char *, struct group const *);
 
 static DECL_TLS int next_line;
 
 /* Print the edit-script SCRIPT as a merged #ifdef file.  */
 
 void
-print_ifdef_script (script)
-     struct change *script;
+print_ifdef_script (struct change *script)
 {
   next_line = - files[0].prefix_lines;
   print_script (script, find_change, print_ifdef_hunk);
@@ -59,8 +59,7 @@ print_ifdef_script (script)
    describing changes in consecutive lines.  */
 
 static void
-print_ifdef_hunk (hunk)
-     struct change *hunk;
+print_ifdef_hunk (struct change *hunk)
 {
   int first0, last0, first1, last1, deletes, inserts;
   char *format;
@@ -91,9 +90,7 @@ print_ifdef_hunk (hunk)
    lines BEG1 up to END1 are from the second file.  */
 
 static void
-format_ifdef (format, beg0, end0, beg1, end1)
-     char *format;
-     int beg0, end0, beg1, end1;
+format_ifdef (char *format, int beg0, int end0, int beg1, int end1)
 {
   struct group groups[2];
 
@@ -113,11 +110,7 @@ format_ifdef (format, beg0, end0, beg1, end1)
    If OUT is zero, do not actually print anything; just scan the format.  */
 
 static char *
-format_group (out, format, endchar, groups)
-     register FILE *out;
-     char *format;
-     int endchar;
-     struct group const groups[];
+format_group (register FILE *out, char *format, int endchar, struct group const groups[])
 {
   register char c;
   register char *f = format;
@@ -237,9 +230,7 @@ format_group (out, format, endchar, groups)
 /* For the line group pair G, return the number corresponding to LETTER.
    Return -1 if LETTER is not a group format letter.  */
 static int
-groups_letter_value (g, letter)
-     struct group const g[];
-     int letter;
+groups_letter_value (struct group const g[], int letter)
 {
   if (isupper (letter))
     {
@@ -260,10 +251,7 @@ groups_letter_value (g, letter)
 /* Print to file OUT, using FORMAT to print the line group GROUP.
    But do nothing if OUT is zero.  */
 static void
-print_ifdef_lines (out, format, group)
-     register FILE *out;
-     char *format;
-     struct group const *group;
+print_ifdef_lines (register FILE *out, char *format, struct group const *group)
 {
   struct file_data const *file = group->file;
   char const HUGE * const *linbuf = file->linbuf;
@@ -364,9 +352,7 @@ print_ifdef_lines (out, format, group)
    Yield the address of the first character after the closing apostrophe,
    or zero if the literal is ill-formed.  */
 static char *
-scan_char_literal (lit, intptr)
-     char *lit;
-     int *intptr;
+scan_char_literal (char *lit, int *intptr)
 {
   register char *p = lit;
   int value, digits;
@@ -387,7 +373,8 @@ scan_char_literal (lit, intptr)
              return 0;
            value = 8 * value + digit;
          }
-       digits = p - lit - 2;
+       assert((p - lit - 2) < INT_MAX);
+       digits = (int)(p - lit - 2);
        if (! (1 <= digits && digits <= 3))
          return 0;
        break;
@@ -405,8 +392,7 @@ scan_char_literal (lit, intptr)
 /* Scan optional printf-style SPEC of the form `-*[0-9]*(.[0-9]*)?[cdoxX]'.
    Return the address of the character following SPEC, or zero if failure.  */
 static char *
-scan_printf_spec (spec)
-     register char *spec;
+scan_printf_spec (register char *spec)
 {
   register unsigned char c;
 
index d7d1cc6..dc5b51f 100644 (file)
@@ -18,10 +18,7 @@ along with GNU DIFF; see the file COPYING.  If not, write to
 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include "diff.h"
-#ifdef _WIN32
-#  include <io.h>
-#  define read _read
-#endif
+#include <io.h>
 #include <cassert>
 
 /* Rotate a value n bits to the left. */
@@ -78,9 +75,9 @@ static DECL_TLS int equivs_index;
 /* Number of elements allocated in the array `equivs'.  */
 static DECL_TLS int equivs_alloc;
 
-static void find_and_hash_each_line PARAMS((struct file_data *));
-static void find_identical_ends PARAMS((struct file_data[]));
-static char *prepare_text_end PARAMS((struct file_data *, short));
+static void find_and_hash_each_line (struct file_data *);
+static void find_identical_ends (struct file_data[]);
+static char *prepare_text_end (struct file_data *, short);
 static enum UNICODESET get_unicode_signature(struct file_data *, unsigned *bom);
 
 /* Check for binary files and compare them for exact identity.  */
@@ -140,9 +137,7 @@ static enum UNICODESET get_unicode_signature(struct file_data *current, unsigned
    and if it appears to be a binary file.  */
 
 int
-sip (current, skip_test)
-     struct file_data *current;
-     int skip_test;
+sip (struct file_data *current, int skip_test)
 {
   int isbinary = 0;
   /* If we have a nonexistent file (or NUL: device) at this stage, treat it as empty.  */
@@ -169,12 +164,9 @@ sip (current, skip_test)
       else
         {
           /* Check first part of file to see if it's a binary file.  */
-          current->buffered_chars = read (current->desc,
+          current->buffered_chars = _read (current->desc,
             current->buffer,
-#ifdef __MSDOS__
-            (unsigned int)
-#endif /*__MSDOS__*/
-            current->buffered_chars);
+            (unsigned int)current->buffered_chars);
           if (current->buffered_chars == -1)
             pfatal_with_name (current->name);
           if (!get_unicode_signature(current, NULL))
@@ -188,8 +180,7 @@ sip (current, skip_test)
 /* Slurp the rest of the current file completely into memory.  */
 
 void
-slurp (current)
-     struct file_data *current;
+slurp (struct file_data *current)
 {
   size_t cc;
 
@@ -268,8 +259,7 @@ ISWSPACE (char ch)
 /* Split the file into lines, simultaneously computing the equivalence class for
    each line. */
 static void
-find_and_hash_each_line (current)
-     struct file_data *current;
+find_and_hash_each_line (struct file_data *current)
 {
   unsigned h;
   unsigned char const HUGE *p = (unsigned char const HUGE *) current->prefix_end;
@@ -485,27 +475,25 @@ hashing_done:;
    Return effective start of text to be compared. */
 
 static char *
-prepare_text_end (current, side)
-     struct file_data *current;
-        short side;
+prepare_text_end (struct file_data *current, short side)
 {
   FSIZE buffered_chars = current->buffered_chars;
   char *const p = current->buffer;
   char *r = p; // receives the return value
-  char *q, *t;
+  char *q0, *t;
   unsigned bom = 0;
   enum UNICODESET sig = get_unicode_signature(current, &bom);
-  char *const u = p + bom;
+  char *const u0 = p + bom;
 
   if (sig == UCS4LE)
     {
       FSIZE buffered_words = buffered_chars / 2;
-      unsigned long *q = (unsigned long *)p + buffered_words / 2;
+      unsigned long *q1 = (unsigned long *)p + buffered_words / 2;
       buffered_chars += buffered_words;
       r = p + buffered_chars;
-      while (--q >= (unsigned long *)u) // exclude the BOM
+      while (--q1 >= (unsigned long *)u0) // exclude the BOM
         {
-          unsigned long u = *q;
+          unsigned long u = *q1;
           if (u >= 0x80000000)
             {
               *--r = '?';
@@ -557,7 +545,7 @@ prepare_text_end (current, side)
       unsigned long *q = (unsigned long *)p + buffered_words / 2;
       buffered_chars += buffered_words;
       r = p + buffered_chars;
-      while (--q >= (unsigned long *)u) // exclude the BOM
+      while (--q >= (unsigned long *)u0) // exclude the BOM
         {
           unsigned long u =
           ((*q & 0x000000FF) << 24) |
@@ -615,7 +603,7 @@ prepare_text_end (current, side)
       unsigned short *q = (unsigned short *)p + buffered_words;
       buffered_chars += buffered_words;
       r = p + buffered_chars;
-      while (--q >= (unsigned short *)u) // exclude the BOM
+      while (--q >= (unsigned short *)u0) // exclude the BOM
         {
           unsigned short u = *q;
           if (u >= 0x800)
@@ -641,7 +629,7 @@ prepare_text_end (current, side)
       unsigned short *q = (unsigned short *)p + buffered_words;
       buffered_chars += buffered_words;
       r = p + buffered_chars;
-      while (--q >= (unsigned short *)u) // exclude the BOM
+      while (--q >= (unsigned short *)u0) // exclude the BOM
         {
           unsigned short u = (*q << 8) | (*q >> 8); // fix byte order
           if (u >= 0x800)
@@ -663,7 +651,7 @@ prepare_text_end (current, side)
     }
   else if (sig == UTF8)
     {
-      r = u; // skip the BOM
+      r = u0; // skip the BOM
     }
 
   if (buffered_chars == 0 || p[buffered_chars - 1] == '\n' || p[buffered_chars - 1] == '\r')
@@ -678,10 +666,10 @@ prepare_text_end (current, side)
        current->buffered_chars = buffered_chars;
 
        /* Count line endings and map them to '\n' if ignore_eol_diff is set. */
-       t = q = p + buffered_chars;
-       while (q > r)
+       t = q0 = p + buffered_chars;
+       while (q0 > r)
        {
-               switch (*--t = *--q)
+               switch (*--t = *--q0)
                {
                case '\r':
                        ++current->count_crs;
@@ -689,7 +677,7 @@ prepare_text_end (current, side)
                                *t = '\n';
                        break;
                case '\n':
-                       if (q > r && q[-1] == '\r')
+                       if (q0 > r && q0[-1] == '\r')
                        {
                                ++current->count_crlfs;
                                --current->count_crs; // compensate for bogus increment
@@ -716,8 +704,7 @@ prepare_text_end (current, side)
    prefixes and suffixes of each object. */
 
 static void
-find_identical_ends (filevec)
-     struct file_data filevec[];
+find_identical_ends (struct file_data filevec[])
 {
   word HUGE *w0, HUGE *w1;
   char HUGE *p0, HUGE *p1, HUGE *buffer0, HUGE *buffer1;
@@ -878,7 +865,8 @@ find_identical_ends (filevec)
       for (prefix_count = 1;  prefix_count < context + 1;  prefix_count *= 2)
         ;
       prefix_mask = prefix_count - 1;
-      ttt = p0 - (char HUGE *)filevec[0].prefix_end;
+         assert((p0 - (char HUGE *)filevec[0].prefix_end) < INT_MAX);
+      ttt = (int)(p0 - (char HUGE *)filevec[0].prefix_end);
       alloc_lines0
         = prefix_count
         + GUESS_LINES (0, 0, ttt)
@@ -922,7 +910,7 @@ find_identical_ends (filevec)
 
   /* Allocate line buffer 1.  */
   tem = prefix_count ? filevec[1].suffix_begin - buffer1 : n1;
-  ttt = filevec[1].prefix_end - buffer1;
+  ttt = (int)(filevec[1].prefix_end - buffer1);
   alloc_lines1
     = (buffered_prefix
        + GUESS_LINES (lines, ttt, tem)
@@ -947,8 +935,10 @@ find_identical_ends (filevec)
   filevec[0].linbuf = linbuf0 + buffered_prefix;
   filevec[1].linbuf = linbuf1 + buffered_prefix;
   filevec[0].linbuf_base = filevec[1].linbuf_base = - buffered_prefix;
-  filevec[0].alloc_lines = alloc_lines0 - buffered_prefix;
-  filevec[1].alloc_lines = alloc_lines1 - buffered_prefix;
+  assert((alloc_lines0 - buffered_prefix) < INT_MAX);
+  assert((alloc_lines1 - buffered_prefix) < INT_MAX);
+  filevec[0].alloc_lines = (int)(alloc_lines0 - buffered_prefix);
+  filevec[1].alloc_lines = (int)(alloc_lines1 - buffered_prefix);
   filevec[0].prefix_lines = filevec[1].prefix_lines = lines;
 }
 
@@ -993,10 +983,7 @@ static int const primes[] =
    If bin_file is given, then check both files for binary files,
    otherwise check second file only if first wasn't binary */
 int
-read_files (filevec, pretend_binary, bin_file)
-     struct file_data filevec[];
-     int pretend_binary;
-     int * bin_file;
+read_files (struct file_data filevec[], int pretend_binary, int *bin_file)
 {
   int i;
   int skip_test = always_text_flag | pretend_binary;
index 487735a..95a1b25 100644 (file)
@@ -21,11 +21,11 @@ and this notice must be preserved on all copies.  */
 
 #include "diff.h"
 
-static unsigned print_half_line PARAMS((char const HUGE * const *, unsigned, unsigned));
-static unsigned tab_from_to PARAMS((unsigned, unsigned));
-static void print_1sdiff_line PARAMS((char const HUGE * const *, int, char const HUGE * const *));
-static void print_sdiff_common_lines PARAMS((int, int));
-static void print_sdiff_hunk PARAMS((struct change *));
+static unsigned print_half_line (char const * const *, unsigned, unsigned);
+static unsigned tab_from_to (unsigned, unsigned);
+static void print_1sdiff_line (char const * const *, int, char const * const *);
+static void print_sdiff_common_lines (int, int);
+static void print_sdiff_hunk (struct change *);
 
 /* Next line number to be printed in the two input files.  */
 static DECL_TLS int next0, next1;
@@ -33,8 +33,7 @@ static DECL_TLS int next0, next1;
 /* Print the edit-script SCRIPT as a sdiff style output.  */
 
 void
-print_sdiff_script (script)
-     struct change *script;
+print_sdiff_script (struct change *script)
 {
   begin_output ();
 
@@ -47,8 +46,7 @@ print_sdiff_script (script)
 /* Tab from column FROM to column TO, where FROM <= TO.  Yield TO.  */
 
 static unsigned
-tab_from_to (from, to)
-     unsigned from, to;
+tab_from_to (unsigned from, unsigned to)
 {
   FILE *out = outfile;
   unsigned tab;
@@ -70,9 +68,7 @@ tab_from_to (from, to)
  * written (not the number of chars).
  */
 static unsigned
-print_half_line (line, indent, out_bound)
-     char const HUGE * const *line;
-     unsigned indent, out_bound;
+print_half_line (char const * const *line, unsigned indent, unsigned out_bound)
 {
   FILE *out = outfile;
   register unsigned in_position = 0, out_position = 0;
@@ -165,10 +161,7 @@ print_half_line (line, indent, out_bound)
  */
 
 static void
-print_1sdiff_line (left, sep, right)
-     char const HUGE * const *left;
-     int sep;
-     char const HUGE * const *right;
+print_1sdiff_line (char const HUGE * const *left, int sep, char const HUGE * const *right)
 {
   FILE *out = outfile;
   unsigned hw = sdiff_half_width, c2o = sdiff_column2_offset;
@@ -207,8 +200,7 @@ print_1sdiff_line (left, sep, right)
 
 /* Print lines common to both files in side-by-side format.  */
 static void
-print_sdiff_common_lines (limit0, limit1)
-     int limit0, limit1;
+print_sdiff_common_lines (int limit0, int limit1)
 {
   int i0 = next0, i1 = next1;
 
@@ -237,8 +229,7 @@ print_sdiff_common_lines (limit0, limit1)
    describing changes in consecutive lines.  */
 
 static void
-print_sdiff_hunk (hunk)
-     struct change *hunk;
+print_sdiff_hunk (struct change *hunk)
 {
   int first0, last0, first1, last1, deletes, inserts;
   register int i, j;
index f60f880..ff5a1db 100644 (file)
@@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License
 along with GNU DIFF; see the file COPYING.  If not, write to
 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
+#pragma once
+
 /* We must define `volatile' and `const' first (the latter inside config.h),
    so that they're used consistently in all system includes.  */
 #if !defined(__STDC__) && !defined(_MSC_VER)
@@ -29,13 +31,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include <sys/types.h>
 #include <sys/stat.h>
 
-#if __STDC__ || defined(__MSDOS__) || defined(__NT__) || defined(WIN32) || defined(WIN64)
-#define PARAMS(args) args
-#else
-#define PARAMS(args) ()
-#define void char
-#endif
-
 #if STAT_MACROS_BROKEN
 #undef S_ISBLK
 #undef S_ISCHR
index d74410f..a97bc48 100644 (file)
@@ -45,8 +45,7 @@ static struct msg **msg_chain_end = &msg_chain;
    TEXT should normally be the file name.  */
 
 void
-perror_with_name (text)
-     char const *text;
+perror_with_name (char const *text)
 {
   int e = errno;
   fprintf (stderr, "%s: ", program);
@@ -57,8 +56,7 @@ perror_with_name (text)
 /* Use when a system call returns non-zero status and that is fatal.  */
 
 void
-pfatal_with_name (text)
-     char const *text;
+pfatal_with_name (char const *text)
 {
   int e = errno;
   print_message_queue ();
@@ -73,8 +71,7 @@ pfatal_with_name (text)
    with args ARG1 and ARG2.  */
 
 void
-error (format, arg, arg1)
-     char const *format, *arg, *arg1;
+error (char const *format, char const *arg, char const *arg1)
 {
   fprintf (stderr, "%s: ", program);
   fprintf (stderr, format, arg, arg1);
@@ -84,8 +81,7 @@ error (format, arg, arg1)
 /* Print an error message containing the string TEXT, then exit.  */
 
 void
-fatal (m)
-     char const *m;
+fatal (char const *m)
 {
   print_message_queue ();
   error ("%s", m, 0);
@@ -97,15 +93,13 @@ fatal (m)
    This is used for things like "binary files differ" and "Only in ...".  */
 
 void
-message (format, arg1, arg2)
-     char const *format, *arg1, *arg2;
+message (char const *format, char const *arg1, char const *arg2)
 {
   message5 (format, arg1, arg2, 0, 0);
 }
 
 void
-message5 (format, arg1, arg2, arg3, arg4)
-     char const *format, *arg1, *arg2, *arg3, *arg4;
+message5 (char const *format, char const *arg1, char const *arg2, char const *arg3, char const *arg4)
 {
   if (paginate_flag)
     {
@@ -150,9 +144,7 @@ static char const *current_name1;
 static int current_depth;
 
 void
-setup_output (name0, name1, depth)
-     char const *name0, *name1;
-     int depth;
+setup_output (char const *name0, char const *name1, int depth)
 {
   current_name0 = name0;
   current_name1 = name1;
@@ -170,22 +162,25 @@ begin_output ()
   if (outfile != 0)
     return;
 
+  char *mySwitch = (switch_string != NULL ? switch_string : "");
+
   /* Construct the header of this piece of diff.  */
-  name = xmalloc (strlen (current_name0) + strlen (current_name1)
-                 + strlen (switch_string) + 7);
+  const size_t nameSiz = strlen(current_name0) + strlen(current_name1)
+         + strlen(mySwitch) + 7;
+  name = xmalloc (nameSiz);
   /* Posix.2 section 4.17.6.1.1 specifies this format.  But there are some
      bugs in the first printing (IEEE Std 1003.2-1992 p 251 l 3304):
      it says that we must print only the last component of the pathnames,
      and it requires two spaces after "diff" if there are no options.
      These requirements are silly and do not match historical practice.  */
-  sprintf (name, "diff%s %s %s", switch_string, current_name0, current_name1);
+  sprintf_s (name, nameSiz, "diff%s %s %s", mySwitch, current_name0, current_name1);
 
   if (paginate_flag)
     {
 #if defined(__MSDOS__) || defined(__NT__) || defined(WIN32)
       char command[120];
 
-      sprintf(command, "%s -f -h \"%s\"", PR_FILE_NAME, name);
+      sprintf_s(command, sizeof(command), "%s -f -h \"%s\"", PR_FILE_NAME, name);
       if ((outfile = popen(command, "w")) == NULL)
         pfatal_with_name ("popen");
 #else
@@ -301,9 +296,7 @@ ISWSPACE (char ch)
    Return 1 if the lines differ, like `memcmp'.  */
 
 int
-line_cmp (s1, len1, s2, len2)
-     char const HUGE *s1, HUGE *s2;
-     size_t len1, len2;
+line_cmp (char const *s1, size_t len1, char const *s2, size_t len2)
 {
   register unsigned char const *t1, *t2;
   register unsigned char end_char = line_end_char;
@@ -492,15 +485,13 @@ line_cmp (s1, len1, s2, len2)
    Return the last link before the first gap.  */
 
 struct change *
-find_change (start)
-     struct change *start;
+find_change (struct change *start)
 {
   return start;
 }
 
 struct change *
-find_reverse_change (start)
-     struct change *start;
+find_reverse_change (struct change *start)
 {
   return start;
 }
@@ -517,10 +508,9 @@ find_reverse_change (start)
    link at the end) and prints it.  */
 
 void
-print_script (script, hunkfun, printfun)
-     struct change *script;
-     struct change * (*hunkfun) PARAMS((struct change *));
-     void (*printfun) PARAMS((struct change *));
+print_script (struct change *script, 
+                               struct change *(*hunkfun) (struct change *), 
+                               void (*printfun) (struct change *) )
 {
   struct change *next = script;
 
@@ -553,9 +543,7 @@ print_script (script, hunkfun, printfun)
    the line is inserted, deleted, changed, etc.).  */
 
 void
-print_1_line (line_flag, line)
-     char const *line_flag;
-     char const HUGE * const *line;
+print_1_line (char const *line_flag, char const * const *line)
 {
   char const HUGE *text = line[0], HUGE *limit = line[1]; /* Help the compiler.  */
   FILE *out = outfile; /* Help the compiler some more.  */
@@ -647,8 +635,7 @@ fwrite_textify( const void *buffer, size_t size, size_t count, FILE *stream )
    internal carriage return, so that tab stops continue to line up.  */
 
 void
-output_1_line (text, limit, flag_format, line_flag)
-     char const HUGE *text, HUGE *limit, *flag_format, *line_flag;
+output_1_line (char const *text, char const *limit, char const *flag_format, char const *line_flag)
 {
   char * pos = NULL;
   if (!tab_expand_flag)
@@ -697,8 +684,7 @@ output_1_line (text, limit, flag_format, line_flag)
 }
 
 int
-change_letter (inserts, deletes)
-     int inserts, deletes;
+change_letter (int inserts, int deletes)
 {
   if (!inserts)
     return 'd';
@@ -716,18 +702,13 @@ change_letter (inserts, deletes)
    Actual line numbers count from 1 within the entire file.  */
 
 int
-translate_line_number (file, lnum)
-     struct file_data const *file;
-     int lnum;
+translate_line_number (struct file_data const *file, int lnum)
 {
   return lnum + file->prefix_lines + 1;
 }
 
 void
-translate_range (file, a, b, aptr, bptr)
-     struct file_data const *file;
-     int a, b;
-     int *aptr, *bptr;
+translate_range (struct file_data const *file, int a, int b, int *aptr, int *bptr)
 {
   *aptr = translate_line_number (file, a - 1) + 1;
   *bptr = translate_line_number (file, b + 1) - 1;
@@ -740,10 +721,7 @@ translate_range (file, a, b, aptr, bptr)
    We print the translated (real) line numbers.  */
 
 void
-print_number_range (sepchar, file, a, b)
-     int sepchar;
-     struct file_data *file;
-     int a, b;
+print_number_range (int sepchar, struct file_data *file, int a, int b)
 {
   int trans_a, trans_b;
   translate_range (file, a, b, &trans_a, &trans_b);
@@ -776,11 +754,7 @@ int iseolch (char ch)
    set to 0.  */
 
 void
-analyze_hunk (hunk, first0, last0, first1, last1, deletes, inserts, fd)
-     struct change *hunk;
-     int *first0, *last0, *first1, *last1;
-     int *deletes, *inserts;
-     const struct file_data fd[];
+analyze_hunk (struct change *hunk, int *first0, int *last0, int *first1, int *last1, int *deletes, int *inserts, const struct file_data fd[])
 {
   int l0, l1, show_from, show_to;
   int i;
@@ -838,8 +812,7 @@ analyze_hunk (hunk, first0, last0, first1, last1, deletes, inserts, fd)
 /* malloc a block of memory, with fatal error message if we can't do it. */
 
 VOID *
-xmalloc (size)
-     size_t size;
+xmalloc (size_t size)
 {
   register VOID *value;
 
@@ -860,9 +833,7 @@ xmalloc (size)
 /* realloc a block of memory, with fatal error message if we can't do it. */
 
 VOID *
-xrealloc (old, size)
-     VOID *old;
-     size_t size;
+xrealloc (VOID *old, size_t size)
 {
   register VOID *value;
 
@@ -883,12 +854,11 @@ xrealloc (old, size)
 /* Concatenate three strings, returning a newly malloc'd string.  */
 
 char *
-concat (s1, s2, s3)
-     char const *s1, *s2, *s3;
+concat (char const *s1, char const *s2, char const *s3)
 {
   size_t len = strlen (s1) + strlen (s2) + strlen (s3);
   char *new = xmalloc (len + 1);
-  sprintf (new, "%s%s%s", s1, s2, s3);
+  sprintf_s (new, len+1, "%s%s%s", s1, s2, s3);
   return new;
 }
 
@@ -896,8 +866,7 @@ concat (s1, s2, s3)
    of the file in DIR whose filename is FILE.  */
 
 char *
-dir_file_pathname (dir, file)
-     char const *dir, *file;
+dir_file_pathname (char const *dir, char const *file)
 {
 #if defined(__MSDOS__) || defined(__NT__) || defined(WIN32)
   char sep = dir[strlen(dir) - 1];
@@ -908,8 +877,7 @@ dir_file_pathname (dir, file)
 }
 \f
 void
-debug_script (sp)
-     struct change *sp;
+debug_script (struct change *sp)
 {
   fflush (stdout);
   for (; sp; sp = sp->link)
index d426f73..077fec7 100644 (file)
@@ -127,13 +127,13 @@ HMODULE DLLPSTUB::Load()
                if ((name = *proxy) != NULL)
                {
                        DWORD dwError = ERROR_MOD_NOT_FOUND;
-                       HMODULE handle = 0;
+                       HMODULE handle1 = 0;
                        if (proxy[1] == name)
                        {
                                dwError = ERROR_PROC_NOT_FOUND;
-                               handle = (HMODULE)proxy[2];
+                               handle1 = (HMODULE)proxy[2];
                        }
-                       Throw(name, handle, dwError, FALSE);
+                       Throw(name, handle1, dwError, FALSE);
                }
        }
        return handle;
index 75b28af..9dfb2cc 100644 (file)
@@ -1,4 +1,4 @@
-#ifndef DECORATE_U
+#pragma once
 
 /**
  * @brief define the suffixes to decorate TCHAR width specific module/function names
@@ -40,5 +40,3 @@ struct DLLPSTUB
        static void Throw(LPCSTR name, HMODULE, DWORD dwError, BOOL bFreeLibrary);
        HMODULE Load();
 };
-
-#endif
index e55d71d..33295b2 100644 (file)
@@ -1,29 +1,35 @@
-/////////////////////////////////////////////////////////////////////////////\r
-//    License (GPLv2+):\r
-//    This program is free software; you can redistribute it and/or modify\r
-//    it under the terms of the GNU General Public License as published by\r
-//    the Free Software Foundation; either version 2 of the License, or\r
-//    (at your option) any later version.\r
-//\r
-//    This program is distributed in the hope that it will be useful, but\r
-//    WITHOUT ANY WARRANTY; without even the implied warranty of\r
-//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-//    General Public License for more details.\r
-//\r
-//    You should have received a copy of the GNU General Public License\r
-//    along with this program; if not, write to the Free Software\r
-//    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
-/////////////////////////////////////////////////////////////////////////////\r
+/*\r
+Frhed - Free hex editor\r
+Copyright (C) 2000 Raihan Kibria\r
+\r
+This program is free software; you can redistribute it and/or modify it under\r
+the terms of the GNU General Public License, version 2, as published by\r
+the Free Software Foundation.\r
+\r
+This program is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\r
+for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with this program; see the file COPYING.  If not, write to the Free\r
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA\r
+02111-1307, USA.\r
+\r
+Last change: 2017-06-18 by Jochen Neubeck\r
+*/\r
 /** \r
  * @file  heksedit.h\r
  *\r
  * @brief Interface definition for the hekseditor window.\r
  *\r
  */\r
-#pragma once\r
+#ifndef _HEKSEDIT_H_\r
+#define _HEKSEDIT_H_\r
 \r
 #ifndef HEKSEDIT_INTERFACE_VERSION\r
 #define HEKSEDIT_INTERFACE_VERSION 2\r
+#define const(x) x\r
 #endif\r
 \r
 /**\r
@@ -69,18 +75,21 @@ public:
 \r
        struct Status\r
        {\r
-               int iEnteringMode;\r
-               int iCurByte;\r
-               int iCurNibble;\r
-               int iVscrollMax;\r
-               int iVscrollPos;\r
-               int iHscrollMax;\r
-               int iHscrollPos;\r
-               bool bSelected;\r
-               int iStartOfSelection;\r
-               int iEndOfSelection;\r
+               int iFileChanged;\r
+               int const(iEnteringMode);\r
+               int const(iCurByte);\r
+               int const(iCurNibble);\r
+               int const(iVscrollMax);\r
+               int const(iVscrollPos);\r
+               int const(iHscrollMax);\r
+               int const(iHscrollPos);\r
+               int const(bSelected);\r
+               int const(iStartOfSelection);\r
+               int const(iEndOfSelection);\r
        };\r
 \r
+       struct SharedUndoRecords;\r
+\r
        virtual unsigned STDMETHODCALLTYPE get_interface_version() = 0;\r
        virtual unsigned char *STDMETHODCALLTYPE get_buffer(int) = 0;\r
        virtual int STDMETHODCALLTYPE get_length() = 0;\r
@@ -106,19 +115,25 @@ public:
        virtual BOOL STDMETHODCALLTYPE load_lang(LANGID langid, LPCWSTR langdir = NULL) = 0;\r
        virtual void STDMETHODCALLTYPE CMD_zoom(int) = 0;\r
        virtual void STDMETHODCALLTYPE CMD_select_all() = 0;\r
-       virtual void STDMETHODCALLTYPE set_sibling2(IHexEditorWindow *, IHexEditorWindow *) = 0;\r
+#if HEKSEDIT_INTERFACE_VERSION < 2\r
+private:\r
+#endif\r
        virtual void STDMETHODCALLTYPE copy_sel_from(IHexEditorWindow *) = 0;\r
        virtual void STDMETHODCALLTYPE copy_all_from(IHexEditorWindow *) = 0;\r
        virtual void STDMETHODCALLTYPE CMD_edit_undo() = 0;\r
        virtual void STDMETHODCALLTYPE CMD_edit_redo() = 0;\r
-       virtual bool STDMETHODCALLTYPE can_undo() const = 0;\r
-       virtual bool STDMETHODCALLTYPE can_redo() const = 0;\r
+       virtual BOOL STDMETHODCALLTYPE can_undo() const = 0;\r
+       virtual BOOL STDMETHODCALLTYPE can_redo() const = 0;\r
        virtual void STDMETHODCALLTYPE set_savepoint() = 0;\r
-       virtual bool STDMETHODCALLTYPE get_modified() const = 0;\r
        virtual void STDMETHODCALLTYPE clear_undorecords() = 0;\r
-       virtual void STDMETHODCALLTYPE share_undorecords(IHexEditorWindow *) = 0;\r
+       virtual SharedUndoRecords *STDMETHODCALLTYPE share_undorecords(SharedUndoRecords *) = 0;\r
+       virtual void STDMETHODCALLTYPE set_sibling2(IHexEditorWindow *, IHexEditorWindow *) = 0;\r
        virtual void STDMETHODCALLTYPE CMD_view_settings() = 0;\r
        virtual void STDMETHODCALLTYPE CMD_binarymode() = 0;\r
        virtual void STDMETHODCALLTYPE CMD_character_set() = 0;\r
        virtual void STDMETHODCALLTYPE read_ini_data(TCHAR *key = 0) = 0;\r
 };\r
+\r
+#undef const\r
+\r
+#endif // _HEKSEDIT_H_\r
index 36749f4..b776b93 100644 (file)
@@ -55,7 +55,7 @@ static unsigned GetLocaleGrouping(int defval)
 String NumToLocaleStr(int n)
 {
        TCHAR numbuff[34];
-       _ltot(n, numbuff, 10);
+       _ltot_s(n, numbuff, 10);
        return GetLocaleStr(numbuff);
 }
 
@@ -71,7 +71,7 @@ String NumToLocaleStr(int n)
 String NumToLocaleStr(int64_t n)
 {
        TCHAR numbuff[34];
-       _i64tot(n, numbuff, 10);
+       _i64tot_s(n, numbuff, sizeof(numbuff)/sizeof(TCHAR), 10);
        return GetLocaleStr(numbuff);
 }
 
index 28b89e6..dd7b6cc 100644 (file)
@@ -149,30 +149,34 @@ std::string CMarkdown::Resolve(const EntityMap &map, const std::string& v)
                }
                else
                {
-                       EntityMap::const_iterator p = map.find(key);
-                       if (p != map.end())
-                               value = p->second;
+                       EntityMap::const_iterator p1 = map.find(key);
+                       if (p1 != map.end())
+                               value = p1->second;
                }
                *q = ';';
                ++q;
-               if (int cchValue = value.length())
+               size_t cchValue = value.length();
+               if (cchValue != 0)
                {
-                       int i = p - &ret[0];
-                       int j = q - &ret[0];
-                       int cchKey = q - p;
-                       if (int cchGrow = cchValue - cchKey)
+                       size_t i = p - &ret[0];
+                       size_t j = q - &ret[0];
+                       size_t cchKey = q - p;
+                       if (cchValue != cchKey)
                        {
-                               int b = ret.length();
+                               size_t b = ret.length();
                                size_t cbMove = (b - j) * sizeof(char);
-                               if (cchGrow < 0)
+                               if (cchKey > cchValue)
                                {
-                                       memmove(q + cchGrow, q, cbMove);
+                                       size_t cchGrow = cchKey - cchValue;
+                                       memmove(q - cchGrow, q, cbMove);
+                                       ret.resize(b - cchGrow);
                                }
-                               ret.resize(b + cchGrow);
                                p = &ret[0] + i;
                                q = &ret[0] + j;
-                               if (cchGrow > 0)
+                               if (cchValue > cchKey)
                                {
+                                       size_t cchGrow = cchValue - cchKey;
+                                       ret.resize(b + cchGrow);
                                        memmove(q + cchGrow, q, cbMove);
                                }
                        }
@@ -189,7 +193,7 @@ std::string CMarkdown::Entities(const std::string& v)
        char *p, *q = &ret[0];
        while (*(p = q))
        {
-               char *value = 0;
+               char *value = nullptr;
                switch (*p)
                {
                case '&': value = "&amp;"; break;
@@ -199,26 +203,18 @@ std::string CMarkdown::Entities(const std::string& v)
                case '>' : value = "&gt;"; break;
                }
                ++q;
-               if (value)
+               if (value != nullptr)
                {
-                       int i = p - &ret[0];
-                       int j = q - &ret[0];
-                       int cchValue = strlen(value);
-                       if (int cchGrow = cchValue - 1)
+                       size_t cchValue = strlen(value);
+                       if (cchValue > 1)
                        {
-                               int b = v.length();
-                               size_t cbMove = (b - j) * sizeof(char);
-                               if (cchGrow < 0)
-                               {
-                                       memmove(q + cchGrow, q, cbMove);
-                               }
-                               ret.resize(b + cchGrow);
+                               ptrdiff_t i = p - &ret[0];
+                               ptrdiff_t j = q - &ret[0];
+                               size_t b = v.length();
+                               ret.resize(b + cchValue - 1);
                                p = &ret[0] + i;
                                q = &ret[0] + j;
-                               if (cchGrow > 0)
-                               {
-                                       memmove(q + cchGrow, q, cbMove);
-                               }
+                               memmove(q + cchValue - 1, q, (b - j) * sizeof(char));
                        }
                        memcpy(p, value, cchValue * sizeof(char));
                        q = p + cchValue;
@@ -294,14 +290,14 @@ CMarkdown::operator bool()
        );
 }
 
-int CMarkdown::FindTag(const char *tags, const char *markup) const
+size_t CMarkdown::FindTag(const char *tags, const char *markup) const
 {
-       while (int len = strlen(tags))
+       while (ptrdiff_t len = strlen(tags))
        {
                unsigned char c;
                if
                (
-                       ahead - markup > len
+                       (ahead - markup) > len
                &&      memcmp(markup, tags, len) == 0
                &&      (isspace(c = markup[len]) || c == '[' || c == '>' || c == '"' || c == '\'' || c == '=')
                )
@@ -405,7 +401,8 @@ CMarkdown &CMarkdown::Move()
                }
                if (utags && upper < ahead && *upper == '<')
                {
-                       if (int utlen = FindTag(utags, upper + 2))
+                       size_t utlen = FindTag(utags, upper + 2);
+                       if (utlen != 0)
                        {
                                upper += 2 + utlen;
                                continue;
@@ -428,7 +425,7 @@ CMarkdown &CMarkdown::Move(const char *name)
                {
                        ++q;
                } while (q <= ahead && !isspace(c = *q) && c != '[' && c != '>' && c != '"' && c != '\'' && c != '=');
-               int length = q - p;
+               size_t length = q - p;
                if (memcmp(p, name, length) == 0 && name[length] == '\0')
                {
                        break;
@@ -662,9 +659,9 @@ int CMarkdown::Token::IsSpecial(const char *p, const char *ahead)
 std::string CMarkdown::GetAttribute(const char *key, std::string *pv)
 {
        const char *name = 0;
-       int cname = 0;
+       size_t cname = 0;
        const char *value = 0;
-       int cvalue = 0;
+       size_t cvalue = 0;
        bool equals = false;
        const char *p = lower;
        Token token;
@@ -744,12 +741,12 @@ int CMarkdown::FileImage::GuessByteOrder(unsigned dwBOM)
                }
                if (wBOM == 0xFEFF || wBOM == 0xFFFE)
                {
-                       nByteOrder += 8 + ((char *)memchr(&dwBOM, 0xFF, 4) - (char *)&dwBOM);
+                       nByteOrder += 8 + static_cast<int>((char *)memchr(&dwBOM, 0xFF, 4) - (char *)&dwBOM);
                }
                else if (LOBYTE(wBOM) == 0 || HIBYTE(wBOM) == 0)
                {
                        unsigned char cBOM = LOBYTE(wBOM) | HIBYTE(wBOM);
-                       nByteOrder += ((char *)memchr(&dwBOM, cBOM, 4) - (char *)&dwBOM);
+                       nByteOrder += static_cast<int>((char *)memchr(&dwBOM, cBOM, 4) - (char *)&dwBOM);
                }
                else if ((dwBOM & 0xFFFFFF) == 0xBFBBEF)
                {
@@ -799,7 +796,7 @@ CMarkdown::FileImage::FileImage(const TCHAR *path, size_t trunc, unsigned flags)
                        pCopy = new unsigned char[cbImage];
                        if (pCopy)
                        {
-                               for (int i = 0; i < cbImage / 2; ++i)
+                               for (size_t i = 0; i < cbImage / 2; ++i)
                                        *((uint16_t *)pCopy + i) = Poco::ByteOrder::flipBytes(*((uint16_t *)pImage + i));
                        }
 
@@ -810,7 +807,7 @@ CMarkdown::FileImage::FileImage(const TCHAR *path, size_t trunc, unsigned flags)
                        case 2 + 0:
                        case 2 + 0 + 8:
                                // little endian
-                               int cchImage = cbImage / 2;
+                               size_t cchImage = cbImage / 2;
                                uint16_t *pchImage = (uint16_t *)pImage;
                                if (nByteOrder & 8)
                                {
@@ -840,7 +837,7 @@ CMarkdown::FileImage::FileImage(const TCHAR *path, size_t trunc, unsigned flags)
                        pCopy = new unsigned char[cbImage];
                        if (pCopy)
                        {
-                               for (int i = 0; i < cbImage / 2; ++i)
+                               for (size_t i = 0; i < cbImage / 2; ++i)
                                        *((uint16_t *)pCopy + i) = Poco::ByteOrder::flipBytes(*((uint16_t *)pImage + i));
                        }
                        delete m_pSharedMemory;
@@ -852,7 +849,7 @@ CMarkdown::FileImage::FileImage(const TCHAR *path, size_t trunc, unsigned flags)
                        case 4 + 0 + 8:
                        case 4 + 3:
                        case 4 + 3 + 8:
-                               int cchImage = cbImage;
+                               size_t cchImage = cbImage;
                                char *pchImage = (char *)pImage;
                                if (nByteOrder & 8)
                                {
@@ -861,7 +858,7 @@ CMarkdown::FileImage::FileImage(const TCHAR *path, size_t trunc, unsigned flags)
                                }
                                unsigned uch;
                                cbImage = 0;
-                               for (int i = 0; i < cchImage; i += 4)
+                               for (size_t i = 0; i < cchImage; i += 4)
                                {
                                        memcpy(&uch, pchImage + i, 4);
                                        if (nByteOrder & 2)
@@ -874,7 +871,7 @@ CMarkdown::FileImage::FileImage(const TCHAR *path, size_t trunc, unsigned flags)
                                if (pCopy2)
                                {
                                        cbImage = 0;
-                                       for (int i = 0; i < cchImage; i += 4)
+                                       for (size_t i = 0; i < cchImage; i += 4)
                                        {
                                                memcpy(&uch, pchImage + i, 4);
                                                if (nByteOrder & 2)
index 3e381d3..93fbb22 100644 (file)
@@ -43,7 +43,7 @@ public:
 private:
        int (*const memcmp)(const void *, const void *, size_t);
        const char *const utags;
-       int FindTag(const char *, const char *) const;
+       size_t FindTag(const char *, const char *) const;
        class Token;
 };
 
index 20143e9..f3a1930 100644 (file)
 #include <cstring>
 #include <direct.h>
 #include <mbctype.h> // MBCS (multibyte codepage stuff)
+#pragma warning (push)                 // prevent "warning C4091: 'typedef ': ignored on left of 'tagGPFIDL_FLAGS' when no variable is declared"
+#pragma warning (disable:4091) // VC bug when using XP enabled toolsets.
 #include <shlobj.h>
+#pragma warning (pop)
 #include <shlwapi.h>
 #include "PathContext.h"
 #include "coretools.h"
@@ -432,7 +435,7 @@ bool IsShortcut(const String& inPath)
 {
        const TCHAR ShortcutExt[] = _T(".lnk");
        TCHAR ext[_MAX_EXT] = {0};
-       _tsplitpath(inPath.c_str(), NULL, NULL, NULL, ext);
+       _tsplitpath_s(inPath.c_str(), NULL, 0, NULL, 0, NULL, 0, ext, _MAX_EXT);
        if (_tcsicmp(ext, ShortcutExt) == 0)
                return true;
        else
index e4f3047..8456aad 100644 (file)
@@ -1,8 +1,7 @@
 /* This header file machine-generated by mktyplib.exe */\r
 /* Interface to type library: SourceSafeTypeLib */\r
 \r
-#ifndef _SourceSafeTypeLib_H_\r
-#define _SourceSafeTypeLib_H_\r
+#pragma once\r
 \r
 DEFINE_GUID(LIBID_SourceSafeTypeLib,0x783CD4E0L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);\r
 #ifndef BEGIN_INTERFACE\r
@@ -597,4 +596,3 @@ DEFINE_GUID(CLSID_VSSApp,0x2A0DE0E1L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1
 class VSSApp;\r
 #endif\r
 \r
-#endif\r
index aca475c..a98f0f2 100644 (file)
@@ -365,6 +365,10 @@ stringdiffs::BuildWordsArray(const String & str, std::vector<word>& words)
 {
        int i=0, begin=0;
 
+       size_t sLen = str.length();
+       assert(sLen < INT_MAX);
+       int iLen = static_cast<int>(sLen);
+
        // dummy;
        words.push_back(word(0, -1, 0, 0));
 
@@ -383,7 +387,7 @@ inspace:
 
                words.push_back(word(begin, e, dlspace, Hash(str, begin, e, 0)));
        }
-       if (i == str.length())
+       if (i == iLen)
                return;
        begin = i;
        goto inword;
@@ -391,7 +395,7 @@ inspace:
        // state when we are inside a word
 inword:
        bool atspace=false;
-       if (i == str.length() || ((atspace = isSafeWhitespace(str[i])) != 0) || isWordBreak(m_breakType, str.c_str(), i))
+       if (i == iLen || ((atspace = isSafeWhitespace(str[i])) != 0) || isWordBreak(m_breakType, str.c_str(), i))
        {
                if (begin<i)
                {
@@ -401,7 +405,7 @@ inword:
                        
                        words.push_back(word(begin, e, dlword, Hash(str, begin, e, 0)));
                }
-               if (i == str.length())
+               if (i == iLen)
                {
                        return;
                }
index b841501..6be275a 100644 (file)
@@ -159,12 +159,12 @@ namespace
                files.SetLeft(_T("A"));
                files.SetRight(_T("B"));
                di.diffFileInfo[0].size = 1;
-               di.diffFileInfo[1].size = -1;
+               di.diffFileInfo[1].size = DirItem::FILE_SIZE_NONE;
                EXPECT_EQ(DIFFCODE::DIFF, bc.CompareFiles(files, di));
 
                files.SetLeft(_T("A"));
                files.SetRight(_T("B"));
-               di.diffFileInfo[0].size = -1;
+               di.diffFileInfo[0].size = DirItem::FILE_SIZE_NONE;
                di.diffFileInfo[1].size = 1;
                EXPECT_EQ(DIFFCODE::DIFF, bc.CompareFiles(files, di));
 
index 509b7a6..2c180f3 100644 (file)
@@ -31,8 +31,8 @@ namespace
        {
                FilePair(const std::string& left, const std::string& right)
                {
-                       filedata[0].desc = _open(left.c_str(),  O_RDONLY | O_BINARY, _S_IREAD);
-                       filedata[1].desc = _open(right.c_str(), O_RDONLY | O_BINARY, _S_IREAD);
+                       _sopen_s(&filedata[0].desc, left.c_str(),  O_RDONLY | O_BINARY, _SH_DENYWR, _S_IREAD);
+                       _sopen_s(&filedata[1].desc, right.c_str(), O_RDONLY | O_BINARY, _SH_DENYWR, _S_IREAD);
                }
 
                ~FilePair()
index ff9e243..7c539cf 100644 (file)
@@ -49,7 +49,7 @@ namespace
        TEST_F(PluginsTest, Unpack)
        {
                String oldModulePath = env::GetProgPath();
-               env::SetProgPath(_T("c:/program files (x86)/winmerge"));
+               env::SetProgPath(_T("c:/Program Files/WinMerge"));
                CAssureScriptsForThread asft;
                PackingInfo *iu = NULL;
                PrediffingInfo *ip = NULL;
index 6d86fbb..63c1b27 100644 (file)
@@ -88,7 +88,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\..\..\Src;..\..\..\Src\Common;..\..\..\Externals\boost;..\..\..\Externals\poco\Foundation\include;..\..\..\Externals\poco\XML\include;..\..\..\Externals\gtest\include;..\..\..\Externals\gtest\;..\..\..\Src\diffutils\src;..\..\..\Src\diffutils\lib;..\..\..\Src\diffutils\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;UNICODE;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;UNICODE;POCO_STATIC;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
@@ -97,6 +97,8 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Link>
       <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\..\..\Src;..\..\..\Src\Common;..\..\..\Externals\boost;..\..\..\Externals\poco\Foundation\include;..\..\..\Externals\poco\XML\include;..\..\..\Externals\gtest\include;..\..\..\Externals\gtest\;..\..\..\Src\diffutils\src;..\..\..\Src\diffutils\lib;..\..\..\Src\diffutils\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;UNICODE;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;UNICODE;POCO_STATIC;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Link>
       <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <AdditionalIncludeDirectories>..\..\..\Src;..\..\..\Src\Common;..\..\..\Externals\boost;..\..\..\Externals\poco\Foundation\include;..\..\..\Externals\poco\XML\include;..\..\..\Externals\gtest\include;..\..\..\Externals\gtest\;..\..\..\Src\diffutils\src;..\..\..\Src\diffutils\lib;..\..\..\Src\diffutils\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;UNICODE;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;UNICODE;POCO_STATIC;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Link>
       <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
       <AdditionalIncludeDirectories>..\..\..\Src;..\..\..\Src\Common;..\..\..\Externals\boost;..\..\..\Externals\poco\Foundation\include;..\..\..\Externals\poco\XML\include;..\..\..\Externals\gtest\include;..\..\..\Externals\gtest\;..\..\..\Src\diffutils\src;..\..\..\Src\diffutils\lib;..\..\..\Src\diffutils\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;UNICODE;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;UNICODE;POCO_STATIC;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
     </ClCompile>
     <Link>
       <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\Externals\gtest\src\gtest-all.cc" />
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-death-test.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-filepath.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-port.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-printers.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-test-part.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-typed-test.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest_main.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\..\..\Src\Common\ShellFileOperations.cpp" />
     <ClCompile Include="..\..\..\Src\CompareEngines\BinaryCompare.cpp" />
     <ClCompile Include="..\..\..\Src\CompareEngines\ByteComparator.cpp" />
     <ClCompile Include="..\OptionsMgr\VariantValue_test.cpp" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-death-test.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-message.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-param-test.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-printers.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-spi.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-test-part.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-typed-test.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest_pred_impl.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest_prod.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-death-test-internal.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-filepath.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-internal.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-linked_ptr.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-param-util-generated.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-param-util.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-port.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-string.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-tuple.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-type-util.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\src\gtest-internal-inl.h">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClInclude>
     <ClInclude Include="..\..\..\Src\Common\ShellFileOperations.h" />
     <ClInclude Include="..\..\..\Src\CompareEngines\BinaryCompare.h" />
     <ClInclude Include="..\..\..\Src\CompareEngines\ByteComparator.h" />
index 11e5de2..23269e8 100644 (file)
     <Filter Include="gtest">
       <UniqueIdentifier>{20eb57d2-cf08-44a2-b9e0-c7f267013211}</UniqueIdentifier>
     </Filter>
+    <Filter Include="gtest\include">
+      <UniqueIdentifier>{1a47bdcd-4e19-4980-8ce0-6bca0a1f05c7}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="gtest\include\internal">
+      <UniqueIdentifier>{a16e05ae-b552-4e79-920b-099f70b8e4e9}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\Src\CompareEngines\ByteComparator.cpp">
     <ClCompile Include="..\diffutils\mystat_test.cpp">
       <Filter>Tests</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest_main.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-death-test.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-filepath.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-port.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-printers.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-test-part.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-typed-test.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\Src\CompareEngines\ByteComparator.h">
     <ClInclude Include="..\..\..\Src\CompareEngines\TimeSizeCompare.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-string.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-internal.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-death-test-internal.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-filepath.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-linked_ptr.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-param-util.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-param-util-generated.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-port.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-tuple.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-type-util.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest_pred_impl.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest_prod.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-death-test.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-message.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-param-test.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-printers.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-spi.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-test-part.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-typed-test.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\src\gtest-internal-inl.h">
+      <Filter>gtest</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>
\ No newline at end of file
index 4215201..27aa278 100644 (file)
@@ -88,7 +88,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\..\..\Src;..\..\..\Src\Common;..\..\..\Externals\boost;..\..\..\Externals\poco\Foundation\include;..\..\..\Externals\poco\XML\include;..\..\..\Externals\gtest\include;..\..\..\Externals\gtest\;..\..\..\Src\diffutils\src;..\..\..\Src\diffutils\lib;..\..\..\Src\diffutils\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;UNICODE;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;UNICODE;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
@@ -97,6 +97,9 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Link>
       <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\..\..\Src;..\..\..\Src\Common;..\..\..\Externals\boost;..\..\..\Externals\poco\Foundation\include;..\..\..\Externals\poco\XML\include;..\..\..\Externals\gtest\include;..\..\..\Externals\gtest\;..\..\..\Src\diffutils\src;..\..\..\Src\diffutils\lib;..\..\..\Src\diffutils\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;UNICODE;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;WIN64;_DEBUG;_CONSOLE;UNICODE;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Link>
       <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <AdditionalIncludeDirectories>..\..\..\Src;..\..\..\Src\Common;..\..\..\Externals\boost;..\..\..\Externals\poco\Foundation\include;..\..\..\Externals\poco\XML\include;..\..\..\Externals\gtest\include;..\..\..\Externals\gtest\;..\..\..\Src\diffutils\src;..\..\..\Src\diffutils\lib;..\..\..\Src\diffutils\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;UNICODE;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;UNICODE;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Link>
       <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
       <AdditionalIncludeDirectories>..\..\..\Src;..\..\..\Src\Common;..\..\..\Externals\boost;..\..\..\Externals\poco\Foundation\include;..\..\..\Externals\poco\XML\include;..\..\..\Externals\gtest\include;..\..\..\Externals\gtest\;..\..\..\Src\diffutils\src;..\..\..\Src\diffutils\lib;..\..\..\Src\diffutils\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;UNICODE;POCO_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;WIN64;NDEBUG;_CONSOLE;UNICODE;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
       <PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <SDLCheck>true</SDLCheck>
+      <LanguageStandard>stdcpp17</LanguageStandard>
     </ClCompile>
     <Link>
       <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\Externals\gtest\src\gtest-all.cc" />
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-death-test.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-filepath.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-port.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-printers.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-test-part.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-typed-test.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest_main.cc">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\..\..\Src\Common\ShellFileOperations.cpp" />
     <ClCompile Include="..\..\..\Src\CompareEngines\BinaryCompare.cpp" />
     <ClCompile Include="..\..\..\Src\CompareEngines\ByteComparator.cpp" />
     <ClCompile Include="..\OptionsMgr\VariantValue_test.cpp" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-death-test.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-message.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-param-test.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-printers.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-spi.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-test-part.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-typed-test.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest_pred_impl.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest_prod.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-death-test-internal.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-filepath.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-internal.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-linked_ptr.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-param-util-generated.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-param-util.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-port.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-string.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-tuple.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-type-util.h" />
+    <ClInclude Include="..\..\..\Externals\gtest\src\gtest-internal-inl.h">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClInclude>
     <ClInclude Include="..\..\..\Src\Common\ShellFileOperations.h" />
     <ClInclude Include="..\..\..\Src\CompareEngines\BinaryCompare.h" />
     <ClInclude Include="..\..\..\Src\CompareEngines\ByteComparator.h" />
index 11e5de2..23269e8 100644 (file)
     <Filter Include="gtest">
       <UniqueIdentifier>{20eb57d2-cf08-44a2-b9e0-c7f267013211}</UniqueIdentifier>
     </Filter>
+    <Filter Include="gtest\include">
+      <UniqueIdentifier>{1a47bdcd-4e19-4980-8ce0-6bca0a1f05c7}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="gtest\include\internal">
+      <UniqueIdentifier>{a16e05ae-b552-4e79-920b-099f70b8e4e9}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\Src\CompareEngines\ByteComparator.cpp">
     <ClCompile Include="..\diffutils\mystat_test.cpp">
       <Filter>Tests</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest_main.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-death-test.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-filepath.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-port.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-printers.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-test-part.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Externals\gtest\src\gtest-typed-test.cc">
+      <Filter>gtest</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\Src\CompareEngines\ByteComparator.h">
     <ClInclude Include="..\..\..\Src\CompareEngines\TimeSizeCompare.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-string.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-internal.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-death-test-internal.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-filepath.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-linked_ptr.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-param-util.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-param-util-generated.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-port.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-tuple.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\internal\gtest-type-util.h">
+      <Filter>gtest\include\internal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest_pred_impl.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest_prod.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-death-test.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-message.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-param-test.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-printers.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-spi.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-test-part.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\include\gtest\gtest-typed-test.h">
+      <Filter>gtest\include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Externals\gtest\src\gtest-internal-inl.h">
+      <Filter>gtest</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>
\ No newline at end of file
index 62909cf..a69f5f7 100644 (file)
@@ -90,28 +90,28 @@ namespace
                int n;
 
                // UTF8->UCS2LE
-               n = ucr::CrossConvert(str_utf8, strlen(str_utf8), (char *)wbuf, sizeof(wbuf), ucr::CP_UTF_8, 1200, &lossy);
+               n = ucr::CrossConvert(str_utf8, static_cast<unsigned>(strlen(str_utf8)), (char *)wbuf, sizeof(wbuf), ucr::CP_UTF_8, 1200, &lossy);
                EXPECT_STREQ(str_ucs2, wbuf);
                EXPECT_EQ(wcslen(str_ucs2) * sizeof(wchar_t), n);
 
                // UCS2BE->UCS2LE
-               _swab((char *)str_ucs2, (char *)str_ucs2be, (wcslen(str_ucs2) + 1) * sizeof(wchar_t));
-               n = ucr::CrossConvert((char *)str_ucs2be, wcslen(str_ucs2) * sizeof(wchar_t), (char *)wbuf, sizeof(wbuf), 1201, 1200, &lossy);
+               _swab((char *)str_ucs2, (char *)str_ucs2be, static_cast<int>((wcslen(str_ucs2) + 1) * sizeof(wchar_t)));
+               n = ucr::CrossConvert((char *)str_ucs2be, static_cast<unsigned>(wcslen(str_ucs2) * sizeof(wchar_t)), (char *)wbuf, sizeof(wbuf), 1201, 1200, &lossy);
                EXPECT_STREQ(str_ucs2, wbuf);
                EXPECT_EQ(wcslen(str_ucs2) * sizeof(wchar_t), n);
 
                // UCS2LE->UCS2LE
-               n = ucr::CrossConvert((char *)str_ucs2, wcslen(str_ucs2) * sizeof(wchar_t), (char *)wbuf, sizeof(wbuf), 1200, 1200, &lossy);
+               n = ucr::CrossConvert((char *)str_ucs2, static_cast<unsigned>(wcslen(str_ucs2) * sizeof(wchar_t)), (char *)wbuf, sizeof(wbuf), 1200, 1200, &lossy);
                EXPECT_STREQ(str_ucs2, wbuf);
                EXPECT_EQ(wcslen(str_ucs2) * sizeof(wchar_t), n);
 
                // UTF8->UCS2BE
-               n = ucr::CrossConvert(str_utf8, strlen(str_utf8), (char *)wbuf, sizeof(wbuf), ucr::CP_UTF_8, 1201, &lossy);
+               n = ucr::CrossConvert(str_utf8, static_cast<unsigned>(strlen(str_utf8)), (char *)wbuf, sizeof(wbuf), ucr::CP_UTF_8, 1201, &lossy);
                EXPECT_STREQ(str_ucs2be, wbuf);
                EXPECT_EQ(wcslen(str_ucs2be) * sizeof(wchar_t), n);
 
                // UCS2BE->UTF8
-               n = ucr::CrossConvert((char *)str_ucs2be, wcslen(str_ucs2be) * sizeof(wchar_t), buf, sizeof(buf), 1201, ucr::CP_UTF_8, &lossy);
+               n = ucr::CrossConvert((char *)str_ucs2be, static_cast<unsigned>(wcslen(str_ucs2be) * sizeof(wchar_t)), buf, sizeof(buf), 1201, ucr::CP_UTF_8, &lossy);
                EXPECT_STREQ(str_utf8, buf);
                EXPECT_EQ(strlen(str_utf8), n);
 
index 90e541e..50d36d8 100644 (file)
@@ -1774,16 +1774,6 @@ msgstr "Kendu"
 msgid "Colors"
 msgstr "Margoak"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Ezberdintasuna"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Hautatutako Ezberdintasuna:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1799,6 +1789,16 @@ msgstr "Ezabatuta"
 msgid "Text"
 msgstr "Idazkia"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Ezberdintasuna"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Hautatutako Ezberdintasuna:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1814,14 +1814,14 @@ msgstr "Mugituta:"
 msgid "Selected Moved:"
 msgstr "Hautatutakoa Mugituta:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2763,7 +2763,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Agiritegia"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Gelditu lehen ezberdintasunaren ondoren"
index 4512674..e8262d1 100644 (file)
@@ -1773,16 +1773,6 @@ msgstr "Remover"
 msgid "Colors"
 msgstr "Cores"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Diferença:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Diferença Selecionada:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1798,6 +1788,16 @@ msgstr "Apagado"
 msgid "Text"
 msgstr "Texto"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Diferença:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Diferença Selecionada:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1813,14 +1813,14 @@ msgstr "Movido:"
 msgid "Selected Moved:"
 msgstr "Selecionado o Movido:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2762,7 +2762,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Pasta"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "P&arar após a primeira diferença"
index 869ff93..a7f1c86 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Премахни"
 msgid "Colors"
 msgstr "Цветове"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Разлики:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Избрани разлики:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Изтрити"
 msgid "Text"
 msgstr "Текст"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Разлики:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Избрани разлики:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Преместени:"
 msgid "Selected Moved:"
 msgstr "Избрани и преместени:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2756,7 +2756,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Директория"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Спри след първата разлика"
index 9efc195..d76ebe0 100644 (file)
@@ -1770,16 +1770,6 @@ msgstr "Suprimeix"
 msgid "Colors"
 msgstr ""
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Diferència:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Diferència seleccionada:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1795,6 +1785,16 @@ msgstr "Línia absent"
 msgid "Text"
 msgstr ""
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Diferència:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Diferència seleccionada:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1810,14 +1810,14 @@ msgstr "Text mogut:"
 msgid "Selected Moved:"
 msgstr "Text mogut seleccionat:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2755,7 +2755,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Directori"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Atura després de la primera diferència"
index db3b115..ecab468 100644 (file)
@@ -1772,16 +1772,6 @@ msgstr "删除"
 msgid "Colors"
 msgstr "颜色"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "不同:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "已选择:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1797,6 +1787,16 @@ msgstr "已删除"
 msgid "Text"
 msgstr "文字"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "不同:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "已选择:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1812,14 +1812,14 @@ msgstr "移动区块:"
 msgid "Selected Moved:"
 msgstr "选中的移动区块:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2757,7 +2757,7 @@ msgstr ""
 msgid "Folder"
 msgstr "文件夹"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "遇到首处不同后停止(&T)"
index a67a1cb..be90b85 100644 (file)
@@ -1781,16 +1781,6 @@ msgstr "移除"
 msgid "Colors"
 msgstr "色彩"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "差異區塊:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "已選取的差異區塊:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1806,6 +1796,16 @@ msgstr "已刪除"
 msgid "Text"
 msgstr "前景文"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "差異區塊:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "已選取的差異區塊:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1821,15 +1821,15 @@ msgstr "移位區塊:"
 msgid "Selected Moved:"
 msgstr "已選取的移位區塊:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
-msgstr "和下一個相同(3方比較):"
+msgid "Same As The Next (3 panes):"
+msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
-msgstr "和下一個相同(已選取):"
+msgid "Same As The Next (Selected):"
+msgstr ""
 
 #: Merge.rc:40C55014
 #, c-format
@@ -2771,7 +2771,7 @@ msgstr "註銷右鍵快顯功能表(&U)"
 msgid "Folder"
 msgstr "資料夾"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "第一個差異就停(&T)"
index 124c9c0..7ef0a5a 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Ukloni"
 msgid "Colors"
 msgstr "Boje"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Razlike:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Označena razlika:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Obrisano"
 msgid "Text"
 msgstr "Tekst"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Razlike:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Označena razlika:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Premješteno:"
 msgid "Selected Moved:"
 msgstr "Premještaj označenog:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2760,7 +2760,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Mapa"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Zastani na prvoj razlici"
index a3a9fb7..9ee5d8f 100644 (file)
@@ -1773,16 +1773,6 @@ msgstr "O&dstranit"
 msgid "Colors"
 msgstr "Barvy"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Rozdíl:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Vybraný rozdíl:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1798,6 +1788,16 @@ msgstr "Chybějící"
 msgid "Text"
 msgstr "Text"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Rozdíl:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Vybraný rozdíl:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1813,14 +1813,14 @@ msgstr "Přesunutý blok:"
 msgid "Selected Moved:"
 msgstr "Vybraný přesunutý blok:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2758,7 +2758,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Složky"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "Zastavit po prvním &rozdílu"
index b55d4b0..9253894 100644 (file)
@@ -1776,16 +1776,6 @@ msgstr "Fjern"
 msgid "Colors"
 msgstr "Farver"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Forskelle:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Valgte forskelle:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1801,6 +1791,16 @@ msgstr "Slettet"
 msgid "Text"
 msgstr "Tekst"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Forskelle:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Valgte forskelle:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1816,14 +1816,14 @@ msgstr "Flyttet:"
 msgid "Selected Moved:"
 msgstr "Valgt flyttet:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2767,7 +2767,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Mappe"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "S&top efter første forskel"
index dc459e4..5f53972 100644 (file)
@@ -1777,16 +1777,6 @@ msgstr "Verwijderen"
 msgid "Colors"
 msgstr "Kleuren"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Verschil:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Geselecteerd verschil:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1802,6 +1792,16 @@ msgstr "Verwijderd"
 msgid "Text"
 msgstr "Tekst"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Verschil:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Geselecteerd verschil:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1817,14 +1817,14 @@ msgstr "Verplaatst:"
 msgid "Selected Moved:"
 msgstr "Geselecteerd verplaatst:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2768,7 +2768,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Map"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "S&top na eerste verschil"
index e1e4d45..c1bce35 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: WinMerge\n"
 "Report-Msgid-Bugs-To: http://bugs.winmerge.org/\n"
-"POT-Creation-Date: 2018-06-03 10:30+0000\n"
+"POT-Creation-Date: 2018-06-23 17:30+0000\n"
 "PO-Revision-Date: \n"
 "Last-Translator: \n"
 "Language-Team: English <winmerge-translate@lists.sourceforge.net>\n"
@@ -1767,16 +1767,6 @@ msgstr ""
 msgid "Colors"
 msgstr ""
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr ""
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr ""
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1792,6 +1782,16 @@ msgstr ""
 msgid "Text"
 msgstr ""
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr ""
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr ""
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1807,14 +1807,14 @@ msgstr ""
 msgid "Selected Moved:"
 msgstr ""
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2752,7 +2752,7 @@ msgstr ""
 msgid "Folder"
 msgstr ""
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr ""
index 004e5ed..9849855 100644 (file)
@@ -1768,16 +1768,6 @@ msgstr "Poista"
 msgid "Colors"
 msgstr "Värit"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Erilaisuus:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Valittu ero:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1793,6 +1783,16 @@ msgstr "Poistettu"
 msgid "Text"
 msgstr "Teksti"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Erilaisuus:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Valittu ero:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1808,14 +1808,14 @@ msgstr "Siirretty:"
 msgid "Selected Moved:"
 msgstr "Valittu siirretty:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2753,7 +2753,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Kansio"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "Pysäytä ensimmäisen eron jälkeen"
index 7f2dfd0..b0df8d0 100644 (file)
@@ -1775,16 +1775,6 @@ msgstr "Supprimer"
 msgid "Colors"
 msgstr "Couleurs"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Différence:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Différence sélectionnée :"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1800,6 +1790,16 @@ msgstr "Absence"
 msgid "Text"
 msgstr "Texte"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Différence:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Différence sélectionnée :"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1815,14 +1815,14 @@ msgstr "Déplacé:"
 msgid "Selected Moved:"
 msgstr "Sélectionné et déplacé:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2764,7 +2764,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Répertoire"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Arrêter à la première différence"
index 1e4fce5..3b83def 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Eliminar"
 msgid "Colors"
 msgstr "Cores"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Diferenza:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Diferenzas seleccionadas:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Borrado"
 msgid "Text"
 msgstr "Texto"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Diferenza:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Diferenzas seleccionadas:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Movidas:"
 msgid "Selected Moved:"
 msgstr "Seleccionadas movidas:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2761,7 +2761,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Cartafol"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "P&arar despois da primeira diferenza"
index e96d374..028d5cd 100644 (file)
@@ -1776,16 +1776,6 @@ msgstr "Entfernen"
 msgid "Colors"
 msgstr "Farben"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Unterschied:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Selektierter Unterschied:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1801,6 +1791,16 @@ msgstr "Gelöscht"
 msgid "Text"
 msgstr "Text"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Unterschied:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Selektierter Unterschied:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1816,14 +1816,14 @@ msgstr "Verschoben:"
 msgid "Selected Moved:"
 msgstr "Verschoben (Selektiert):"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2765,7 +2765,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Ordner"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "Nach dem ersten Unterschied &stoppen"
index 862f7fd..236f006 100644 (file)
@@ -1770,16 +1770,6 @@ msgstr "Διαγραφή"
 msgid "Colors"
 msgstr "Χρώματα"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Διαφορά:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Επιλεγμένη Διαφορά:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1795,6 +1785,16 @@ msgstr "Διαγραφέντα"
 msgid "Text"
 msgstr "Κείμενο"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Διαφορά:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Επιλεγμένη Διαφορά:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1810,14 +1810,14 @@ msgstr "Μετακινηθέντα:"
 msgid "Selected Moved:"
 msgstr "Επιλεγμένα Μετακινηθέντα:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2755,7 +2755,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Φάκελος"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Τερματισμός μετά την πρώτη διαφορά"
index f5ae94c..4892e98 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Eltávolítás"
 msgid "Colors"
 msgstr "Színek"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Eltérés:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Kijelölt Eltérés:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Törölt"
 msgid "Text"
 msgstr "Szöveg"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Eltérés:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Kijelölt Eltérés:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Áthelyezett:"
 msgid "Selected Moved:"
 msgstr "Kijelölt áthelyezett:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2756,7 +2756,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Könyvtár"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "Megállás az &első különbségnél"
index b3f0cb9..7f5b250 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Rimuovi"
 msgid "Colors"
 msgstr "Colori"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Differenza:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Differenza selezionata:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Eliminata"
 msgid "Text"
 msgstr "Testo"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Differenza:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Differenza selezionata:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Spostata:"
 msgid "Selected Moved:"
 msgstr "Spostata selezionata:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2756,7 +2756,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Cartella"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Fermati dopo la prima differenza"
index a3f2368..20ee8d4 100644 (file)
@@ -1775,16 +1775,6 @@ msgstr "削除"
 msgid "Colors"
 msgstr "色"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "差異:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "選択された差異:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1800,6 +1790,16 @@ msgstr "削除"
 msgid "Text"
 msgstr "テキスト"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "差異:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "選択された差異:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1815,19 +1815,15 @@ msgstr "移動ブロック:"
 msgid "Selected Moved:"
 msgstr "選択された移動ブロック:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
-"差異:\n"
-"(ただし隣接ペインと同じ)"
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
-"選択された差異:\n"
-"(ただし隣接ペインと同じ)"
 
 #: Merge.rc:40C55014
 #, c-format
@@ -2773,7 +2769,7 @@ msgstr "シェル拡張の登録を解除(&U)"
 msgid "Folder"
 msgstr "フォルダー"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "最初の差異で比較を終了する(&T)"
index 188b575..94ffabb 100644 (file)
@@ -1775,16 +1775,6 @@ msgstr "제거"
 msgid "Colors"
 msgstr "색상"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "차이점:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "선택된 차이점:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1800,6 +1790,16 @@ msgstr "삭제됨"
 msgid "Text"
 msgstr "텍스트"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "차이점:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "선택된 차이점:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1815,15 +1815,15 @@ msgstr "이동된 영역:"
 msgid "Selected Moved:"
 msgstr "선택된 이동된 영역:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
-msgstr "다음과 같음 (3개 창):"
+msgid "Same As The Next (3 panes):"
+msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
-msgstr "다음과 같음 (선택):"
+msgid "Same As The Next (Selected):"
+msgstr ""
 
 #: Merge.rc:40C55014
 #, c-format
@@ -2768,7 +2768,7 @@ msgstr "쉘 확장자 등록 해제(&U)"
 msgid "Folder"
 msgstr "폴더"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "첫 차이점 이후 중지하기(&T)"
index 9e62cc3..84cf1be 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Fjern"
 msgid "Colors"
 msgstr "Farger"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Forskjell:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Valgt forskjell:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Slettet"
 msgid "Text"
 msgstr "Tekst"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Forskjell:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Valgt forskjell:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Flyttet:"
 msgid "Selected Moved:"
 msgstr "Valgt flyttet:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2760,7 +2760,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Mappe"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "S&topp etter første forskjell "
index 0e8f588..96b3faa 100644 (file)
@@ -1778,16 +1778,6 @@ msgstr " برداشتن "
 msgid "Colors"
 msgstr " رنگها "
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr " تفاوت : "
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr " تفاوت انتخاب شده : "
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1803,6 +1793,16 @@ msgstr " حذف شد "
 msgid "Text"
 msgstr " متن "
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr " تفاوت : "
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr " تفاوت انتخاب شده : "
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1818,14 +1818,14 @@ msgstr " جابجا شده : "
 msgid "Selected Moved:"
 msgstr " جابجايي انتخاب شده : "
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2769,7 +2769,7 @@ msgstr ""
 msgid "Folder"
 msgstr " پوشه "
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&t توقف پس از نخستين تفاوت"
index 4908779..6b3ac95 100644 (file)
@@ -1772,16 +1772,6 @@ msgstr "Usuń"
 msgid "Colors"
 msgstr "Kolory"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Różnica:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Wybrana różnica:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1797,6 +1787,16 @@ msgstr "Usunięte"
 msgid "Text"
 msgstr "Tekst"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Różnica:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Wybrana różnica:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1812,14 +1812,14 @@ msgstr "Przeniesione:"
 msgid "Selected Moved:"
 msgstr "Wybrane przeniesiono:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2761,7 +2761,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Folder"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Zatrzymaj po pierwszej różnicy"
index cbe2356..f884208 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Remover"
 msgid "Colors"
 msgstr "Cores"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Diferença:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Diferença Selecionada:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Eliminado"
 msgid "Text"
 msgstr "Texto"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Diferença:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Diferença Selecionada:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,15 +1811,15 @@ msgstr "Movida:"
 msgid "Selected Moved:"
 msgstr "Selecionada Movida:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
-msgstr "Como as seguintes (3 janelas):"
+msgid "Same As The Next (3 panes):"
+msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
-msgstr "Como a seguinte (Selecionada):"
+msgid "Same As The Next (Selected):"
+msgstr ""
 
 #: Merge.rc:40C55014
 #, c-format
@@ -2756,7 +2756,7 @@ msgstr "Extensão shell não registada"
 msgid "Folder"
 msgstr "Pasta"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "Parar após primeira diferença"
index bbb38f2..6de2404 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Înlătură"
 msgid "Colors"
 msgstr "Culori"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Diferenţă:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Diferenţă selectată:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Şters"
 msgid "Text"
 msgstr "Text"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Diferenţă:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Diferenţă selectată:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Mutat:"
 msgid "Selected Moved:"
 msgstr "Selecţie mutată:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2756,7 +2756,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Director"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "Opreş&te după prima diferenţă"
index 479918d..eb9624f 100644 (file)
@@ -1773,16 +1773,6 @@ msgstr "Удалить"
 msgid "Colors"
 msgstr "Цвета"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Отличие:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Выделенное отличие:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1798,6 +1788,16 @@ msgstr "Удаленное"
 msgid "Text"
 msgstr "Текст"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Отличие:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Выделенное отличие:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1813,14 +1813,14 @@ msgstr "Перемещенные:"
 msgid "Selected Moved:"
 msgstr "Выбранные перемещенные:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2762,7 +2762,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Каталог"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Останавливаться после первого отличия"
index 133bd0d..eb0d781 100644 (file)
@@ -1770,16 +1770,6 @@ msgstr "Óêëîíè"
 msgid "Colors"
 msgstr "Áî¼å"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Ðàçëèêå"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Îáåëåæè ðàçëèêå"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1795,6 +1785,16 @@ msgstr "Èçáðèñàíî"
 msgid "Text"
 msgstr "Òåêñò"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Ðàçëèêå"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Îáåëåæè ðàçëèêå"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1810,14 +1810,14 @@ msgstr "Ïðåìåøòåíî:"
 msgid "Selected Moved:"
 msgstr "Ïðåìåøòàœå èçàáðàíîã"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2759,7 +2759,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Ôàñöèêëà"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "Ñ&òàíè ïîñëå ïðâå ðàçëèêå"
index ace0acb..1b8c831 100644 (file)
@@ -1768,16 +1768,6 @@ msgstr "ඉවත් කරන්න"
 msgid "Colors"
 msgstr "වර්ණ"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr " වෙනස:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "තෝරාගත් වෙනස :"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1793,6 +1783,16 @@ msgstr "මකා දැමූ"
 msgid "Text"
 msgstr "පෙළ"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr " වෙනස:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "තෝරාගත් වෙනස :"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1808,14 +1808,14 @@ msgstr "ගෙන ගියා:"
 msgid "Selected Moved:"
 msgstr "තෝරා ගත් කොටස ගෙන ගියා:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2755,7 +2755,7 @@ msgstr ""
 msgid "Folder"
 msgstr "ෆෝල්ඩර"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "පළමු වෙනසට පසුව නවතන්න"
index ce3776e..3624033 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Odstrániť"
 msgid "Colors"
 msgstr "Farby"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Rozdiel:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Rozdiel vo výbere:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Zmazané"
 msgid "Text"
 msgstr "Text"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Rozdiel:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Rozdiel vo výbere:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Presunutý:"
 msgid "Selected Moved:"
 msgstr "Výber presunutý:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2760,7 +2760,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Adresár"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Stop po prvom rozdiele"
index ae0d677..2e863f9 100644 (file)
@@ -1774,16 +1774,6 @@ msgstr "Odstrani"
 msgid "Colors"
 msgstr "Barve"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Razlike"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Izbrane razlike"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1799,6 +1789,16 @@ msgstr "Izbrisano"
 msgid "Text"
 msgstr "Besedilo"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Razlike"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Izbrane razlike"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1814,14 +1814,14 @@ msgstr "Premaknjeno:"
 msgid "Selected Moved:"
 msgstr "Izbrano premaknjeno:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2763,7 +2763,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Mapa"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Ustavi po prvi razliki"
index 45bb7c4..65b3fe3 100644 (file)
@@ -1773,16 +1773,6 @@ msgstr "Eliminar"
 msgid "Colors"
 msgstr "Colores"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Diferencia:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Diferencia seleccionada:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1798,6 +1788,16 @@ msgstr "Eliminada"
 msgid "Text"
 msgstr "Texto"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Diferencia:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Diferencia seleccionada:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1813,14 +1813,14 @@ msgstr "Movida:"
 msgid "Selected Moved:"
 msgstr "Movida Seleccionada:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2762,7 +2762,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Carpeta"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "De&tener después de la primer diferencia"
index 7c2af86..8763cdd 100644 (file)
@@ -1771,16 +1771,6 @@ msgstr "Ta bort"
 msgid "Colors"
 msgstr "Kulörer"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Skillnader:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Markerade skillnader:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1796,6 +1786,16 @@ msgstr "Borttaget"
 msgid "Text"
 msgstr "Text"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Skillnader:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Markerade skillnader:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1811,14 +1811,14 @@ msgstr "Flyttad:"
 msgid "Selected Moved:"
 msgstr "Markerad flyttad:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2760,7 +2760,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Katalog"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "S&toppa efter första skillnaden"
index 9f26042..8b87ee7 100644 (file)
@@ -1777,16 +1777,6 @@ msgstr "Sil"
 msgid "Colors"
 msgstr "Renkler"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Farklılık:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Seçilmiş Farklılık:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1802,6 +1792,16 @@ msgstr "Silinmiş"
 msgid "Text"
 msgstr "Metin"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Farklılık:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Seçilmiş Farklılık:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1817,15 +1817,15 @@ msgstr "Taşınmış:"
 msgid "Selected Moved:"
 msgstr "Seçilmiş Taşınmış:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
-msgstr "Sonraki ile Aynı (3 Pano):"
+msgid "Same As The Next (3 panes):"
+msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
-msgstr "Sonraki ile Aynı (Seçilmiş):"
+msgid "Same As The Next (Selected):"
+msgstr ""
 
 #: Merge.rc:40C55014
 #, c-format
@@ -2770,7 +2770,7 @@ msgstr "Kab&uk Uzantısı Kaydını Sil"
 msgid "Folder"
 msgstr "Klasör"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "İlk Fark&tan Sonra Durulsun"
index 311e74e..e254d0c 100644 (file)
@@ -1772,16 +1772,6 @@ msgstr "Вилучити"
 msgid "Colors"
 msgstr "Кольори"
 
-#: Merge.rc:2C0C2240
-#, c-format
-msgid "Difference:"
-msgstr "Відмінність:"
-
-#: Merge.rc:1BA49C3B
-#, c-format
-msgid "Selected Difference:"
-msgstr "Відзначена відмінність:"
-
 #: Merge.rc:78E0CE0F
 #, c-format
 msgid "Background"
@@ -1797,6 +1787,16 @@ msgstr "Вилучені"
 msgid "Text"
 msgstr "Текст"
 
+#: Merge.rc:2C0C2240
+#, c-format
+msgid "Difference:"
+msgstr "Відмінність:"
+
+#: Merge.rc:1BA49C3B
+#, c-format
+msgid "Selected Difference:"
+msgstr "Відзначена відмінність:"
+
 #: Merge.rc:2756A765
 #, c-format
 msgid "Ignored Difference:"
@@ -1812,14 +1812,14 @@ msgstr "Переміщені:"
 msgid "Selected Moved:"
 msgstr "Відзначені переміщені:"
 
-#: Merge.rc:6B96B328
+#: Merge.rc:73FB246
 #, c-format
-msgid "Same As The Next(3 panes):"
+msgid "Same As The Next (3 panes):"
 msgstr ""
 
-#: Merge.rc:73FB246
+#: Merge.rc:60B696AF
 #, c-format
-msgid "Same As The Next(Selected):"
+msgid "Same As The Next (Selected):"
 msgstr ""
 
 #: Merge.rc:40C55014
@@ -2761,7 +2761,7 @@ msgstr ""
 msgid "Folder"
 msgstr "Тека"
 
-#: Merge.rc:60B696AF
+#: Merge.rc:60B696B0
 #, c-format
 msgid "S&top after first difference"
 msgstr "&Зупинятися після першої відмінності"
index b57c840..008d27c 100644 (file)
@@ -4,5 +4,11 @@ set DISTDIR=c:\web page\geocities
 
 for /F "delims=" %%f in ('type "%DISTDIR%\jp_files.txt"') do (
   "%ProgramFiles(x86)%\VirusTotalUploader2\VirusTotalUploader2.2.exe" %%f
+)\r
+\r
+@echo off\r
+echo.\r
+for /F "delims=" %%f in ('type "%DISTDIR%\files.txt"') do (\r
+  for /F %%h in ('certutil -hashfile %%f SHA256 ^| findstr -v hash') do echo %%~nxf: https://www.virustotal.com/en/file/%%h/analysis/\r
 )
 
diff --git a/WinMerge.sln b/WinMerge.sln
deleted file mode 100644 (file)
index 5f4b915..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00\r
-# Visual Studio 15\r
-VisualStudioVersion = 15.0.26228.4\r
-MinimumVisualStudioVersion = 10.0.40219.1\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Merge", "Src\Merge.vcxproj", "{9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MergeLang", "Src\MergeLang.vcxproj", "{4B011DDA-2279-437D-903C-8028913AF31B}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "Externals\poco\Foundation\Foundation_vs100.vcxproj", "{8164D41D-B053-405B-826C-CF37AC0EF176}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XML", "Externals\poco\XML\XML_vs100.vcxproj", "{9E211743-85FE-4977-82F3-4F04B40C912D}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Util", "Externals\poco\Util\Util_vs100.vcxproj", "{6FF56CDB-787A-4714-A28C-919003F9FA6C}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "Testing\GoogleTest\UnitTests\UnitTests.vcxproj", "{733E7C0B-AC3D-47AC-A8DA-E13644D6294D}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}\r
-       EndProjectSection\r
-EndProject\r
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Poco", "Poco", "{220B870C-D051-463E-997B-8C392081EE15}"\r
-EndProject\r
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Batch Files", "Batch Files", "{DC3B258E-444F-460D-8FD9-09A8165212FA}"\r
-       ProjectSection(SolutionItems) = preProject\r
-               BuildAll2.cmd = BuildAll2.cmd\r
-               BuildArc.cmd = BuildArc.cmd\r
-               BuildBin.cmd = BuildBin.cmd\r
-               BuildInstaller.cmd = BuildInstaller.cmd\r
-               BuildManual.cmd = BuildManual.cmd\r
-               SetVersion.cmd = SetVersion.cmd\r
-               UploadToGithub.cmd = UploadToGithub.cmd\r
-               UploadToVirusTotal.cmd = UploadToVirusTotal.cmd\r
-       EndProjectSection\r
-EndProject\r
-Global\r
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
-               Debug Unicode|Win32 = Debug Unicode|Win32\r
-               Debug Unicode|x64 = Debug Unicode|x64\r
-               debug_shared|Win32 = debug_shared|Win32\r
-               debug_shared|x64 = debug_shared|x64\r
-               debug_static_md|Win32 = debug_static_md|Win32\r
-               debug_static_md|x64 = debug_static_md|x64\r
-               debug_static_mt|Win32 = debug_static_mt|Win32\r
-               debug_static_mt|x64 = debug_static_mt|x64\r
-               Release Unicode|Win32 = Release Unicode|Win32\r
-               Release Unicode|x64 = Release Unicode|x64\r
-               release_shared|Win32 = release_shared|Win32\r
-               release_shared|x64 = release_shared|x64\r
-               release_static_md|Win32 = release_static_md|Win32\r
-               release_static_md|x64 = release_static_md|x64\r
-               release_static_mt|Win32 = release_static_mt|Win32\r
-               release_static_mt|x64 = release_static_mt|x64\r
-               Test|Win32 = Test|Win32\r
-               Test|x64 = Test|x64\r
-       EndGlobalSection\r
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_shared|Win32.ActiveCfg = UnicodeDebug|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_shared|Win32.Build.0 = UnicodeDebug|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_shared|x64.ActiveCfg = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_shared|x64.Build.0 = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_static_md|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_static_md|Win32.Build.0 = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_static_md|x64.ActiveCfg = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_static_md|x64.Build.0 = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_static_mt|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_static_mt|Win32.Build.0 = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_static_mt|x64.ActiveCfg = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.debug_static_mt|x64.Build.0 = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_shared|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_shared|Win32.Build.0 = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_shared|x64.ActiveCfg = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_shared|x64.Build.0 = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_static_md|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_static_md|Win32.Build.0 = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_static_md|x64.ActiveCfg = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_static_md|x64.Build.0 = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_static_mt|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_static_mt|Win32.Build.0 = UnicodeRelease|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_static_mt|x64.ActiveCfg = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.release_static_mt|x64.Build.0 = UnicodeRelease|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|Win32.ActiveCfg = Test|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|Win32.Build.0 = Test|Win32\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|x64.ActiveCfg = Test|x64\r
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|x64.Build.0 = Test|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_shared|Win32.ActiveCfg = UnicodeDebug|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_shared|Win32.Build.0 = UnicodeDebug|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_shared|x64.ActiveCfg = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_shared|x64.Build.0 = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_static_md|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_static_md|Win32.Build.0 = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_static_md|x64.ActiveCfg = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_static_md|x64.Build.0 = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_static_mt|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_static_mt|Win32.Build.0 = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_static_mt|x64.ActiveCfg = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.debug_static_mt|x64.Build.0 = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_shared|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_shared|Win32.Build.0 = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_shared|x64.ActiveCfg = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_shared|x64.Build.0 = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_static_md|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_static_md|Win32.Build.0 = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_static_md|x64.ActiveCfg = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_static_md|x64.Build.0 = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_static_mt|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_static_mt|Win32.Build.0 = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_static_mt|x64.ActiveCfg = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.release_static_mt|x64.Build.0 = UnicodeRelease|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|Win32.ActiveCfg = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|Win32.Build.0 = UnicodeRelease|Win32\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|x64.Build.0 = UnicodeDebug|x64\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.ActiveCfg = debug_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.Build.0 = debug_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.ActiveCfg = debug_static_mt|x64\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.Build.0 = debug_static_mt|x64\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_shared|Win32.ActiveCfg = debug_shared|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_shared|Win32.Build.0 = debug_shared|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_shared|x64.ActiveCfg = debug_shared|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_static_md|Win32.Build.0 = debug_static_md|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_static_md|x64.ActiveCfg = debug_static_md|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.debug_static_mt|x64.ActiveCfg = debug_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.ActiveCfg = release_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.Build.0 = release_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.ActiveCfg = release_static_mt|x64\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.Build.0 = release_static_mt|x64\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_shared|Win32.ActiveCfg = release_shared|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_shared|Win32.Build.0 = release_shared|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_shared|x64.ActiveCfg = release_shared|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_static_md|Win32.ActiveCfg = release_static_md|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_static_md|Win32.Build.0 = release_static_md|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_static_md|x64.ActiveCfg = release_static_md|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_static_mt|Win32.Build.0 = release_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.release_static_mt|x64.ActiveCfg = release_static_mt|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|Win32.ActiveCfg = release_static_md|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|Win32.Build.0 = release_static_md|Win32\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|x64.ActiveCfg = debug_static_mt|x64\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|x64.Build.0 = debug_static_mt|x64\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.ActiveCfg = debug_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.Build.0 = debug_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.ActiveCfg = debug_static_mt|x64\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.Build.0 = debug_static_mt|x64\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|Win32.Build.0 = debug_shared|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|x64.ActiveCfg = debug_shared|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|x64.ActiveCfg = debug_static_md|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.ActiveCfg = release_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.Build.0 = release_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.ActiveCfg = release_static_mt|x64\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.Build.0 = release_static_mt|x64\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|Win32.ActiveCfg = release_shared|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|Win32.Build.0 = release_shared|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|x64.ActiveCfg = release_shared|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|Win32.Build.0 = release_static_md|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|x64.ActiveCfg = release_static_md|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|x64.ActiveCfg = release_static_mt|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|Win32.ActiveCfg = release_static_md|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|Win32.Build.0 = release_static_md|Win32\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|x64.ActiveCfg = debug_static_mt|x64\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|x64.Build.0 = debug_static_mt|x64\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.ActiveCfg = debug_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.Build.0 = debug_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.ActiveCfg = debug_static_mt|x64\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.Build.0 = debug_static_mt|x64\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|Win32.Build.0 = debug_shared|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|x64.ActiveCfg = debug_shared|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|x64.ActiveCfg = debug_static_md|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.ActiveCfg = release_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.Build.0 = release_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.ActiveCfg = release_static_mt|x64\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.Build.0 = release_static_mt|x64\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|Win32.ActiveCfg = release_shared|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|Win32.Build.0 = release_shared|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|x64.ActiveCfg = release_shared|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|Win32.Build.0 = release_static_md|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|x64.ActiveCfg = release_static_md|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|x64.ActiveCfg = release_static_mt|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|Win32.ActiveCfg = release_static_md|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|Win32.Build.0 = release_static_md|Win32\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|x64.ActiveCfg = debug_static_mt|x64\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|x64.Build.0 = debug_static_mt|x64\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.ActiveCfg = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.Build.0 = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.ActiveCfg = Debug|x64\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.Build.0 = Debug|x64\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_shared|Win32.ActiveCfg = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_shared|Win32.Build.0 = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_shared|x64.ActiveCfg = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_static_md|Win32.ActiveCfg = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_static_md|Win32.Build.0 = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_static_md|x64.ActiveCfg = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_static_mt|Win32.ActiveCfg = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_static_mt|Win32.Build.0 = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.debug_static_mt|x64.ActiveCfg = Debug|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.ActiveCfg = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.Build.0 = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.ActiveCfg = Release|x64\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.Build.0 = Release|x64\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_shared|Win32.ActiveCfg = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_shared|Win32.Build.0 = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_shared|x64.ActiveCfg = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_static_md|Win32.ActiveCfg = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_static_md|Win32.Build.0 = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_static_md|x64.ActiveCfg = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_static_mt|Win32.ActiveCfg = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_static_mt|Win32.Build.0 = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.release_static_mt|x64.ActiveCfg = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|Win32.ActiveCfg = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|Win32.Build.0 = Release|Win32\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|x64.ActiveCfg = Debug|x64\r
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|x64.Build.0 = Debug|x64\r
-       EndGlobalSection\r
-       GlobalSection(SolutionProperties) = preSolution\r
-               HideSolutionNode = FALSE\r
-       EndGlobalSection\r
-       GlobalSection(NestedProjects) = preSolution\r
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {220B870C-D051-463E-997B-8C392081EE15}\r
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {220B870C-D051-463E-997B-8C392081EE15}\r
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {220B870C-D051-463E-997B-8C392081EE15}\r
-       EndGlobalSection\r
-EndGlobal\r
index 79b113b..d6a65ef 100644 (file)
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Merge", "Src\Merge.vs2015.vcxproj", "{9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}"
-       ProjectSection(ProjectDependencies) = postProject
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}
-       EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MergeLang", "Src\MergeLang.vs2015.vcxproj", "{4B011DDA-2279-437D-903C-8028913AF31B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "Externals\poco\Foundation\Foundation.vs2015.vcxproj", "{8164D41D-B053-405B-826C-CF37AC0EF176}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XML", "Externals\poco\XML\XML.vs2015.vcxproj", "{9E211743-85FE-4977-82F3-4F04B40C912D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Util", "Externals\poco\Util\Util.vs2015.vcxproj", "{6FF56CDB-787A-4714-A28C-919003F9FA6C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "Testing\GoogleTest\UnitTests\UnitTests.vs2015.vcxproj", "{733E7C0B-AC3D-47AC-A8DA-E13644D6294D}"
-       ProjectSection(ProjectDependencies) = postProject
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}
-       EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Poco", "Poco", "{220B870C-D051-463E-997B-8C392081EE15}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Batch Files", "Batch Files", "{DC3B258E-444F-460D-8FD9-09A8165212FA}"
-       ProjectSection(SolutionItems) = preProject
-               BuildAll.vs2015.cmd = BuildAll.vs2015.cmd
-               BuildAll2.cmd = BuildAll2.cmd
-               BuildArc.cmd = BuildArc.cmd
-               BuildBin.cmd = BuildBin.cmd
-               BuildBin.vs2015.cmd = BuildBin.vs2015.cmd
-               BuildInstaller.cmd = BuildInstaller.cmd
-               BuildManual.cmd = BuildManual.cmd
-               SetVersion.cmd = SetVersion.cmd
-               UploadToGithub.cmd = UploadToGithub.cmd
-               UploadToVirusTotal.cmd = UploadToVirusTotal.cmd
-       EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VBS Scripts", "VBS Scripts", "{8B625EC8-5063-4336-84F9-AA7FD5348525}"
-       ProjectSection(SolutionItems) = preProject
-               ExpandEnvironmenStrings.vbs = ExpandEnvironmenStrings.vbs
-       EndProjectSection
-EndProject
-Global
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution
-               Debug Unicode|Win32 = Debug Unicode|Win32
-               Debug Unicode|x64 = Debug Unicode|x64
-               Release Unicode|Win32 = Release Unicode|Win32
-               Release Unicode|x64 = Release Unicode|x64
-       EndGlobalSection
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.ActiveCfg = Debug|Win32
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.Build.0 = Debug|Win32
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.ActiveCfg = Debug|x64
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.Build.0 = Debug|x64
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.ActiveCfg = Release|Win32
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.Build.0 = Release|Win32
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.ActiveCfg = Release|x64
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.Build.0 = Release|x64
-       EndGlobalSection
-       GlobalSection(SolutionProperties) = preSolution
-               HideSolutionNode = FALSE
-       EndGlobalSection
-       GlobalSection(NestedProjects) = preSolution
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {220B870C-D051-463E-997B-8C392081EE15}
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {220B870C-D051-463E-997B-8C392081EE15}
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {220B870C-D051-463E-997B-8C392081EE15}
-               {8B625EC8-5063-4336-84F9-AA7FD5348525} = {DC3B258E-444F-460D-8FD9-09A8165212FA}
-       EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 12.00\r
+# Visual Studio 14\r
+VisualStudioVersion = 14.0.25420.1\r
+MinimumVisualStudioVersion = 10.0.40219.1\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Merge", "Src\Merge.vs2015.vcxproj", "{9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MergeLang", "Src\MergeLang.vs2015.vcxproj", "{4B011DDA-2279-437D-903C-8028913AF31B}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "Externals\poco\Foundation\Foundation.vs2015.vcxproj", "{8164D41D-B053-405B-826C-CF37AC0EF176}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XML", "Externals\poco\XML\XML.vs2015.vcxproj", "{9E211743-85FE-4977-82F3-4F04B40C912D}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Util", "Externals\poco\Util\Util.vs2015.vcxproj", "{6FF56CDB-787A-4714-A28C-919003F9FA6C}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "Testing\GoogleTest\UnitTests\UnitTests.vs2015.vcxproj", "{733E7C0B-AC3D-47AC-A8DA-E13644D6294D}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}\r
+       EndProjectSection\r
+EndProject\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Poco", "Poco", "{220B870C-D051-463E-997B-8C392081EE15}"\r
+EndProject\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Batch Files", "Batch Files", "{DC3B258E-444F-460D-8FD9-09A8165212FA}"\r
+       ProjectSection(SolutionItems) = preProject\r
+               BuildAll.vs2015.cmd = BuildAll.vs2015.cmd\r
+               BuildAll.vs2017.cmd = BuildAll.vs2017.cmd\r
+               BuildArc.cmd = BuildArc.cmd\r
+               BuildBin.vs2015.cmd = BuildBin.vs2015.cmd\r
+               BuildBin.vs2017.cmd = BuildBin.vs2017.cmd\r
+               BuildInstaller.cmd = BuildInstaller.cmd\r
+               BuildManual.cmd = BuildManual.cmd\r
+               SetVersion.cmd = SetVersion.cmd\r
+               UploadToVirusTotal.cmd = UploadToVirusTotal.cmd\r
+       EndProjectSection\r
+EndProject\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VBS Scripts", "VBS Scripts", "{8B625EC8-5063-4336-84F9-AA7FD5348525}"\r
+       ProjectSection(SolutionItems) = preProject\r
+               ExpandEnvironmenStrings.vbs = ExpandEnvironmenStrings.vbs\r
+       EndProjectSection\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug Unicode|Win32 = Debug Unicode|Win32\r
+               Debug Unicode|x64 = Debug Unicode|x64\r
+               Release Unicode|Win32 = Release Unicode|Win32\r
+               Release Unicode|x64 = Release Unicode|x64\r
+               Test|Win32 = Test|Win32\r
+               Test|x64 = Test|x64\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|Win32.ActiveCfg = Test|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|Win32.Build.0 = Test|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|x64.ActiveCfg = Test|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|x64.Build.0 = Test|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|Win32.Build.0 = UnicodeDebug|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|x64.Build.0 = UnicodeDebug|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|Win32.Build.0 = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|Win32.Deploy.0 = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|x64.Build.0 = UnicodeDebug|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|Win32.Build.0 = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|Win32.Deploy.0 = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|x64.Build.0 = UnicodeDebug|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|Win32.Build.0 = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|Win32.Deploy.0 = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|x64.Build.0 = UnicodeDebug|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.ActiveCfg = Debug|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.Build.0 = Debug|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.ActiveCfg = Debug|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.Build.0 = Debug|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.ActiveCfg = Release|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.Build.0 = Release|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.ActiveCfg = Release|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.Build.0 = Release|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|Win32.ActiveCfg = Debug|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|Win32.Build.0 = Debug|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|x64.ActiveCfg = Debug|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|x64.Build.0 = Debug|x64\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+       GlobalSection(NestedProjects) = preSolution\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176} = {220B870C-D051-463E-997B-8C392081EE15}\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D} = {220B870C-D051-463E-997B-8C392081EE15}\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {220B870C-D051-463E-997B-8C392081EE15}\r
+               {8B625EC8-5063-4336-84F9-AA7FD5348525} = {DC3B258E-444F-460D-8FD9-09A8165212FA}\r
+       EndGlobalSection\r
+       GlobalSection(ExtensibilityGlobals) = postSolution\r
+               SolutionGuid = {BA780561-B5A9-4ED1-B35C-B342695F3F39}\r
+       EndGlobalSection\r
+EndGlobal\r
index b543e7b..1d6ad20 100644 (file)
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26430.16
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Merge", "Src\Merge.vs2017.vcxproj", "{9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}"
-       ProjectSection(ProjectDependencies) = postProject
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}
-       EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MergeLang", "Src\MergeLang.vs2017.vcxproj", "{4B011DDA-2279-437D-903C-8028913AF31B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "Externals\poco\Foundation\Foundation.vs2017.vcxproj", "{8164D41D-B053-405B-826C-CF37AC0EF176}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XML", "Externals\poco\XML\XML.vs2017.vcxproj", "{9E211743-85FE-4977-82F3-4F04B40C912D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Util", "Externals\poco\Util\Util.vs2017.vcxproj", "{6FF56CDB-787A-4714-A28C-919003F9FA6C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "Testing\GoogleTest\UnitTests\UnitTests.vs2017.vcxproj", "{733E7C0B-AC3D-47AC-A8DA-E13644D6294D}"
-       ProjectSection(ProjectDependencies) = postProject
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}
-       EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Poco", "Poco", "{220B870C-D051-463E-997B-8C392081EE15}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Batch Files", "Batch Files", "{DC3B258E-444F-460D-8FD9-09A8165212FA}"
-       ProjectSection(SolutionItems) = preProject
-               BuildAll.vs2015.cmd = BuildAll.vs2015.cmd
-               BuildAll.vs2017.cmd = BuildAll.vs2017.cmd
-               BuildAll2.cmd = BuildAll2.cmd
-               BuildArc.cmd = BuildArc.cmd
-               BuildBin.cmd = BuildBin.cmd
-               BuildBin.vs2015.cmd = BuildBin.vs2015.cmd
-               BuildBin.vs2017.cmd = BuildBin.vs2017.cmd
-               BuildInstaller.cmd = BuildInstaller.cmd
-               BuildManual.cmd = BuildManual.cmd
-               SetVersion.cmd = SetVersion.cmd
-               UploadToGithub.cmd = UploadToGithub.cmd
-               UploadToVirusTotal.cmd = UploadToVirusTotal.cmd
-       EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VBS Scripts", "VBS Scripts", "{8B625EC8-5063-4336-84F9-AA7FD5348525}"
-       ProjectSection(SolutionItems) = preProject
-               ExpandEnvironmenStrings.vbs = ExpandEnvironmenStrings.vbs
-       EndProjectSection
-EndProject
-Global
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution
-               Debug Unicode|Win32 = Debug Unicode|Win32
-               Debug Unicode|x64 = Debug Unicode|x64
-               Release Unicode|Win32 = Release Unicode|Win32
-               Release Unicode|x64 = Release Unicode|x64
-       EndGlobalSection
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.Build.0 = UnicodeRelease|x64
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.ActiveCfg = Debug|Win32
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.Build.0 = Debug|Win32
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.ActiveCfg = Debug|x64
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.Build.0 = Debug|x64
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.ActiveCfg = Release|Win32
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.Build.0 = Release|Win32
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.ActiveCfg = Release|x64
-               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.Build.0 = Release|x64
-       EndGlobalSection
-       GlobalSection(SolutionProperties) = preSolution
-               HideSolutionNode = FALSE
-       EndGlobalSection
-       GlobalSection(NestedProjects) = preSolution
-               {8164D41D-B053-405B-826C-CF37AC0EF176} = {220B870C-D051-463E-997B-8C392081EE15}
-               {9E211743-85FE-4977-82F3-4F04B40C912D} = {220B870C-D051-463E-997B-8C392081EE15}
-               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {220B870C-D051-463E-997B-8C392081EE15}
-               {8B625EC8-5063-4336-84F9-AA7FD5348525} = {DC3B258E-444F-460D-8FD9-09A8165212FA}
-       EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 12.00\r
+# Visual Studio 15\r
+VisualStudioVersion = 15.0.27130.0\r
+MinimumVisualStudioVersion = 10.0.40219.1\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Merge", "Src\Merge.vs2017.vcxproj", "{9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MergeLang", "Src\MergeLang.vs2017.vcxproj", "{4B011DDA-2279-437D-903C-8028913AF31B}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "Externals\poco\Foundation\Foundation.vs2017.vcxproj", "{8164D41D-B053-405B-826C-CF37AC0EF176}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XML", "Externals\poco\XML\XML.vs2017.vcxproj", "{9E211743-85FE-4977-82F3-4F04B40C912D}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Util", "Externals\poco\Util\Util.vs2017.vcxproj", "{6FF56CDB-787A-4714-A28C-919003F9FA6C}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "Testing\GoogleTest\UnitTests\UnitTests.vs2017.vcxproj", "{733E7C0B-AC3D-47AC-A8DA-E13644D6294D}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176} = {8164D41D-B053-405B-826C-CF37AC0EF176}\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D}\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C}\r
+       EndProjectSection\r
+EndProject\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Poco", "Poco", "{220B870C-D051-463E-997B-8C392081EE15}"\r
+EndProject\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Batch Files", "Batch Files", "{DC3B258E-444F-460D-8FD9-09A8165212FA}"\r
+       ProjectSection(SolutionItems) = preProject\r
+               BuildAll.vs2015.cmd = BuildAll.vs2015.cmd\r
+               BuildAll.vs2017.cmd = BuildAll.vs2017.cmd\r
+               BuildArc.cmd = BuildArc.cmd\r
+               BuildBin.vs2015.cmd = BuildBin.vs2015.cmd\r
+               BuildBin.vs2017.cmd = BuildBin.vs2017.cmd\r
+               BuildInstaller.cmd = BuildInstaller.cmd\r
+               BuildManual.cmd = BuildManual.cmd\r
+               SetVersion.cmd = SetVersion.cmd\r
+               UploadToVirusTotal.cmd = UploadToVirusTotal.cmd\r
+       EndProjectSection\r
+EndProject\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VBS Scripts", "VBS Scripts", "{8B625EC8-5063-4336-84F9-AA7FD5348525}"\r
+       ProjectSection(SolutionItems) = preProject\r
+               ExpandEnvironmenStrings.vbs = ExpandEnvironmenStrings.vbs\r
+       EndProjectSection\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug Unicode|Win32 = Debug Unicode|Win32\r
+               Debug Unicode|x64 = Debug Unicode|x64\r
+               Release Unicode|Win32 = Release Unicode|Win32\r
+               Release Unicode|x64 = Release Unicode|x64\r
+               Test|Win32 = Test|Win32\r
+               Test|x64 = Test|x64\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|Win32.ActiveCfg = Test|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|Win32.Build.0 = Test|Win32\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|x64.ActiveCfg = Test|x64\r
+               {9FDA4AF0-CCFD-4812-BDB9-53EFEDB32BDE}.Test|x64.Build.0 = Test|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|Win32.Build.0 = UnicodeDebug|Win32\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
+               {4B011DDA-2279-437D-903C-8028913AF31B}.Test|x64.Build.0 = UnicodeDebug|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|Win32.Build.0 = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|Win32.Deploy.0 = UnicodeDebug|Win32\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176}.Test|x64.Build.0 = UnicodeDebug|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|Win32.Build.0 = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|Win32.Deploy.0 = UnicodeDebug|Win32\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D}.Test|x64.Build.0 = UnicodeDebug|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|Win32.Build.0 = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.ActiveCfg = UnicodeDebug|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Debug Unicode|x64.Build.0 = UnicodeDebug|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.ActiveCfg = UnicodeRelease|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|Win32.Build.0 = UnicodeRelease|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.ActiveCfg = UnicodeRelease|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Release Unicode|x64.Build.0 = UnicodeRelease|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|Win32.ActiveCfg = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|Win32.Build.0 = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|Win32.Deploy.0 = UnicodeDebug|Win32\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|x64.ActiveCfg = UnicodeDebug|x64\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C}.Test|x64.Build.0 = UnicodeDebug|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.ActiveCfg = Debug|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|Win32.Build.0 = Debug|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.ActiveCfg = Debug|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Debug Unicode|x64.Build.0 = Debug|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.ActiveCfg = Release|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|Win32.Build.0 = Release|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.ActiveCfg = Release|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Release Unicode|x64.Build.0 = Release|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|Win32.ActiveCfg = Debug|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|Win32.Build.0 = Debug|Win32\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|x64.ActiveCfg = Debug|x64\r
+               {733E7C0B-AC3D-47AC-A8DA-E13644D6294D}.Test|x64.Build.0 = Debug|x64\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+       GlobalSection(NestedProjects) = preSolution\r
+               {8164D41D-B053-405B-826C-CF37AC0EF176} = {220B870C-D051-463E-997B-8C392081EE15}\r
+               {9E211743-85FE-4977-82F3-4F04B40C912D} = {220B870C-D051-463E-997B-8C392081EE15}\r
+               {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {220B870C-D051-463E-997B-8C392081EE15}\r
+               {8B625EC8-5063-4336-84F9-AA7FD5348525} = {DC3B258E-444F-460D-8FD9-09A8165212FA}\r
+       EndGlobalSection\r
+       GlobalSection(ExtensibilityGlobals) = postSolution\r
+               SolutionGuid = {BA780561-B5A9-4ED1-B35C-B342695F3F39}\r
+       EndGlobalSection\r
+EndGlobal\r