Subversion Repositories spk

Rev

Rev 124 | Rev 126 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 124 Rev 125
Line 1012... Line 1012...
1012
	{
1012
	{
1013
		C_File *cFile;
1013
		C_File *cFile;
1014
		for ( cFile = pFileList->First(); cFile; cFile = pFileList->Next() )
1014
		for ( cFile = pFileList->First(); cFile; cFile = pFileList->Next() )
1015
		{
1015
		{
1016
			if ( !cFile->MatchFile(pFile) ) continue;
1016
			if ( !cFile->MatchFile(pFile) ) continue;
1017
 
-
 
1018
			if ( !m_bOverrideFiles && !cFile->CompareNew(pFile) ) {
1017
			if ( !m_bOverrideFiles && !cFile->CompareNew(pFile) ) {
1019
				if ( errorStr ) errorStr->PushBack(pFile->GetNameDirectory(this), ERRORLOG(SPKINSTALL_SKIPFILE));
1018
				if ( errorStr ) errorStr->PushBack(pFile->GetNameDirectory(this), ERRORLOG(SPKINSTALL_SKIPFILE));
1020
				CLog::log(CLog::Log_Install, 1, "Newer version of the file already installed, skipping");
1019
				CLog::log(CLog::Log_Install, 1, "Newer version of the file already installed, skipping");
1021
				*bDoFile = false;
1020
				*bDoFile = false;
1022
			}
1021
			}
Line 1030... Line 1029...
1030
}
1029
}
1031
 
1030
 
1032
bool CBaseFile::_install_checkFileEnable(C_File *pCheckFile, C_File *fit, const Utils::String &sDestination, bool bEnabled, CyStringList *errorStr)
1031
bool CBaseFile::_install_checkFileEnable(C_File *pCheckFile, C_File *fit, const Utils::String &sDestination, bool bEnabled, CyStringList *errorStr)
1033
{
1032
{
1034
	// found a file, check if its in the disabled directory
1033
	// found a file, check if its in the disabled directory
1035
	CyString dir = pCheckFile->GetFilePointer();
1034
	Utils::String dir = CFileIO(pCheckFile->filePointer()).dir();
1036
	dir = dir.GetToken ( 1, dir.NumToken ('/') - 1, '/' );
-
 
1037
	CyString lastDir = dir.GetToken ( dir.NumToken('/'), '/' ).ToLower();
1035
	Utils::String lastDir = CDirIO(dir).topDir().lower();
1038
 
1036
 
1039
	// if its disabled, rename it so its enabled
1037
	// if its disabled, rename it so its enabled
1040
	if ( ((pCheckFile->IsDisabled()) || (lastDir == "disabled") || (dir.ToLower().IsIn ("/disabled/"))) && (bEnabled) )
1038
	if ( ((pCheckFile->IsDisabled()) || (lastDir == "disabled") || (dir.lower().isin("/disabled/"))) && (bEnabled) )
1041
	{
1039
	{
1042
		CLog::logf(CLog::Log_Install, 2, "Existing file, %s, is disabled, re-enabling it", pCheckFile->GetFilePointer().c_str());
1040
		CLog::logf(CLog::Log_Install, 2, "Existing file, %s, is disabled, re-enabling it", pCheckFile->filePointer().c_str());
1043
		// first check if the directory exists
1041
		// first check if the directory exists
1044
		if ( pCheckFile->IsInMod() ) {
1042
		if ( pCheckFile->IsInMod() ) {
1045
			CyString tofile = pCheckFile->GetFilePointer().GetToken("::", 2, 2);
1043
			CyString tofile = pCheckFile->filePointer().token("::", 2);
1046
 
1044
 
1047
			CCatFile tocat;
1045
			CCatFile tocat;
1048
			int err = tocat.Open ( fit->GetFilePointer().GetToken("::", 1, 1), "", CATREAD_CATDECRYPT, true );
1046
			int err = tocat.open(fit->filePointer().token("::", 1), "", CATREAD_CATDECRYPT, true);
1049
			if ( (err == CATERR_NONE) || (err == CATERR_CREATED) ) {
1047
			if ( (err == CATERR_NONE) || (err == CATERR_CREATED) ) {
1050
				tocat.AppendFile(pCheckFile->GetFilePointer().ToString(), tofile.ToString());
1048
				tocat.AppendFile(pCheckFile->GetFilePointer().ToString(), tofile.ToString());
1051
				CLog::logf(CLog::Log_Install, 2, "Adding existing file into new mod File, %s => %s", fit->GetFilePointer().GetToken("::", 1, 1).c_str(), tofile.c_str());
1049
				CLog::logf(CLog::Log_Install, 2, "Adding existing file into new mod File, %s => %s", fit->filePointer().token("::", 1).c_str(), tofile.c_str());
1052
			}
1050
			}
1053
 
1051
 
1054
			CCatFile fromcat;
1052
			CCatFile fromcat;
1055
			err = fromcat.Open ( pCheckFile->GetFilePointer().GetToken("::", 1, 1), "", CATREAD_CATDECRYPT, false );
1053
			err = fromcat.open(pCheckFile->filePointer().token("::", 1), "", CATREAD_CATDECRYPT, false);
1056
			if ( err == CATERR_NONE ) {
1054
			if ( err == CATERR_NONE ) {
1057
				fromcat.removeFile(tofile.ToString());
1055
				fromcat.removeFile(tofile.ToString());
1058
				CLog::logf(CLog::Log_Install, 2, "Removing file from existing mod, %s::%s", pCheckFile->GetFilePointer().GetToken("::", 1, 1).c_str(), tofile.c_str());
1056
				CLog::logf(CLog::Log_Install, 2, "Removing file from existing mod, %s::%s", pCheckFile->filePointer().token("::", 1).c_str(), tofile.c_str());
1059
			}
1057
			}
1060
 
1058
 
1061
			CLog::logf(CLog::Log_Install, 1, "Adjusting existing file name %s => %s", pCheckFile->GetFilePointer().c_str(), fit->GetFilePointer().c_str());
1059
			CLog::logf(CLog::Log_Install, 1, "Adjusting existing file name %s => %s", pCheckFile->filePointer().c_str(), fit->filePointer().c_str());
1062
			pCheckFile->SetFilename ( fit->GetFilePointer() );
1060
			pCheckFile->SetFilename ( fit->GetFilePointer() );
1063
			CLog::logf(CLog::Log_Install, 2, "Adjusting In Mod setting, %s => %s", pCheckFile->GetInMod().c_str(), fit->GetInMod().c_str());
1061
			CLog::logf(CLog::Log_Install, 2, "Adjusting In Mod setting, %s => %s", pCheckFile->GetInMod().c_str(), fit->GetInMod().c_str());
1064
			pCheckFile->SetInMod(fit->GetInMod());
1062
			pCheckFile->SetInMod(fit->GetInMod());
1065
		}
1063
		}
1066
		else {
1064
		else {
Line 1196... Line 1194...
1196
		}
1194
		}
1197
 
1195
 
1198
		bool dofile = _install_checkVersion(fit, destdir.ToString());
1196
		bool dofile = _install_checkVersion(fit, destdir.ToString());
1199
 
1197
 
1200
		// change file pointer
1198
		// change file pointer
1201
		Utils::String sFilename = _install_adjustFilepointer(fit, fileEnabled, destdir.ToString());
1199
		Utils::String sInstallDir = _install_adjustFilepointer(fit, fileEnabled, destdir.ToString());
1202
 
1200
 
1203
		C_File *adjustPointer = NULL;
1201
		C_File *adjustPointer = NULL;
1204
 
1202
 
1205
		if ( filelist ) {
1203
		if ( filelist ) {
1206
			C_File *cFile = _install_checkFile(fit, errorStr, &dofile, filelist);
1204
			C_File *cFile = _install_checkFile(fit, errorStr, &dofile, filelist);
Line 1229... Line 1227...
1229
						cFile->SetFilename(fit->GetFilePointer());
1227
						cFile->SetFilename(fit->GetFilePointer());
1230
						cFile->SetDisabled(true);
1228
						cFile->SetDisabled(true);
1231
					}
1229
					}
1232
					else
1230
					else
1233
					{
1231
					{
1234
						fit->SetFullDir ( CyString(sFilename) + fit->GetDirectory(this) );
1232
						fit->SetFullDir ( CyString(sInstallDir) + fit->GetDirectory(this) );
1235
						fit->SetDisabled(false);
1233
						fit->SetDisabled(false);
1236
					}
1234
					}
1237
				}
1235
				}
1238
				// move it to enabled
1236
				// move it to enabled
1239
				else {
1237
				else {