# HG changeset patch # User Etan Reisner # Date 1177740167 0 # Node ID fab49a6e9b2570e69bf1410201938242192ca8e1 # Parent 390987ecddf35f805e4a93fc664a3b9d24716993 Add a script I've found handy to make sure the perl APIs look right, it also helped test that my Pidgin:: changes actually worked. diff -r 390987ecddf3 -r fab49a6e9b25 libpurple/plugins/perl/scripts/function_list.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/plugins/perl/scripts/function_list.pl Sat Apr 28 06:02:47 2007 +0000 @@ -0,0 +1,69 @@ +$MODULE_NAME = "List all Purple:: (and Pidgin::) functions"; +use Purple; +# Uncomment this to print the Pidgin:: functions as well. +#use Pidgin; + +# All the information Purple gets about our nifty plugin +%PLUGIN_INFO = ( + perl_api_version => 2, + name => "Perl: $MODULE_NAME", + version => "0.1", + summary => "Print to standard output all the functions under the Purple:: (and Pidgin::) packages", + description => "Print to standard output all the functions under the Purple:: (and Pidgin::) packages", + author => "Etan Reisner ", + url => "http://sourceforge.net/users/deryni9/", + id => "functionlist", + + load => "plugin_load", + unload => "plugin_unload" +); + +sub plugin_init { + return %PLUGIN_INFO; +} + +sub print_array { + my $array = shift; + + my @arr = sort @$array; + foreach $mod (@arr) { + my @sub; + + foreach $key (sort keys %{$mod}) { + if ($key =~ /::$/) { + push @sub, "$mod$key"; + } else { + print "$mod$key\n"; + } + } + print_array(\@sub); + } +} + +sub plugin_load { + my $plugin = shift; + my @purplearray; + my @pidginarray; + + foreach $key (sort keys %Purple::) { + if ($key =~ /::$/) { + push @purplearray, "Purple::$key"; + } else { + print "Purple::$key\n"; + } + } + print_array(\@purplearray); + + foreach $key (sort keys %Pidgin::) { + if ($key =~ /::$/) { + push @pidginarray, "Pidgin::$key"; + } else { + print "Pidgin::$key\n"; + } + } + print_array(\@pidginarray); +} + +sub plugin_unload { + my $plugin = shift; +}