CLocalPath COptions::InitSettingsDir() { CLocalPath p; std::wstring dir = GetOption(OPTION_DEFAULT_SETTINGSDIR); if (!dir.empty()) { dir = ExpandPath(dir); p.SetPath(wxGetApp().GetDefaultsDir().GetPath()); p.ChangePath(dir); } else { p = GetUnadjustedSettingsDir(); } if (!p.empty() && !p.Exists()) { wxFileName::Mkdir(p.GetPath(), 0700, wxPATH_MKDIR_FULL); } SetOption(OPTION_DEFAULT_SETTINGSDIR, p.GetPath()); return p; }
CLocalPath COptions::InitSettingsDir() { CLocalPath p; wxString dir(GetOption(OPTION_DEFAULT_SETTINGSDIR)); if (!dir.empty()) { wxStringTokenizer tokenizer(dir, _T("/\\"), wxTOKEN_RET_EMPTY_ALL); dir = _T(""); while (tokenizer.HasMoreTokens()) { wxString token = tokenizer.GetNextToken(); if (!token.empty() && token[0] == '$') { if (token.size() > 1 && token[1] == '$') token = token.Mid(1); else { token = GetEnv(token.Mid(1)); } } dir += token; const wxChar delimiter = tokenizer.GetLastDelimiter(); if (delimiter) dir += delimiter; } p.SetPath(wxGetApp().GetDefaultsDir().GetPath()); p.ChangePath(dir); } else { p = GetUnadjustedSettingsDir(); } if (!p.empty() && !p.Exists()) wxFileName::Mkdir( p.GetPath(), 0700, wxPATH_MKDIR_FULL ); SetOption(OPTION_DEFAULT_SETTINGSDIR, p.GetPath()); return p; }