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!

Thanks,
- Julian

Reply via email to