Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/libsvn_subr/cmdline.c view on Meta::CPAN
* location is SVN_CONFIG_CATEGORY_SERVERS. The RA layer may
* override the value we set here. */
SVN_ERR(svn_config_get_bool(cfg, &store_password_val,
SVN_CONFIG_SECTION_AUTH,
SVN_CONFIG_OPTION_STORE_PASSWORDS,
SVN_CONFIG_DEFAULT_OPTION_STORE_PASSWORDS));
if (! store_password_val)
svn_auth_set_parameter(*ab, SVN_AUTH_PARAM_DONT_STORE_PASSWORDS, "");
/* Determine whether we are allowed to write to the auth/ area.
* This is the deprecated location for this option, the new
* location is SVN_CONFIG_CATEGORY_SERVERS. The RA layer may
* override the value we set here. */
SVN_ERR(svn_config_get_bool(cfg, &store_auth_creds_val,
SVN_CONFIG_SECTION_AUTH,
SVN_CONFIG_OPTION_STORE_AUTH_CREDS,
SVN_CONFIG_DEFAULT_OPTION_STORE_AUTH_CREDS));
if (no_auth_cache || ! store_auth_creds_val)
svn_auth_set_parameter(*ab, SVN_AUTH_PARAM_NO_AUTH_CACHE, "");
#ifdef SVN_HAVE_GNOME_KEYRING
svn_auth_set_parameter(*ab, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
&svn_cmdline__auth_gnome_keyring_unlock_prompt);
#endif /* SVN_HAVE_GNOME_KEYRING */
return SVN_NO_ERROR;
}
svn_error_t *
svn_cmdline__getopt_init(apr_getopt_t **os,
int argc,
const char *argv[],
apr_pool_t *pool)
{
apr_status_t apr_err = apr_getopt_init(os, pool, argc, argv);
if (apr_err)
return svn_error_wrap_apr(apr_err,
_("Error initializing command line arguments"));
return SVN_NO_ERROR;
}
void
svn_cmdline__print_xml_prop(svn_stringbuf_t **outstr,
const char* propname,
svn_string_t *propval,
svn_boolean_t inherited_prop,
apr_pool_t *pool)
{
const char *xml_safe;
const char *encoding = NULL;
if (*outstr == NULL)
*outstr = svn_stringbuf_create_empty(pool);
if (svn_xml_is_xml_safe(propval->data, propval->len))
{
svn_stringbuf_t *xml_esc = NULL;
svn_xml_escape_cdata_string(&xml_esc, propval, pool);
xml_safe = xml_esc->data;
}
else
{
const svn_string_t *base64ed = svn_base64_encode_string2(propval, TRUE,
pool);
encoding = "base64";
xml_safe = base64ed->data;
}
if (encoding)
svn_xml_make_open_tag(
outstr, pool, svn_xml_protect_pcdata,
inherited_prop ? "inherited_property" : "property",
"name", propname,
"encoding", encoding, NULL);
else
svn_xml_make_open_tag(
outstr, pool, svn_xml_protect_pcdata,
inherited_prop ? "inherited_property" : "property",
"name", propname, NULL);
svn_stringbuf_appendcstr(*outstr, xml_safe);
svn_xml_make_close_tag(
outstr, pool,
inherited_prop ? "inherited_property" : "property");
return;
}
svn_error_t *
svn_cmdline__parse_config_option(apr_array_header_t *config_options,
const char *opt_arg,
apr_pool_t *pool)
{
svn_cmdline__config_argument_t *config_option;
const char *first_colon, *second_colon, *equals_sign;
apr_size_t len = strlen(opt_arg);
if ((first_colon = strchr(opt_arg, ':')) && (first_colon != opt_arg))
{
if ((second_colon = strchr(first_colon + 1, ':')) &&
(second_colon != first_colon + 1))
{
if ((equals_sign = strchr(second_colon + 1, '=')) &&
(equals_sign != second_colon + 1))
{
config_option = apr_pcalloc(pool, sizeof(*config_option));
config_option->file = apr_pstrndup(pool, opt_arg,
first_colon - opt_arg);
config_option->section = apr_pstrndup(pool, first_colon + 1,
second_colon - first_colon - 1);
config_option->option = apr_pstrndup(pool, second_colon + 1,
equals_sign - second_colon - 1);
if (! (strchr(config_option->option, ':')))
{
config_option->value = apr_pstrndup(pool, equals_sign + 1,
opt_arg + len - equals_sign - 1);
APR_ARRAY_PUSH(config_options, svn_cmdline__config_argument_t *)
= config_option;
return SVN_NO_ERROR;
}
}
}
}
return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
_("Invalid syntax of argument of --config-option"));
}
svn_error_t *
svn_cmdline__apply_config_options(apr_hash_t *config,
const apr_array_header_t *config_options,
const char *prefix,
const char *argument_name)
{
int i;
for (i = 0; i < config_options->nelts; i++)
( run in 0.294 second using v1.01-cache-2.11-cpan-501a3233654 )