📄 swigutil_rb.c
字号:
const char *name, const svn_string_t *value, apr_pool_t *pool){ VALUE callbacks = (VALUE)baton; svn_error_t *err = SVN_NO_ERROR; if (!NIL_P(callbacks)) { VALUE args; args = rb_ary_new3(5, callbacks, rb_id_push_wc_prop(), c2r_string2(path), c2r_string2(name), c2r_svn_string((void *)value, NULL)); invoke_callback_handle_error(args, Qnil, &err); } return err;}static svn_error_t *ra_callbacks_invalidate_wc_props(void *baton, const char *path, const char *name, apr_pool_t *pool){ VALUE callbacks = (VALUE)baton; svn_error_t *err = SVN_NO_ERROR; if (!NIL_P(callbacks)) { VALUE args; args = rb_ary_new3(4, callbacks, rb_id_invalidate_wc_props(), c2r_string2(path), c2r_string2(name)); invoke_callback_handle_error(args, Qnil, &err); } return err;}static voidra_callbacks_progress_func(apr_off_t progress, apr_off_t total, void *baton, apr_pool_t *pool){ VALUE callbacks = (VALUE)baton; if (!NIL_P(callbacks)) { VALUE args; args = rb_ary_new3(4, callbacks, rb_id_progress_func(), sizeof(apr_off_t) == sizeof(long long) ? LL2NUM(progress): LONG2NUM(progress), sizeof(apr_off_t) == sizeof(long long) ? LL2NUM(total): LONG2NUM(total)); invoke_callback(args, Qnil); }}voidsvn_swig_rb_setup_ra_callbacks(svn_ra_callbacks2_t **callbacks, void **baton, VALUE rb_callbacks, apr_pool_t *pool){ VALUE rb_auth_baton; rb_auth_baton = rb_funcall(rb_callbacks, rb_id_auth_baton(), 0); *callbacks = apr_pcalloc(pool, sizeof(**callbacks)); (*callbacks)->open_tmp_file = ra_callbacks_open_tmp_file; (*callbacks)->auth_baton = r2c_swig_type(rb_auth_baton, (void *)"svn_auth_baton_t *", pool); (*callbacks)->get_wc_prop = ra_callbacks_get_wc_prop; (*callbacks)->set_wc_prop = ra_callbacks_set_wc_prop; (*callbacks)->push_wc_prop = ra_callbacks_push_wc_prop; (*callbacks)->invalidate_wc_props = ra_callbacks_invalidate_wc_props; (*callbacks)->progress_func = ra_callbacks_progress_func; (*callbacks)->progress_baton = (void *)rb_callbacks;}svn_error_t *svn_swig_rb_ra_lock_callback(void *baton, const char *path, svn_boolean_t do_lock, const svn_lock_t *lock, svn_error_t *ra_err, 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)) { VALUE args; args = rb_ary_new3(6, proc, rb_id_call(), c2r_string2(path), do_lock ? Qtrue : Qfalse, c2r_lock__dup(lock), ra_err ? svn_swig_rb_svn_error_to_rb_error(ra_err) : Qnil); invoke_callback_handle_error(args, rb_pool, &err); } return err;}svn_error_t *svn_swig_rb_just_call(void *baton){ 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)) { VALUE args; args = rb_ary_new3(2, proc, rb_id_call()); invoke_callback_handle_error(args, rb_pool, &err); } return err;}svn_error_t *svn_swig_rb_ra_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)) { VALUE args; args = rb_ary_new3(6, proc, rb_id_call(), c2r_string2(path), c2r_long(&rev, NULL), svn_swig_rb_apr_hash_to_hash_svn_string(rev_props), svn_swig_rb_apr_array_to_array_prop(prop_diffs)); invoke_callback_handle_error(args, rb_pool, &err); } return err;}svn_error_t *svn_swig_rb_repos_history_func(void *baton, 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)) { VALUE args, result = Qnil; args = rb_ary_new3(4, proc, rb_id_call(), c2r_string2(path), c2r_long(&revision, NULL)); result = invoke_callback_handle_error(args, 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)) { VALUE args; args = rb_ary_new3(6, proc, rb_id_call(), c2r_string2(path), c2r_long(&rev, NULL), svn_swig_rb_apr_hash_to_hash_svn_string(rev_props), svn_swig_rb_apr_array_to_array_prop(prop_diffs)); invoke_callback_handle_error(args, rb_pool, &err); } return err;}svn_error_t *svn_swig_rb_wc_relocation_validator2(void *baton, const char *uuid, const char *url, svn_boolean_t root, 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)) { VALUE args; args = rb_ary_new3(5, proc, rb_id_call(), c2r_string2(uuid), c2r_string2(url), root ? Qtrue : Qfalse); invoke_callback_handle_error(args, 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)) { VALUE args; VALUE result; args = rb_ary_new3(5, proc, rb_id_call(), c2r_string2(realm), c2r_string2(username), RTEST(may_save) ? Qtrue : Qfalse); result = invoke_callback_handle_error(args, 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; new_cred = apr_pcalloc(pool, sizeof(*new_cred)); new_cred->username = tmp_cred->username ? \ apr_pstrdup(pool, tmp_cred->username) : NULL; new_cred->password = tmp_cred->password ? \ apr_pstrdup(pool, tmp_cred->password) : NULL; new_cred->may_save = tmp_cred->may_save; } } *cred = new_cred; return err;}svn_error_t *svn_swig_rb_auth_username_prompt_func(svn_auth_cred_username_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool){ svn_auth_cred_username_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)) { VALUE args; VALUE result; args = rb_ary_new3(4, proc, rb_id_call(), c2r_string2(realm), RTEST(may_save) ? Qtrue : Qfalse); result = invoke_callback_handle_error(args, rb_pool, &err); if (!NIL_P(result)) { void *result_cred = NULL; svn_auth_cred_username_t *tmp_cred = NULL; r2c_swig_type2(result, "svn_auth_cred_username_t *", &result_cred); tmp_cred = (svn_auth_cred_username_t *)result_cred; new_cred = apr_pcalloc(pool, sizeof(*new_cred)); new_cred->username = tmp_cred->username ? \ apr_pstrdup(pool, tmp_cred->username) : NULL; new_cred->may_save = tmp_cred->may_save; } } *cred = new_cred; return err;}svn_error_t *svn_swig_rb_auth_ssl_server_trust_prompt_func( svn_auth_cred_ssl_server_trust_t **cred, void *baton, const char *realm, apr_uint32_t failures, const svn_auth_ssl_server_cert_info_t *cert_info, svn_boolean_t may_save, apr_pool_t *pool){ svn_auth_cred_ssl_server_trust_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)) { VALUE args; VALUE result; args = rb_ary_new3(6, proc, rb_id_call(), c2r_string2(realm), UINT2NUM(failures), c2r_auth_ssl_server_cert_info__dup(cert_info), RTEST(may_save) ? Qtrue : Qfalse); result = invoke_callback_handle_error(args, rb_pool, &err); if (!NIL_P(result)) { void *result_cred; svn_auth_cred_ssl_server_trust_t *tmp_cred = NULL; r2c_swig_type2(result, "svn_auth_cred_ssl_server_trust_t *", &result_cred); tmp_cred = (svn_auth_cred_ssl_server_trust_t *)result_cred; new_cred = apr_pcalloc(pool, sizeof(*new_cred)); *new_cred = *tmp_cred; } } *cred = new_cred; return err;}svn_error_t *svn_swig_rb_auth_ssl_client_cert_prompt_func( svn_auth_cred_ssl_client_cert_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool){ svn_auth_cred_ssl_client_cert_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)) { VALUE args; VALUE result; args = rb_ary_new3(4, proc, rb_id_call(), c2r_string2(realm), RTEST(may_save) ? Qtrue : Qfalse); result = invoke_callback_handle_error(args, rb_pool, &err); if (!NIL_P(result)) { void *result_cred = NULL; svn_auth_cred_ssl_client_cert_t *tmp_cred = NULL; r2c_swig_type2(result, "svn_auth_cred_ssl_client_cert_t *", &result_cred); tmp_cred = (svn_auth_cred_ssl_client_cert_t *)result_cred; new_cred = apr_pcalloc(pool, sizeof(*new_cred)); new_cred->cert_file = tmp_cred->cert_file ? \ apr_pstrdup(pool, tmp_cred->cert_file) : NULL; new_cred->may_save = tmp_cred->may_save; } } *cred = new_cred; return err;}svn_error_t *svn_swig_rb_auth_ssl_client_cert_pw_prompt_func( svn_auth_cred_ssl_client_cert_pw_t **cred, void *baton, const char *realm, svn_boolean_t may_save, apr_pool_t *pool){ svn_auth_cred_ssl_client_cert_pw_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)) { VALUE args; VALUE result; args = rb_ary_new3(4, proc, rb_id_call(), c2r_string2(realm), RTEST(may_save) ? Qtrue : Qfalse); result = invoke_callback_handle_error(args, rb_pool, &err); if (!NIL_P(result)) { void *result_cred = NULL; svn_auth_cred_ssl_client_cert_pw_t *tmp_cred = NULL; r2c_swig_type2(result, "svn_auth_cred_ssl_client_cert_pw_t *", &result_cred); tmp_cred = (svn_auth_cred_ssl_client_cert_pw_t *)result_cred; new_cred = apr_pcalloc(pool, sizeo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -