Author: danielsh
Date: Sat Jul 24 11:41:59 2010
New Revision: 978851
URL: http://svn.apache.org/viewvc?rev=978851&view=rev
Log:
Add a constructor for svn_config_t. (The only existing constructor was
svn_config_read(), but it required passing a filepath.)
* subversion/libsvn_subr/config.c
(svn_config_create): New, extracted from svn_config_read().
(svn_config_read): Remove code now in svn_config_create().
* subversion/include/svn_config.h
(svn_config_create): New declaration.
Modified:
subversion/trunk/subversion/include/svn_config.h
subversion/trunk/subversion/libsvn_subr/config.c
Modified: subversion/trunk/subversion/include/svn_config.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_config.h?rev=978851&r1=978850&r2=978851&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_config.h (original)
+++ subversion/trunk/subversion/include/svn_config.h Sat Jul 24 11:41:59 2010
@@ -185,6 +185,15 @@ svn_config_get_config(apr_hash_t **cfg_h
apr_pool_t *pool);
+/** Set @a *cfgp to an empty @c svn_config_t structure,
+ * allocated in @a result_pool.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_config_create(svn_config_t **cfgp,
+ apr_pool_t *result_pool);
+
/** Read configuration data from @a file (a file or registry path) into
* @a *cfgp, allocated in @a pool.
*
Modified: subversion/trunk/subversion/libsvn_subr/config.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config.c?rev=978851&r1=978850&r2=978851&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/config.c (original)
+++ subversion/trunk/subversion/libsvn_subr/config.c Sat Jul 24 11:41:59 2010
@@ -78,18 +78,29 @@ struct cfg_option_t
svn_error_t *
+svn_config_create(svn_config_t **cfgp, apr_pool_t *result_pool)
+{
+ svn_config_t *cfg = apr_palloc(result_pool, sizeof(*cfg));
+
+ cfg->sections = apr_hash_make(result_pool);
+ cfg->pool = result_pool;
+ cfg->x_pool = svn_pool_create(result_pool);
+ cfg->x_values = FALSE;
+ cfg->tmp_key = svn_stringbuf_create("", result_pool);
+ cfg->tmp_value = svn_stringbuf_create("", result_pool);
+
+ *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_config_t *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);
+ SVN_ERR(svn_config_create(&cfg, pool));
/* Yes, this is platform-specific code in Subversion, but there's no
practical way to migrate it into APR, as it's simultaneously