Use the same code for populating user data directories one by one
on OS X as on other Unices so OS X initial installs aren't so easily broken by files being created in constructors. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6661 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
b4e0fe53af
commit
64d43211c9
|
@ -75,6 +75,8 @@
|
|||
#define SYSDATA_DIR "Sys"
|
||||
#elif defined __APPLE__
|
||||
#define SYSDATA_DIR "Contents/Resources/Sys"
|
||||
#define SHARED_USER_DIR File::GetBundleDirectory() + \
|
||||
DIR_SEP USERDATA_DIR DIR_SEP
|
||||
#else
|
||||
#ifdef DATA_DIR
|
||||
#define SYSDATA_DIR DATA_DIR "sys"
|
||||
|
|
|
@ -198,11 +198,12 @@ void CodeConfigPanel::DownloadCodes(wxCommandEvent&)
|
|||
// read new code
|
||||
case 0 :
|
||||
{
|
||||
std::istringstream ss(line);
|
||||
std::getline(ss, gcode.name, '['); // stop at [ character (begining of contributer name)
|
||||
std::istringstream ssline(line);
|
||||
// stop at [ character (begining of contributer name)
|
||||
std::getline(ssline, gcode.name, '[');
|
||||
gcode.name = StripSpaces(gcode.name);
|
||||
// read the code creator name
|
||||
std::getline(ss, gcode.creator, ']');
|
||||
std::getline(ssline, gcode.creator, ']');
|
||||
read_state = 1;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -280,27 +280,21 @@ bool DolphinApp::OnInit()
|
|||
delete [] tmpChar;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
const char *AppSupportDir = File::GetUserPath(D_USER_IDX);
|
||||
|
||||
if (!File::Exists(AppSupportDir))
|
||||
{
|
||||
// Fresh run: create Dolphin dir and copy contents of User within the bundle to App Support
|
||||
File::CopyDir(std::string(File::GetBundleDirectory() + DIR_SEP USERDATA_DIR DIR_SEP).c_str(), AppSupportDir);
|
||||
}
|
||||
else if (!File::IsDirectory(AppSupportDir))
|
||||
PanicAlert("~/Library/Application Support/Dolphin exists, but is not a directory");
|
||||
#elif !defined _WIN32
|
||||
#else
|
||||
//create all necessary directories in user directory
|
||||
//TODO : detect the revision and upgrade where necessary
|
||||
File::CopyDir(SHARED_USER_DIR CONFIG_DIR DIR_SEP, File::GetUserPath(D_CONFIG_IDX));
|
||||
File::CopyDir(SHARED_USER_DIR GAMECONFIG_DIR DIR_SEP, File::GetUserPath(D_GAMECONFIG_IDX));
|
||||
File::CopyDir(SHARED_USER_DIR MAPS_DIR DIR_SEP, File::GetUserPath(D_MAPS_IDX));
|
||||
File::CopyDir(SHARED_USER_DIR SHADERS_DIR DIR_SEP, File::GetUserPath(D_SHADERS_IDX));
|
||||
File::CopyDir(SHARED_USER_DIR WII_USER_DIR DIR_SEP, File::GetUserPath(D_WIIUSER_IDX));
|
||||
File::CopyDir(SHARED_USER_DIR OPENCL_DIR DIR_SEP, File::GetUserPath(D_OPENCL_IDX));
|
||||
File::CopyDir(std::string(SHARED_USER_DIR CONFIG_DIR DIR_SEP).c_str(),
|
||||
File::GetUserPath(D_CONFIG_IDX));
|
||||
File::CopyDir(std::string(SHARED_USER_DIR GAMECONFIG_DIR DIR_SEP).c_str(),
|
||||
File::GetUserPath(D_GAMECONFIG_IDX));
|
||||
File::CopyDir(std::string(SHARED_USER_DIR MAPS_DIR DIR_SEP).c_str(),
|
||||
File::GetUserPath(D_MAPS_IDX));
|
||||
File::CopyDir(std::string(SHARED_USER_DIR SHADERS_DIR DIR_SEP).c_str(),
|
||||
File::GetUserPath(D_SHADERS_IDX));
|
||||
File::CopyDir(std::string(SHARED_USER_DIR WII_USER_DIR DIR_SEP).c_str(),
|
||||
File::GetUserPath(D_WIIUSER_IDX));
|
||||
File::CopyDir(std::string(SHARED_USER_DIR OPENCL_DIR DIR_SEP).c_str(),
|
||||
File::GetUserPath(D_OPENCL_IDX));
|
||||
|
||||
if (!File::Exists(File::GetUserPath(D_GCUSER_IDX)))
|
||||
File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX));
|
||||
|
|
Loading…
Reference in New Issue