OSDN Git Service

Merge branch 'master' of https://github.com/winmerge/winmerge into jp
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 25 Apr 2021 13:28:23 +0000 (22:28 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 25 Apr 2021 13:28:23 +0000 (22:28 +0900)
41 files changed:
1  2 
BuildArc.cmd
Src/MainFrm.cpp
Src/MainFrm.h
Src/Merge.rc
Src/resource.h
Translations/WinMerge/Arabic.po
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/Lithuanian.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

diff --cc BuildArc.cmd
Simple merge
diff --cc Src/MainFrm.cpp
@@@ -2327,69 -2319,9 +2321,69 @@@ void CMainFrame::OnHelpReleasenotes(
   */
  void CMainFrame::OnHelpTranslations()
  {
-       ShellExecute(nullptr, _T("open"), TranslationsUrl, nullptr, nullptr, SW_SHOWNORMAL);
+       shell::Open(TranslationsUrl);
  }
  
 +void CMainFrame::OnHelpCheckForUpdates()
 +{
 +      CVersionInfo version(AfxGetResourceHandle());
 +      CInternetSession session;
 +      try
 +      {
 +              CHttpFile *file = (CHttpFile *)session.OpenURL(GetOptionsMgr()->GetString(OPT_CURRENT_VERSION_URL).c_str());
 +              if (!file)
 +                      return;
 +              char buf[256] = { 0 };
 +              file->Read(buf, sizeof(buf));
 +              file->Close();
 +              String current_version = ucr::toTString(buf);
 +              strutils::replace(current_version, _T("\r\n"), _T(""));
 +              delete file;
 +
 +              int exe_vers[4] = { 0 }, cur_vers[4] = { 0 };
 +              _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]);
 +
 +              switch (exe_version_hex.compare(cur_version_hex))
 +              {
 +              case 1:
 +                      if (cur_version_hex == _T("00000000000000000000000000000000"))
 +                      {
 +                              String msg = _("Failed to download latest version information");
 +                              AfxMessageBox(msg.c_str(), MB_ICONERROR);
 +                              break;
 +                      }
 +                      // pass through
 +              case 0:
 +              {
 +                      String msg = _("Your software is up to date.");
 +                      AfxMessageBox(msg.c_str(), MB_ICONINFORMATION);
 +                      break;
 +              }
 +              case -1:
 +              {
 +                      String msg = strutils::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"), GetOptionsMgr()->GetString(OPT_DOWNLOAD_URL).c_str(), NULL, NULL, SW_SHOWNORMAL);
 +                      break;
 +              }
 +              }
 +      }
 +      catch (CException& e)
 +      {
 +              TCHAR msg[512];
 +              e.GetErrorMessage(msg, sizeof(msg)/sizeof(msg[0]));
 +              AfxMessageBox(msg, MB_ICONERROR);
 +      }
 +}
 +
 +void CMainFrame::OnUpdateHelpCheckForUpdates(CCmdUI* pCmdUI)
 +{
 +      pCmdUI->Enable(!GetOptionsMgr()->GetString(OPT_CURRENT_VERSION_URL).empty());
 +}
 +
  /**
   * @brief Called when user selects File/Open Conflict...
   */
diff --cc Src/MainFrm.h
Simple merge
diff --cc Src/Merge.rc
Simple merge
diff --cc Src/resource.h
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge