On Tue, Mar 13, 2018 at 9:44 AM Julian Foad <julianf...@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 >