svn_error_t * svn_config_read3(svn_config_t **cfgp, const char *file, svn_boolean_t must_exist, svn_boolean_t section_names_case_sensitive, svn_boolean_t option_names_case_sensitive, apr_pool_t *result_pool) { svn_config_t *cfg; svn_error_t *err; SVN_ERR(svn_config_create2(&cfg, section_names_case_sensitive, option_names_case_sensitive, result_pool)); /* Yes, this is platform-specific code in Subversion, but there's no practical way to migrate it into APR, as it's simultaneously Subversion-specific and Windows-specific. Even if we eventually want to have APR offer a generic config-reading interface, it makes sense to test it here first and migrate it later. */ #ifdef WIN32 if (0 == strncmp(file, SVN_REGISTRY_PREFIX, SVN_REGISTRY_PREFIX_LEN)) err = svn_config__parse_registry(cfg, file + SVN_REGISTRY_PREFIX_LEN, must_exist, result_pool); else #endif /* WIN32 */ err = svn_config__parse_file(cfg, file, must_exist, result_pool); if (err != SVN_NO_ERROR) return err; else *cfgp = cfg; return SVN_NO_ERROR; }
svn_error_t * svn_config_read(svn_config_t **cfgp, const char *file, svn_boolean_t must_exist, apr_pool_t *pool) { svn_config_t *cfg = apr_palloc(pool, sizeof(*cfg)); svn_error_t *err; cfg->sections = apr_hash_make(pool); cfg->pool = pool; cfg->x_pool = svn_pool_create(pool); cfg->x_values = FALSE; cfg->tmp_key = svn_stringbuf_create("", pool); cfg->tmp_value = svn_stringbuf_create("", pool); /* Yes, this is platform-specific code in Subversion, but there's no practical way to migrate it into APR, as it's simultaneously Subversion-specific and Windows-specific. Even if we eventually want to have APR offer a generic config-reading interface, it makes sense to test it here first and migrate it later. */ #ifdef WIN32 if (0 == strncmp(file, SVN_REGISTRY_PREFIX, SVN_REGISTRY_PREFIX_LEN)) err = svn_config__parse_registry(cfg, file + SVN_REGISTRY_PREFIX_LEN, must_exist, pool); else #endif /* WIN32 */ err = svn_config__parse_file(cfg, file, must_exist, pool); if (err != SVN_NO_ERROR) return err; else *cfgp = cfg; return SVN_NO_ERROR; }