Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c view on Meta::CPAN
const char *path,
svn_revnum_t revision,
apr_pool_t *pool)
{
svn_error_t *err = SVN_NO_ERROR;
VALUE proc, rb_pool;
svn_swig_rb_from_baton((VALUE)baton, &proc, &rb_pool);
if (!NIL_P(proc)) {
callback_baton_t cbb;
VALUE result = Qnil;
cbb.receiver = proc;
cbb.message = id_call;
cbb.args = rb_ary_new3(2,
c2r_string2(path),
c2r_long(&revision, NULL));
result = invoke_callback_handle_error((VALUE)(&cbb), rb_pool, &err);
if (!err && SVN_ERR_P(result)) {
err = r2c_svn_err(result, NULL, NULL);
}
}
return err;
}
svn_error_t *
svn_swig_rb_repos_file_rev_handler(void *baton,
const char *path,
svn_revnum_t rev,
apr_hash_t *rev_props,
svn_txdelta_window_handler_t *delta_handler,
void **delta_baton,
apr_array_header_t *prop_diffs,
apr_pool_t *pool)
{
svn_error_t *err = SVN_NO_ERROR;
VALUE proc, rb_pool;
svn_swig_rb_from_baton((VALUE)baton, &proc, &rb_pool);
if (!NIL_P(proc)) {
callback_baton_t cbb;
cbb.receiver = proc;
cbb.message = id_call;
cbb.args = rb_ary_new3(4,
c2r_string2(path),
c2r_long(&rev, NULL),
svn_swig_rb_apr_hash_to_hash_svn_string(rev_props),
svn_swig_rb_prop_apr_array_to_hash_prop(prop_diffs));
invoke_callback_handle_error((VALUE)(&cbb), rb_pool, &err);
}
return err;
}
svn_error_t *
svn_swig_rb_wc_relocation_validator3(void *baton,
const char *uuid,
const char *url,
const char *root_url,
apr_pool_t *pool)
{
svn_error_t *err = SVN_NO_ERROR;
VALUE proc, rb_pool;
svn_swig_rb_from_baton((VALUE)baton, &proc, &rb_pool);
if (!NIL_P(proc)) {
callback_baton_t cbb;
cbb.receiver = proc;
cbb.message = id_call;
cbb.args = rb_ary_new3(3,
c2r_string2(uuid),
c2r_string2(url),
c2r_string2(root_url));
invoke_callback_handle_error((VALUE)(&cbb), rb_pool, &err);
}
return err;
}
/* auth provider callbacks */
svn_error_t *
svn_swig_rb_auth_simple_prompt_func(svn_auth_cred_simple_t **cred,
void *baton,
const char *realm,
const char *username,
svn_boolean_t may_save,
apr_pool_t *pool)
{
svn_auth_cred_simple_t *new_cred = NULL;
svn_error_t *err = SVN_NO_ERROR;
VALUE proc, rb_pool;
svn_swig_rb_from_baton((VALUE)baton, &proc, &rb_pool);
if (!NIL_P(proc)) {
callback_baton_t cbb;
VALUE result;
cbb.receiver = proc;
cbb.message = id_call;
cbb.args = rb_ary_new3(3,
c2r_string2(realm),
c2r_string2(username),
RTEST(may_save) ? Qtrue : Qfalse);
result = invoke_callback_handle_error((VALUE)(&cbb), rb_pool, &err);
if (!NIL_P(result)) {
void *result_cred = NULL;
svn_auth_cred_simple_t *tmp_cred = NULL;
r2c_swig_type2(result, "svn_auth_cred_simple_t *", &result_cred);
tmp_cred = (svn_auth_cred_simple_t *)result_cred;
( run in 0.705 second using v1.01-cache-2.11-cpan-71847e10f99 )