OSDN Git Service

Merge with stable
authorsdottaka <sdottaka@users.sourceforge.net>
Sat, 21 Mar 2015 08:17:45 +0000 (17:17 +0900)
committersdottaka <sdottaka@users.sourceforge.net>
Sat, 21 Mar 2015 08:17:45 +0000 (17:17 +0900)
1  2 
Src/Constants.h
Src/MainFrm.cpp
Src/MainFrm.h
Src/Merge.vcxproj
Src/Merge.vcxproj.filters
Src/PropArchive.cpp
Src/PropArchive.h
Src/PropCompare.cpp
Src/PropCompareFolder.cpp
Translations/WinMerge/English.pot

diff --cc Src/Constants.h
@@@ -22,20 -22,22 +22,22 @@@ const TCHAR TranslationsUrl[] = _T("htt
  const TCHAR LicenceUrl[] = _T("http://www.gnu.org/licenses/gpl-2.0.html");
  
  /** @brief WinMerge download page URL. */
- const TCHAR DownloadUrl[] = _T("http://winmerge.org/downloads/");
+ const TCHAR DownloadUrl[] = _T("http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html#downloads");
+ const TCHAR CurrentVersionURL[] = _T("http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge-jp_current_version.txt");
  
  /** @brief Relative (to WinMerge executable ) path to local help file. */
 -const TCHAR DocsPath[] = _T("\\Docs\\WinMerge.chm");
 -const TCHAR DocsPath_ja[] = _T("\\Docs\\WinMerge_ja.chm");
 +const TCHAR DocsPath[] = _T("Docs/WinMerge.chm");
 +const TCHAR DocsPath_ja[] = _T("Docs/WinMerge_ja.chm");
  
  /** @brief Contributors list. */
 -const TCHAR ContributorsPath[] = _T("\\contributors.txt");
 +const TCHAR ContributorsPath[] = _T("contributors.txt");
  
  /** @brief Release notes in HTML format. */
 -const TCHAR RelNotes[] = _T("\\Docs\\ReleaseNotes.html");
 +const TCHAR RelNotes[] = _T("Docs/ReleaseNotes.html");
  
  /** @brief GPL Licence local file name. */
 -const TCHAR LicenseFile[] = _T("\\Copying");
 +const TCHAR LicenseFile[] = _T("Copying");
  
  /** @brief WinMerge folder in My Folders-folder. */
  const TCHAR WinMergeDocumentsFolder[] = _T("WinMerge");
diff --cc Src/MainFrm.cpp
  #include "StdAfx.h"
  #include "MainFrm.h"
  #include <vector>
 +#include <Poco/Exception.h>
  #include <shlwapi.h>
  #include <Poco/Exception.h>
+ #include <afxinet.h>
  #include "Constants.h"
  #include "Merge.h"
  #include "FileFilterHelper.h"
@@@ -2763,6 -2774,61 +2766,61 @@@ bool CMainFrame::AskCloseConfirmation(
        return (ret == IDYES);
  }
  
 -                              String msg = theApp.LoadString(IDS_CHECKFORUPDATES_FAILED);
+ void CMainFrame::OnHelpCheckForUpdates()
+ {
+       CVersionInfo version(AfxGetResourceHandle());
+       CInternetSession session;
+       try
+       {
+               CHttpFile *file = (CHttpFile *)session.OpenURL(CurrentVersionURL);
+               if (!file)
+                       return;
+               char buf[256] = { 0 };
+               file->Read(buf, sizeof(buf));
+               file->Close();
+               String current_version = ucr::toTString(buf);
+               string_replace(current_version, _T("\r\n"), _T(""));
+               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]);
+               String exe_version_hex = string_format(_T("%08x%08x%08x%08x"), exe_vers[0], exe_vers[1], exe_vers[2], exe_vers[3]);
+               String cur_version_hex = string_format(_T("%08x%08x%08x%08x"), cur_vers[0], cur_vers[1], cur_vers[2], cur_vers[3]);
+               switch (exe_version_hex.compare(cur_version_hex))
+               {
+               case 1:
+                       if (cur_version_hex == _T("00000000000000000000000000000000"))
+                       {
 -                      String msg = theApp.LoadString(IDS_CHECKFORUPDATES_UPTODATE);
++                              String msg = _("Failed to download latest version information");
+                               AfxMessageBox(msg.c_str(), MB_ICONERROR);
+                               break;
+                       }
+                       // pass through
+               case 0:
+               {
 -                      String msg = LangFormatString2(IDS_CHECKFORUPDATES_NEWVERSION, current_version.c_str(), version.GetProductVersion().c_str());
++                      String msg = _("Your software is up to date");
+                       AfxMessageBox(msg.c_str(), MB_ICONINFORMATION);
+                       break;
+               }
+               case -1:
+               {
++                      String msg = string_format_string2(_("A new version of WinMerge is available.\n%1 is now available (you have %2). Would you like to download it now?"), current_version, version.GetProductVersion());
+                       if (AfxMessageBox(msg.c_str(), MB_ICONINFORMATION | MB_YESNO) == IDYES)
+                               ShellExecute(NULL, _T("open"), DownloadUrl, NULL, NULL, SW_SHOWNORMAL);
+                       break;
+               }
+               }
+       }
+       catch (CException& e)
+       {
+               TCHAR msg[512];
+               e.GetErrorMessage(msg, sizeof(msg)/sizeof(msg[0]));
+               AfxMessageBox(msg, MB_ICONERROR);
+       }
+ }
  /**
   * @brief Shows the release notes for user.
   * This function opens release notes HTML document into browser.
diff --cc Src/MainFrm.h
Simple merge
      <ClInclude Include="Common\coretools.h" />\r
      <ClInclude Include="Common\coretypes.h" />\r
      <ClInclude Include="Common\CSubclass.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
Simple merge
Simple merge
@@@ -35,7 -35,6 +35,6 @@@ protected
  
        DECLARE_MESSAGE_MAP()
  public:
-       CStaticLink m_wwwLink;
 -      BOOL m_bEnableSupport;
 -      BOOL m_bProbeType;
 +      bool m_bEnableSupport;
 +      bool m_bProbeType;
  };
Simple merge
Simple merge
@@@ -8,7 -8,7 +8,7 @@@ msgid "
  msgstr ""
  "Project-Id-Version: WinMerge\n"
  "Report-Msgid-Bugs-To: http://bugs.winmerge.org/\n"
- "POT-Creation-Date: 2015-03-08 21:22+0000\n"
 -"POT-Creation-Date: 2015-03-21 16:04+0000\n"
++"POT-Creation-Date: 2015-03-21 17:16+0000\n"
  "PO-Revision-Date: \n"
  "Last-Translator: \n"
  "Language-Team: English <winmerge-translate@lists.sourceforge.net>\n"