[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Updating swig-py bindings

From: Troy Curtis Jr <troycurtisjr_at_gmail.com>
Date: Wed, 14 Mar 2018 03:24:30 +0000

On Tue, Mar 13, 2018 at 9:44 AM Julian Foad <julianfoad_at_apache.org> wrote:

> Troy (or others), I want to use swig-py bindings for my new shelving API
> (in svn_client.h) so I am trying to update them. I started by looking at
> the 'Missing argout typemap' warnings for svn_client.h.
>
> As well as svn_shelf_* functions, also the svn_client_conflict_* set of
> functions currently lack bindings so I thought I might as well try to do
> those at the same time.
>
> First some easy bits:
>
> [[[
> Index: subversion/bindings/swig/include/svn_containers.swg
> ===================================================================
> --- subversion/bindings/swig/include/svn_containers.swg (revision 1826621)
> +++ subversion/bindings/swig/include/svn_containers.swg (working copy)
> @@ -527,7 +527,10 @@
> apr_array_header_t **logfiles,
> apr_array_header_t **names_p,
> apr_array_header_t **targets_p,
> - apr_array_header_t **args_p
> + apr_array_header_t **args_p,
> + apr_array_header_t **possible_moved_to_repos_relpaths,
> + apr_array_header_t **possible_moved_to_abspaths,
> + apr_array_header_t **props_conflicted
> };
>
> /*
> -----------------------------------------------------------------------
> Index: subversion/bindings/swig/include/svn_types.swg
> ===================================================================
> --- subversion/bindings/swig/include/svn_types.swg (revision 1826621)
> +++ subversion/bindings/swig/include/svn_types.swg (working copy)
> @@ -119,6 +119,11 @@
> svn_client_commit_info_t **,
> svn_client_ctx_t **,
> const svn_client_commit_item3_t **,
> + svn_client_conflict_t **,
> + svn_client_conflict_option_t **,
> + svn_client_shelf_t **,
> + svn_client_shelf_version_t **,
> + svn_client_shelf_info_t **,
> /* svn_delta */
> const svn_delta_editor_t **,
> svn_txdelta_stream_t **,
> ]]]
>
> Now the harder ones.
>
> subversion/include/svn_client.h:4793: Warning 900: FIXME: Missing argout
> typemap
> subversion/include/svn_client.h:4806: Warning 900: FIXME: Missing argout
> typemap
> subversion/include/svn_client.h:4823: Warning 900: FIXME: Missing argout
> typemap
>
> These three all look like:
>
> svn_client_conflict_text_get_resolution_options(
> apr_array_header_t **options,
>
> an array of pointer to svn_client_conflict_option_t which is an opaque
> object.
>
> I can see an "%opaque_proxy(svn_client_conflict_t);" declaration has
> already been produced in 'proxy/svn_client_h.swg'. What more is needed?
>
> subversion/include/svn_client.h:7028: Warning 900: FIXME: Missing argout
> typemap
>
> svn_client_shelf_get_all_versions(apr_array_header_t **versions_p,
>
> an array of pointer to svn_client_shelf_version_t which is a public
> non-opaque struct.
>
> subversion/include/svn_client.h:7079: Warning 900: FIXME: Missing argout
> typemap
> subversion/include/svn_client.h:7176: Warning 900: FIXME: Missing argout
> typemap
> subversion/include/svn_client.h:7201: Warning 900: FIXME: Missing argout
> typemap
>
> And so on.
>
> Any help would be appreciated!
>
>
Updating the bindings for some of the newer APIs has been something I've
been wanting to get to. I'm not proficient enough in swig-ese to just
rattle it off the top of my head yet, but I'd be interested in helping
out. I may actually have some time to poke at Friday depending on how life
goes :) So if you or someone else hasn't figured it out by then I'll plan
on taking a look.

Troy

> Thanks,
> - Julian
>
Received on 2018-03-14 04:24:55 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.