// dump all known runtime config options to the file with their default values. // to trigger this, make a config file of zero size. void SkRTConfRegistry::possiblyDumpFile() const { const char *path = configFileLocation(); SkFILE *fp = sk_fopen(path, kRead_SkFILE_Flag); if (!fp) { return; } size_t configFileSize = sk_fgetsize(fp); if (configFileSize == 0) { printAll(path); } sk_fclose(fp); }
SkRTConfRegistry::SkRTConfRegistry(): fConfs(100) { SkFILE *fp = sk_fopen(configFileLocation(), kRead_SkFILE_Flag); if (!fp) { return; } char line[1024]; while (!sk_feof(fp)) { if (!sk_fgets(line, sizeof(line), fp)) { break; } char *commentptr = strchr(line, '#'); if (commentptr == line) { continue; } if (NULL != commentptr) { *commentptr = '\0'; } char sep[] = " \t\r\n"; char *keyptr = strtok(line, sep); if (!keyptr) { continue; } char *valptr = strtok(NULL, sep); if (!valptr) { continue; } SkString* key = SkNEW_ARGS(SkString,(keyptr)); SkString* val = SkNEW_ARGS(SkString,(valptr)); fConfigFileKeys.append(1, &key); fConfigFileValues.append(1, &val); } sk_fclose(fp); }
bool Environment::initConfig(Config::Config *config, const std::string& name, int fromStage, int toStage, bool standalone) const { std::string globalConfig, appConfig; globalConfig = configFileLocation(name, CS_DEFAULT_GLOBAL); appConfig = configFileLocation(name, CS_DEFAULT_APP); if ( !standalone ) { if ( CHECK_RANGE(CS_DEFAULT_GLOBAL, fromStage, toStage) ) { if ( appConfig != globalConfig && Util::fileExists(globalConfig) ) if ( !config->readConfig(globalConfig, CS_DEFAULT_GLOBAL) ) return false; } } if ( CHECK_RANGE(CS_DEFAULT_APP, fromStage, toStage) ) { if ( Util::fileExists(appConfig) ) if ( !config->readConfig(appConfig, CS_DEFAULT_APP) ) return false; } globalConfig = configFileLocation(name, CS_CONFIG_GLOBAL); appConfig = configFileLocation(name, CS_CONFIG_APP); if ( !standalone ) { if ( CHECK_RANGE(CS_CONFIG_GLOBAL, fromStage, toStage) ) { if ( appConfig != globalConfig && Util::fileExists(globalConfig) ) if ( !config->readConfig(globalConfig, CS_CONFIG_GLOBAL) ) return false; } } if ( CHECK_RANGE(CS_CONFIG_APP, fromStage, toStage) ) { if ( Util::fileExists(appConfig) ) if ( !config->readConfig(appConfig, CS_CONFIG_APP) ) return false; } globalConfig = configFileLocation(name, CS_USER_GLOBAL); appConfig = configFileLocation(name, CS_USER_APP); if ( !standalone ) { if ( CHECK_RANGE(CS_USER_GLOBAL, fromStage, toStage) ) { if ( appConfig != globalConfig && Util::fileExists(globalConfig) ) if ( !config->readConfig(globalConfig, CS_USER_GLOBAL) ) return false; } } if ( CHECK_RANGE(CS_USER_APP, fromStage, toStage) ) { if ( Util::fileExists(appConfig) ) if ( !config->readConfig(appConfig, CS_USER_APP) ) return false; } return true; }