| 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 | 
   | 
                         } |