⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swigutil_pl.c

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"open_root", &result,                                       "OrS", ib->editor, base_revision,                                       dir_pool, POOLINFO));    *root_baton = make_baton(dir_pool, ib->editor, result);    return SVN_NO_ERROR;}static svn_error_t * thunk_delete_entry(const char *path,                                        svn_revnum_t revision,                                        void *parent_baton,                                        apr_pool_t *pool){    item_baton *ib = parent_baton;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"delete_entry", NULL,                                       "OsrOS", ib->editor, path, revision,                                       ib->baton, pool, POOLINFO));    return SVN_NO_ERROR;}static svn_error_t * thunk_add_directory(const char *path,                                         void *parent_baton,                                         const char *copyfrom_path,                                         svn_revnum_t copyfrom_revision,                                         apr_pool_t *dir_pool,                                         void **child_baton){    item_baton *ib = parent_baton;    SV *result;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"add_directory", &result,                                       "OsOsrS", ib->editor, path, ib->baton,                                       copyfrom_path, copyfrom_revision,                                        dir_pool, POOLINFO));    *child_baton = make_baton(dir_pool, ib->editor, result);    return SVN_NO_ERROR;}static svn_error_t * thunk_open_directory(const char *path,                                          void *parent_baton,                                          svn_revnum_t base_revision,                                          apr_pool_t *dir_pool,                                          void **child_baton){    item_baton *ib = parent_baton;    SV *result;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"open_directory", &result,                                       "OsOrS", ib->editor, path, ib->baton,                                       base_revision, dir_pool, POOLINFO));    *child_baton = make_baton(dir_pool, ib->editor, result);    return SVN_NO_ERROR;}static svn_error_t * thunk_change_dir_prop(void *dir_baton,                                           const char *name,                                           const svn_string_t *value,                                           apr_pool_t *pool){    item_baton *ib = dir_baton;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"change_dir_prop", NULL,                                       "OOssS", ib->editor, ib->baton, name,                                       value ? value->data : NULL,                                       pool, POOLINFO));    return SVN_NO_ERROR;}static svn_error_t * thunk_close_directory(void *dir_baton,                                           apr_pool_t *pool){    return close_baton(dir_baton, "close_directory", pool);}static svn_error_t * thunk_absent_directory(const char *path,					    void *parent_baton,					    apr_pool_t *pool){    item_baton *ib = parent_baton;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"absent_directory", NULL,                                       "OsOS", ib->editor, path, ib->baton,                                       pool, POOLINFO));    return SVN_NO_ERROR;}static svn_error_t * thunk_add_file(const char *path,                                    void *parent_baton,                                    const char *copyfrom_path,                                    svn_revnum_t copyfrom_revision,                                    apr_pool_t *file_pool,                                    void **file_baton){    item_baton *ib = parent_baton;    SV *result;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"add_file", &result,                                       "OsOsrS", ib->editor, path, ib->baton,                                       copyfrom_path, copyfrom_revision,                                       file_pool, POOLINFO));    *file_baton = make_baton(file_pool, ib->editor, result);    return SVN_NO_ERROR;}static svn_error_t * thunk_open_file(const char *path,                                     void *parent_baton,                                     svn_revnum_t base_revision,                                     apr_pool_t *file_pool,                                     void **file_baton){    item_baton *ib = parent_baton;    SV *result;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"open_file", &result,                                       "OsOrS", ib->editor, path, ib->baton,                                       base_revision, file_pool, POOLINFO));    *file_baton = make_baton(file_pool, ib->editor, result);    return SVN_NO_ERROR;}static svn_error_t * thunk_window_handler(svn_txdelta_window_t *window,                                          void *baton){    SV *handler = baton;    if (window == NULL) {      SVN_ERR(svn_swig_pl_callback_thunk(CALL_SV,                                         handler, NULL, "O",                                         &PL_sv_undef));        SvREFCNT_dec(handler);    }    else {	swig_type_info *tinfo = _SWIG_TYPE("svn_txdelta_window_t *");	SVN_ERR(svn_swig_pl_callback_thunk(CALL_SV, handler,                                           NULL, "S", window, tinfo));    }    return SVN_NO_ERROR;}static svn_error_t *thunk_apply_textdelta(void *file_baton,                       const char *base_checksum,                      apr_pool_t *pool,                      svn_txdelta_window_handler_t *handler,                      void **h_baton){    item_baton *ib = file_baton;    SV *result;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"apply_textdelta", &result,                                       "OOsS", ib->editor, ib->baton,                                       base_checksum, pool, POOLINFO));    if (SvOK(result)) {	if (SvROK(result) && SvTYPE(SvRV(result)) == SVt_PVAV) {	    swig_type_info *handler_info =               _SWIG_TYPE("svn_txdelta_window_handler_t");            swig_type_info *void_info = _SWIG_TYPE("void *");	    AV *array = (AV *)SvRV(result);	    if (SWIG_ConvertPtr(*av_fetch(array, 0, 0),				(void **)handler, handler_info,0) < 0) {		croak("Unable to convert from SWIG Type");	    }	    if (SWIG_ConvertPtr(*av_fetch(array, 1, 0),				h_baton, void_info,0) < 0) {		croak("Unable to convert from SWIG Type ");	    }            SvREFCNT_dec(result);	}	else {	    *handler = thunk_window_handler;	    *h_baton = result;	}    }    else {	*handler = svn_delta_noop_window_handler;	*h_baton = NULL;    }    return SVN_NO_ERROR;}static svn_error_t * thunk_change_file_prop(void *file_baton,                                            const char *name,                                            const svn_string_t *value,                                            apr_pool_t *pool){    item_baton *ib = file_baton;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"change_file_prop", NULL,                                       "OOssS", ib->editor, ib->baton, name,                                       value ? value->data : NULL,                                       pool, POOLINFO));      return SVN_NO_ERROR;}static svn_error_t * thunk_close_file(void *file_baton,                                      const char *text_checksum,                                      apr_pool_t *pool){    item_baton *ib = file_baton;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"close_file", NULL, "OOsS",                                       ib->editor, ib->baton, text_checksum,                                       pool, POOLINFO));    SvREFCNT_dec(ib->baton);    return SVN_NO_ERROR;}static svn_error_t * thunk_absent_file(const char *path,				       void *parent_baton,				       apr_pool_t *pool){    item_baton *ib = parent_baton;    SVN_ERR(svn_swig_pl_callback_thunk(CALL_METHOD,                                       (void *)"absent_file", NULL,                                       "OsOS", ib->editor, path, ib->baton,                                       pool, POOLINFO));    return SVN_NO_ERROR;}static svn_error_t * thunk_close_edit(void *edit_baton,                                      apr_pool_t *pool){    return close_baton(edit_baton, "close_edit", pool);}static svn_error_t * thunk_abort_edit(void *edit_baton,                                      apr_pool_t *pool){    return close_baton(edit_baton, "abort_edit", pool);}void svn_delta_make_editor(svn_delta_editor_t **editor,			   void **edit_baton,			   SV *perl_editor,			   apr_pool_t *pool){  svn_delta_editor_t *thunk_editor = svn_delta_default_editor(pool);      thunk_editor->set_target_revision = thunk_set_target_revision;    thunk_editor->open_root = thunk_open_root;    thunk_editor->delete_entry = thunk_delete_entry;    thunk_editor->add_directory = thunk_add_directory;    thunk_editor->open_directory = thunk_open_directory;    thunk_editor->change_dir_prop = thunk_change_dir_prop;    thunk_editor->close_directory = thunk_close_directory;    thunk_editor->absent_directory = thunk_absent_directory;    thunk_editor->add_file = thunk_add_file;    thunk_editor->open_file = thunk_open_file;    thunk_editor->apply_textdelta = thunk_apply_textdelta;    thunk_editor->change_file_prop = thunk_change_file_prop;    thunk_editor->close_file = thunk_close_file;    thunk_editor->absent_file = thunk_absent_file;    thunk_editor->close_edit = thunk_close_edit;    thunk_editor->abort_edit = thunk_abort_edit;    *editor = thunk_editor;    *edit_baton = make_baton(pool, perl_editor, NULL);    svn_swig_pl_hold_ref_in_pool(pool, perl_editor);}svn_error_t *svn_swig_pl_thunk_log_receiver(void *baton,					    apr_hash_t *changed_paths,					    svn_revnum_t rev,					    const char *author,					    const char *date,					    const char *msg,					    apr_pool_t *pool){    SV *receiver = baton;    swig_type_info *tinfo = _SWIG_TYPE("svn_log_changed_path_t *");    if (!SvOK(receiver))	return SVN_NO_ERROR;    svn_swig_pl_callback_thunk(CALL_SV,                               receiver, NULL,                               "OrsssS", (changed_paths) ?                               svn_swig_pl_convert_hash(changed_paths, tinfo)                               : &PL_sv_undef,                               rev, author, date, msg, pool, POOLINFO);    return SVN_NO_ERROR;}svn_error_t *svn_swig_pl_thunk_history_func(void *baton,                                            const char *path,                                            svn_revnum_t revision,                                            apr_pool_t *pool){    SV *func = baton;    if (!SvOK(func))	return SVN_NO_ERROR;    svn_swig_pl_callback_thunk(CALL_SV,                               func, NULL,                               "srS", path, revision, pool, POOLINFO);    return SVN_NO_ERROR;}svn_error_t *svn_swig_pl_thunk_authz_func(svn_boolean_t *allowed,                                          svn_fs_root_t *root,                                          const char *path,                                          void *baton,                                          apr_pool_t *pool){    SV *func = baton, *result;    if (!SvOK(func))	return SVN_NO_ERROR;    svn_swig_pl_callback_thunk(CALL_SV,                               func, &result,                               "SsS", root, _SWIG_TYPE("svn_fs_root_t *"),                               path, pool, POOLINFO);    *allowed = SvIV(result);    SvREFCNT_dec(result);    return SVN_NO_ERROR;}svn_error_t *svn_swig_pl_thunk_commit_callback(svn_revnum_t new_revision,					       const char *date,					       const char *author,					       void *baton){    if (!SvOK((SV *)baton))	return SVN_NO_ERROR;    svn_swig_pl_callback_thunk(CALL_SV, baton, NULL,                               "rss", new_revision, date, author);    return SVN_NO_ERROR;}/* Wrap RA */static svn_error_t * thunk_open_tmp_file(apr_file_t **fp,					 void *callback_baton,					 apr_pool_t *pool){    SV *result;    swig_type_info *tinfo = _SWIG_TYPE("apr_file_t *");    svn_swig_pl_callback_thunk(CALL_METHOD, (void *)"open_tmp_file",                               &result, "OS", callback_baton, pool, POOLINFO);    if (SWIG_ConvertPtr(result, (void *)fp, tinfo,0) < 0) {	croak("Unable to convert from SWIG Type");    }    SvREFCNT_dec(result);    return SVN_NO_ERROR;}svn_error_t *thunk_get_wc_prop(void *baton,                               const char *relpath,                               const char *name,                               const svn_string_t **value,                               apr_pool_t *pool){    SV *result;    svn_swig_pl_callback_thunk(CALL_METHOD, (void *)"get_wc_prop",                               &result, "OssS", baton, relpath, name,                               pool, POOLINFO);    /* this is svn_string_t * typemap in */    if (!SvOK(result) || result == &PL_sv_undef) {	*value = NULL;    }    else if (SvPOK(result)) {      *value = svn_string_create(SvPV_nolen(result), pool);    }    else {	SvREFCNT_dec(result);	croak("not a string");    }    SvREFCNT_dec(result);    return SVN_NO_ERROR;}svn_error_t *svn_ra_make_callbacks(svn_ra_callbacks_t **cb,				   void **c_baton,				   SV *perl_callbacks,				   apr_pool_t *pool){    SV *auth_baton;    *cb = apr_pcalloc(pool, sizeof(**cb));    (*cb)->open_tmp_file = thunk_open_tmp_file;    (*cb)->get_wc_prop = thunk_get_wc_prop;    (*cb)->set_wc_prop = NULL;    (*cb)->push_wc_prop = NULL;    (*cb)->invalidate_wc_props = NULL;    auth_baton = *hv_fetch((HV *)SvRV(perl_callbacks), "auth", 4, 0);    if (SWIG_ConvertPtr(auth_baton,                         (void **)&(*cb)->auth_baton, _SWIG_TYPE("svn_auth_baton_t *"),0) < 0) {	croak("Unable to convert from SWIG Type");    }    *c_baton = perl_callbacks;    svn_swig_pl_hold_ref_in_pool(pool, perl_callbacks);    return SVN_NO_ERROR;}svn_error_t *svn_swig_pl_thunk_simple_prompt(svn_auth_cred_simple_t **cred,                                             void *baton,                                             const char *realm,                                             const char *username,                                             svn_boolean_t may_save,                                             apr_pool_t *pool){    /* Be nice and allocate the memory for the cred structure before passing it     * off to the perl space */  *cred = apr_pcalloc(pool, sizeof(**cred));    if (!*cred) {      croak("Could not allocate memory for cred structure");    }    svn_swig_pl_callback_thunk(CALL_SV,                               baton, NULL,                               "SssbS", *cred, _SWIG_TYPE("svn_auth_cred_simple_t *"),                               realm, username, may_save, pool, POOLINFO);    return SVN_NO_ERROR;}svn_error_t *svn_swig_pl_thunk_username_prompt(svn_auth_cred_username_t **cred,                                               void *baton,                                               const char *realm,                                               svn_boolean_t may_save,                                               apr_pool_t *pool){    /* Be nice and allocate the memory for the cred structure before passing it     * off to the perl space */  *cred = apr_pcalloc(pool, sizeof(**cred));    if (!*cred) {      croak("Could not allocate memory for cred structure");    }    svn_swig_pl_callback_thunk(CALL_SV,                               baton, NULL,                               "SsbS", *cred, _SWIG_TYPE("svn_auth_cred_username_t *"),                               realm, may_save, pool, POOLINFO);    return SVN_NO_ERROR;}svn_error_t *svn_swig_pl_thunk_ssl_server_trust_prompt(                              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){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -