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

[PATCH] Expand Perl bindings a bit

From: Roderich Schupp <roderich.schupp_at_gmail.com>
Date: Tue, 16 Apr 2013 10:52:25 +0200

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).
]]]

Received on 2013-04-16 10:53:06 CEST

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