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

Updating swig-py bindings

From: Julian Foad <julianfoad_at_apache.org>
Date: Tue, 13 Mar 2018 14:44:08 +0000

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
subversion/include/svn_client.h:4806: Warning 900: FIXME: Missing argout
subversion/include/svn_client.h:4823: Warning 900: FIXME: Missing argout

These three all look like:

     apr_array_header_t **options,

an array of pointer to svn_client_conflict_option_t which is an opaque

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

   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
subversion/include/svn_client.h:7176: Warning 900: FIXME: Missing argout
subversion/include/svn_client.h:7201: Warning 900: FIXME: Missing argout

And so on.

Any help would be appreciated!

- Julian
Received on 2018-03-13 15:44:12 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.