void Main_GUI::absolute_output() { QString output_name = QDir::fromNativeSeparators(output_line->text()); if (!output_name.isEmpty() && QDir::isRelativePath(output_name)) { QDir cur_path(QDir::currentPath() + "/" + output_name); output_line->setText(QDir::toNativeSeparators(cur_path.absolutePath())); } }
rid *dcRSys::cmd(rid *r) { if(is_rid(r,"put")){ // put rid data if(r->cr != NULL) put_rid(cur,r->cr); else printf("need more parameter"); return cur; } if(is_rid(r,"ls")) { cout_rid(cur); return cur; } if(is_rid(r,"go")){ if(r->cr != NULL) cur = go(cur, r->cr); else cur = go(cur, last); cur_path(); return cur; } if(is_rid(r,"path")){ cur_path(); return cur; } if(is_rid(r,"cut")){ if(r->cr != NULL) cur = cut(cur, r->cr); } return cur; //print_rid(cur); }
std::string get_user_data_dir() { #ifdef _WIN32 static bool inited_dirs = false; if(!inited_dirs) { _mkdir("userdata"); _mkdir("userdata/saves"); inited_dirs = true; } char buf[256]; const char* const res = getcwd(buf,sizeof(buf)); if(res != NULL) { std::string cur_path(res); std::replace(cur_path.begin(),cur_path.end(),'\\','/'); return cur_path + "/userdata"; } else { return "userdata"; } #elif defined(__BEOS__) if (be_path.InitCheck() != B_OK) { BPath tpath; if (find_directory(B_USER_SETTINGS_DIRECTORY, &be_path, true) == B_OK) { be_path.Append("frogatto"); } else { be_path.SetTo("/boot/home/config/settings/frogatto"); } tpath = be_path; create_directory(tpath.Path(), 0775); } return be_path.Path(); #else #ifndef __AMIGAOS4__ static const char* const current_dir = "."; const char* home_str = getenv("HOME"); #elif defined(TARGET_PANDORA) static const char* const current_dir = "."; const char* home_str = getenv("PWD"); #elif defined(TARGET_BLACKBERRY) static const char* const current_dir = "."; const char* home_str = getenv("HOME"); #else static const char* const current_dir = " "; const char* home_str = "PROGDIR:"; #endif if(home_str == NULL) home_str = current_dir; const std::string home(home_str); #ifndef PREFERENCES_DIR #define PREFERENCES_DIR ".silvertree" #endif #ifndef __AMIGAOS4__ const std::string dir_path = home + std::string("/") + PREFERENCES_DIR; #else const std::string dir_path = home + PREFERENCES_DIR; #endif DIR* dir = opendir(dir_path.c_str()); if(dir == NULL) { const int res = mkdir(dir_path.c_str(),AccessMode); // Also create the maps directory mkdir((dir_path + "/editor").c_str(),AccessMode); mkdir((dir_path + "/saves").c_str(),AccessMode); if(res == 0) { dir = opendir(dir_path.c_str()); } else { std::cerr << "could not open or create directory: " << dir_path << '\n'; } } if(dir == NULL) return ""; closedir(dir); return dir_path; #endif }
void LLWLParamManager::loadPresets(const std::string& file_name) { // if fileName exists, use legacy loading form the big file, otherwise, search the sky // directory, and add the list if(file_name != "") { std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", file_name)); LL_INFOS2("AppInit", "Shaders") << "Loading WindLight settings from " << path_name << LL_ENDL; llifstream presetsXML(path_name); if (presetsXML) { LLSD paramsData(LLSD::emptyMap()); LLPointer<LLSDParser> parser = new LLSDXMLParser(); parser->parse(presetsXML, paramsData, LLSDSerialize::SIZE_UNLIMITED); LLSD::map_const_iterator endParams = paramsData.endMap(); for(LLSD::map_const_iterator curParams = paramsData.beginMap(); curParams != endParams; ++curParams) { addParamSet(curParams->first, curParams->second); } } } // otherwise, search the sky directory and find things there else { std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", "")); LL_INFOS2("AppInit", "Shaders") << "Loading WindLight settings from " << path_name << LL_ENDL; //mParamList.clear(); bool found = true; while(found) { std::string name; found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false); LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL; // if we have one if(found) { // bugfix for SL-46920: preventing filenames that break stuff. char * curl_str = curl_unescape(name.c_str(), name.size()); std::string unescaped_name(curl_str); curl_free(curl_str); curl_str = NULL; // not much error checking here since we're getting rid of this std::string sky_name = unescaped_name.substr(0, unescaped_name.size() - 4); std::string cur_path(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", name)); LL_DEBUGS2("AppInit", "Shaders") << "Loading sky from " << cur_path << LL_ENDL; llifstream sky_xml(cur_path); if (sky_xml) { LLSD sky_data(LLSD::emptyMap()); LLPointer<LLSDParser> parser = new LLSDXMLParser(); parser->parse(sky_xml, sky_data, LLSDSerialize::SIZE_UNLIMITED); addParamSet(sky_name, sky_data); sky_xml.close(); } } } } }