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

[PATCH] Issue 2646: Export more client API functions to Perl

From: Mattias Engdegård <mattias_at_virtutech.se>
Date: 2006-12-05 15:06:37 CET

[ Repost because it didn't appear the first time. Sorry if you get it twice. ]

The Perl bindings contain but do not export many functions introduced
after around 1.0-1.1. This is quite annoying (doubly so as the swigged
bindings are there, just not available to the user). For the purpose
of this bug, Client functions such as log2 are absent.

[[
Make many functions added since version 1.0 in the Client API visible
to users of the Perl bindings. They are already swig-wrapped, just not
exported. (issue 2646)

* subversion/bindings/swig/perl/native/Client.pm
  Export more API functions, and refactor to avoid unnecessary repetition.
]]

Index: subversion/bindings/swig/perl/native/Client.pm
===================================================================
--- subversion/bindings/swig/perl/native/Client.pm (revision 22204)
+++ subversion/bindings/swig/perl/native/Client.pm (working copy)
@@ -5,12 +5,22 @@
 use SVN::Wc;
 
 package SVN::Client;
-use SVN::Base qw(Client svn_client_ checkout update switch add mkdir delete
- commit status log blame diff merge cleanup relocate
- revert resolved copy move revprop_set propset
- proplist revvprop_list export ls cat import propget
- uuid_from_url uuid_from_path url_from_path revprop_get
- revprop_list info);
+my @_all_fns;
+BEGIN {
+ @_all_fns = qw(add add3 blame blame3 cat cat2 checkout checkout2 cleanup
+ commit commit3 commit_item2_dup copy copy3 delete delete2
+ diff diff3 diff_peg3 diff_summarize diff_summarize_peg
+ export export3 import import2 info info_dup list lock
+ log log2 log3 ls ls3
+ merge merge2 merge_peg2 mkdir mkdir2 move move4
+ propget propget2 proplist proplist2 proplist_item_dup
+ propset propset2 relocate resolved revert
+ revprop_get revprop_list revprop_set
+ status status2 switch unlock update update2
+ url_from_path uuid_from_path uuid_from_url);
+ require SVN::Base;
+ import SVN::Base (qw(Client svn_client_), @_all_fns);
+}
 
 =head1 NAME
 
@@ -820,13 +830,7 @@
 
 # import methods into our name space and wrap them in a closure
 # to support method calling style $ctx->log()
-foreach my $function (qw(checkout update switch add mkdir delete commit
- status log blame diff merge cleanup relocate
- revert resolved copy move revprop_set propset
- proplist revvprop_list export ls cat import
- propget uuid_from_url uuid_from_path
- url_from_path revprop_get revprop_list
- info))
+foreach my $function (@_all_fns)
 {
     no strict 'refs';
     my $real_function = \&{"SVN::_Client::svn_client_$function"};

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Dec 5 15:07:19 2006

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