Mercurial > pidgin
view plugins/perl/scripts/plugin_action.pl @ 13905:4e44ecb866bd
[gaim-migrate @ 16394]
msn_session_sync_users() iterates over the buddy list, following the ->next pointers of the groups, contacts, and buddies. msn_show_sync_issue(), if called, removed the buddy for which it was called, in preparation for the buddy either being added to the server list or confirmed-to-be-removed. This could lead to the buddy pointer being released and ->next therefore being junk.
The buddy is now not removed until the user responds to the action dialog presented via msn_show_sync_issue(). I'm unclear why gtkgaim got away with this exercise in memory stomping but Adium/libgaim crashed every time, but it's safer in any case.
I also changed some foo->bar to gaim_foo_get_bar().
committer: Tailor Script <tailor@pidgin.im>
| author | Evan Schoenberg <evan.s@dreskin.net> |
|---|---|
| date | Sun, 02 Jul 2006 09:37:25 +0000 |
| parents | b457aa723bab |
| children |
line wrap: on
line source
$MODULE_NAME = "Plugin Action Test Plugin"; use Gaim; sub plugin_init { return %PLUGIN_INFO; } sub plugin_load { my $plugin = shift; } sub plugin_unload { my $plugin = shift; } sub fun1 { print "1\n"; } sub fun2 { print "2\n"; } sub fun3 { print "3\n"; } %plugin_actions = ( "Action 1" => \&fun1, "Action 2" => \&fun2, "Action 3" => \&fun3 # "Action 1" => sub { print "1\n"; }, # "Action 2" => sub { print "2\n"; }, # "Action 3" => sub { print "3\n"; } ); sub plugin_action_names { foreach $key (keys %plugin_actions) { push @array, $key; } return @array; } # All the information Gaim gets about our nifty plugin %PLUGIN_INFO = ( perl_api_version => 2, name => "Perl: $MODULE_NAME", version => "0.1", summary => "Test plugin for the Perl interpreter.", description => "Just a basic test plugin template.", author => "Etan Reisner <deryni\@gmail.com>", url => "http://sourceforge.net/users/deryni9/", load => "plugin_load", unload => "plugin_unload", plugin_action_sub => "plugin_action_names" );
