| 1142 |  | string popenCommand = "../updates/" + strEUFN + "/install/"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1143 |  | #ifdef WIN32 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1144 |  | // TODO: Fill in Windows equivalent of code below :-3 | 
 
 
 
 
 
 
 
 | 1145 | + | popenCommand = "replace_installer.bat"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1146 |  | #else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1147 |  | // We can't just use '~' to mean "the home directory" because we need to check the path in C... | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1148 |  | // ...so we actually get the current user's shortname and manually construct the path to home | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1164 |  | #endif | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1165 |  | file.close(); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1166 |  | file.clear(); | 
 
 
 
 
 
 
 
 | 1167 | + | #ifdef WIN32 | 
 
 
 
 
 
 
 
 | 1168 | + | system(popenCommand.c_str()); | 
 
 
 
 
 
 
 
 | 1169 | + | #else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1170 |  | popen(popenCommand.c_str(), "r"); | 
 
 
 
 
 
 
 
 
 
 
 | 1171 | < |  | 
 
 
 
 
 
 
 
 
 | 1171 | > | #endif | 
 
 
 
 
 
 
 
 
 
 
 | 1172 |  | return true; // returning 'true' tells the Installer to quit itself ASAP so it can be replaced by the process that is now running | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1173 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1174 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1199 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1200 |  | // TODO: Fill in Windows equivalent of code below | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1201 |  | #ifdef WIN32 | 
 
 
 
 
 
 
 
 
 
 
 | 1202 | < | string strTrashDir = "%RECYCLE%"; | 
 
 
 
 
 
 
 
 
 | 1202 | > | string strTrashDir = "Trash\\"; | 
 
 
 
 
 
 
 
 
 
 
 | 1203 |  | #else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1204 |  | FILE *fUserName = NULL; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1205 |  | char chrUserName[32]; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1244 |  | needNewTrashDir = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1245 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1246 |  | } | 
 
 
 
 
 
 
 
 
 
 
 | 1247 | < |  | 
 
 
 
 
 
 
 
 
 | 1247 | > | #ifndef WIN32 | 
 
 
 
 
 
 
 
 
 
 
 | 1248 |  | if (!*installerJustUpdated || needNewTrashDir) // prepare a new directory for deleted files to go to | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1249 |  | { | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1250 |  | tm tmStartTime = to_tm(startTime); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1252 |  | boost::lexical_cast<string>(tmStartTime.tm_min) + "-" + boost::lexical_cast<string>(tmStartTime.tm_sec) + "/"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1253 |  | create_directory(strTrashDir); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1254 |  | } | 
 
 
 
 
 
 
 
 | 1255 | + | #endif | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1256 |  | file.close(); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1257 |  | file.clear(); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1258 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1328 |  | curPos = thePath.find("/", lastPos); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1329 |  | aParentPath = aParentPath + "/"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1330 |  | } | 
 
 
 
 
 
 
 
 | 1331 | + | #ifndef WIN32 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1332 |  | rename((path)("../" + thePath), (path)(strTrashDir + thePath)); | 
 
 
 
 
 
 
 
 | 1333 | + | #else | 
 
 
 
 
 
 
 
 | 1334 | + | remove((path)("../" + thePath)); | 
 
 
 
 
 
 
 
 | 1335 | + | #endif | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1336 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1337 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1338 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1355 |  | matchFound = true; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1356 |  | if (iter1->modStringVersion > iter2->modStringVersion) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1357 |  | { | 
 
 
 
 
 
 
 
 | 1358 | + | #ifndef WIN32 | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1359 |  | rename((path)(strPathToPackages + iter2->modStringName), (path)(strTrashDir + iter2->modStringName)); | 
 
 
 
 
 
 
 
 | 1360 | + | #else | 
 
 
 
 
 
 
 
 | 1361 | + | remove((path)(strPathToPackages + iter2->modStringName)); | 
 
 
 
 
 
 
 
 | 1362 | + | #endif | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1363 |  | rename((path)(strPathToEUFNPackages + iter1->modStringName), (path)(strPathToPackages + iter1->modStringName)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1364 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 1365 |  | } |