From 331bd873e62c59d7e188eb7054c5abd46eeba15a Mon Sep 17 00:00:00 2001 From: mataes2007 Date: Sat, 3 Dec 2011 14:38:14 +0000 Subject: PackUpdater: added new parameter for files version bump git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@236 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- PackUpdater/Src/Common.h | 5 ++--- PackUpdater/Src/Utils.cpp | 45 ++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 6 deletions(-) (limited to 'PackUpdater/Src') diff --git a/PackUpdater/Src/Common.h b/PackUpdater/Src/Common.h index e976c46..49cf294 100644 --- a/PackUpdater/Src/Common.h +++ b/PackUpdater/Src/Common.h @@ -45,7 +45,7 @@ Boston, MA 02111-1307, USA. #include #include #include -#include +#include "m_popup2.h" #include #include @@ -58,12 +58,10 @@ Boston, MA 02111-1307, USA. #define MODULEW L"Pack Updater" #ifdef _UNICODE #define DEFAULT_UPDATES_FOLDER L"Pack Updates" - #define MIRANDA_USERDATAT MIRANDA_USERDATAW typedef std::wstring tString; #define MODULE MODULEW #else #define DEFAULT_UPDATES_FOLDER "Pack Updates" - #define MIRANDA_USERDATAT MIRANDA_USERDATA typedef std::string tString; #define MODULE MODULEA #endif @@ -87,6 +85,7 @@ struct FILEINFO BOOL enabled; BYTE FileType; INT FileNum; + BYTE Force; }; struct PackUpdaterIconList diff --git a/PackUpdater/Src/Utils.cpp b/PackUpdater/Src/Utils.cpp index 1c77076..3665fdb 100644 --- a/PackUpdater/Src/Utils.cpp +++ b/PackUpdater/Src/Utils.cpp @@ -291,8 +291,8 @@ static void CheckUpdates(void *) } // end check update name lstrcpyn(Files[CurrentFile].File.tszDiskPath, tszBuff, SIZEOF(Files[CurrentFile].File.tszDiskPath)); GetPrivateProfileString(tszFileInfo, _T("InfoURL"), _T(""), Files[CurrentFile].tszInfoURL, SIZEOF(Files[CurrentFile].tszInfoURL), tszTmpIni); - GetPrivateProfileString(tszFileInfo, _T("FileType"), _T(""), tszBuff, SIZEOF(tszBuff), tszTmpIni); - Files[CurrentFile].FileType = _tstoi(tszBuff); + Files[CurrentFile].FileType = GetPrivateProfileInt(tszFileInfo, _T("FileType"), 0, tszTmpIni); + Files[CurrentFile].Force = GetPrivateProfileInt(tszFileInfo, _T("Force"), 0, tszTmpIni); Files[CurrentFile].FileNum = CurrentFile+1; if (Files[CurrentFile].FileType == 2) @@ -321,7 +321,46 @@ static void CheckUpdates(void *) } // user have not admin's rights else { - UpdateFiles.push_back(Files[CurrentFile]); + //добавить проверку на существование файла + TCHAR tszFilePathDest[MAX_PATH] = {0}; + TCHAR* tszUtilRootPlug = NULL; + TCHAR* tszUtilRootIco = NULL; + TCHAR* tszUtilRoot = NULL; + + switch (Files[CurrentFile].FileType) + { + case 0: + case 1: + break; + case 2: + tszUtilRootPlug = Utils_ReplaceVarsT(_T("%miranda_path%\\Plugins")); + if (lstrcmp(Files[CurrentFile].tszAdvFolder, _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRootPlug, Files[CurrentFile].File.tszDiskPath); + else + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRootPlug, Files[CurrentFile].tszAdvFolder, Files[CurrentFile].File.tszDiskPath); + mir_free(tszUtilRootPlug); + break; + case 3: + tszUtilRootIco = Utils_ReplaceVarsT(_T("%miranda_path%\\Icons")); + if (lstrcmp(Files[CurrentFile].tszAdvFolder, _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRootIco, Files[CurrentFile].File.tszDiskPath); + else + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRootIco, Files[CurrentFile].tszAdvFolder, Files[CurrentFile].File.tszDiskPath); + mir_free(tszUtilRootIco); + break; + case 4: + case 5: + tszUtilRoot = Utils_ReplaceVarsT(_T("%miranda_path%")); + if (lstrcmp(Files[CurrentFile].tszAdvFolder, _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRoot, Files[CurrentFile].File.tszDiskPath); + else + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRoot, Files[CurrentFile].tszAdvFolder, Files[CurrentFile].File.tszDiskPath); + mir_free(tszUtilRoot); + break; + }//end* switch (Files[CurrentFile].FileType) + + if (Files[CurrentFile].Force || Exists(tszFilePathDest)) + UpdateFiles.push_back(Files[CurrentFile]); // Save last version lstrcpyn(Files[CurrentFile].tszLastVer, Files[CurrentFile].tszNewVer, SIZEOF(Files[CurrentFile].tszLastVer)); mir_snprintf(szKey, SIZEOF(szKey), "File_%d_LastVersion", CurrentFile + 1); -- cgit v1.2.3