Hi,

the following patches enable the use of svn_client_log[34] (and
probably similar functions) from Perl. (Actually I wanted to use
svn_client_log5, but that needs more work for the revision_ranges
parameter).

Cheers, Roderich


thunk_log_entry_receiver.patch:
[[[
Add Perl thunk for the svn_log_entry_receiver_t callback.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h[ch]
  New function svn_swig_pl_thunk_log_entry_receiver.

* subversion/bindings/swig/include/svn_types.swg
  Add the Perl typemap for (svn_log_entry_receiver_t receiver, void
*receiver_baton).
  Since we now have typemaps for Perl, Python and Ruby, consolidate
  them using the callback_typemap() macro. While we're at it,
  do the same for the (svn_log_message_receiver_t receiver, void
*receiver_baton)
  typemaps.
]]]

perl-bindings.patch:
[[[
Augment typemaps.

* subversion/bindings/swig/svn_client.i
  Drop three typemaps. The first two are obviously bogus and
  the third is redundant (it's also in svn_containers.swg).

* subversion/bindings/swig/include/svn_containers.swg
  Add Perl typemaps for PROPHASH and changed_paths2.
  Apply them for Perl (i.e. drop the restriction on Python or Ruby).
  Similar to Ruby, add a variant STRINGLIST_MAY_BE_NULL of
  STRINGLIST_MAY and apply it to the apr_array_header_t* revprops
  parameter of svn_client_log3 and others. All functions using
  this parameter explicitly allow the value to be NULL
  (meaning "retrieve all revprops").
]]]

core.patch:
[[[
* subversion/bindings/swig/perl/native/Core.pm
  Add class magic to use Swig types _p_svn_log_changed_path2_t
  and _p_svn_log_entry_t and documents their methods.
  Add properly namespaced aliases for the values
  of enum svn_tristate_t.
]]]

client-tests.patch:
[[[
* subversion/bindings/swig/perl/native/t/3client.t
  Run the existing test for $client->log also for
  $client->log2.
  Add similar tests for $client->log3 and $client->log4
  (esp. exercise all getter methods of _p_svn_log_entry_t).
  Add a test for $client->log3 with a parameter targets
  that is a list of a URL and relative paths (instead of
  a single URL).
]]]

Attachment: thunk_log_entry_receiver.patch
Description: Binary data

Attachment: perl-bindings.patch
Description: Binary data

Attachment: core.patch
Description: Binary data

Attachment: client-tests.patch
Description: Binary data

Reply via email to