Ignore:
Timestamp:
Jul 7, 2009, 12:10:17 AM (15 years ago)
Author:
iritscen
Message:

Fixed key_config copying bug and Mac GDF pref-writing bug.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • AE/Installer/trunk/source/main_window.cpp

    r396 r397  
    7676        string escape_me = "& ;()|<>\"'\\#*?$";
    7777        for(int i = 0; i < input.size(); i++)  {
    78                 for(int j = 0; j < escape_me.size(); j++) if (input[i] == escape_me[j]) output += '//';
     78                for(int j = 0; j < escape_me.size(); j++) if (input[i] == escape_me[j]) output += '\\';
    7979                output += input[i];
    8080        }
     
    357357                copy((path)"packages/VanillaBSL/IGMD", (path)"../GameDataFolder");
    358358                setProgressBar( 1000 );
     359
     360                copy("../../persist.dat","../persist.dat");
     361                copy("../../key_config.txt","../key_config.txt");
    359362               
    360                 // CIP:last of all, set up the edition folder as a playable Oni installation by placing the latest application (+ Daodan DLL on Windows) in edition/
    361                 // or we could just include it in the zip in the proper place already.
    362 
    363                 copy("../../persist.dat","../persist.dat");
    364                 copy("../../keyconfig.txt","../keyconfig.txt");
    365363#ifndef WIN32
    366364                /* On Mac only, set the current GDF to the AE GDF by writing to Oni's global preferences file (thankfully a standard OS X ".plist" XML file).
    367                    If there are no Oni prefs (only possible if Oni has not been run even once), then the above line will fail silently, no harm done,
    368                    and when the user does run Oni for the first time, using the copy of the app in the AE GDF, Oni will set the prefs to use that GDF at that point */
    369                 path fullAEpath = system_complete("."); // get full path for Installer
    370                 char prefsCommand[300] = "defaults write com.godgames.oni RetailInstallationPath -string '";
    371                 strcat(prefsCommand, fullAEpath.parent_path().parent_path().string().c_str()); // get path of edition/ folder (Oni wants the folder that *contains* the GDF)
     365                   Tests for presence of prefs with [ -f ] before doing anything so it doesn't create a partial prefs file -- just in case user has never
     366                   run Oni before :-p */
     367                string fullAEpath = escapePath(system_complete(".").parent_path().parent_path().string()); // get full path for edition/
     368                char prefsCommand[300] = "[ -f ~/Library/Preferences/com.godgames.oni.plist ] && defaults write com.godgames.oni RetailInstallationPath -string '";
     369                strcat(prefsCommand, fullAEpath.c_str()); // get path of edition/ folder (Oni wants the folder that *contains* the GDF)
    372370                strcat(prefsCommand, "'"); // path string is enclosed in single quotes to avoid the need to escape UNIX-unfriendly characters
    373371                system(prefsCommand);
Note: See TracChangeset for help on using the changeset viewer.