| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | package Net::OSCAR::Callbacks; | 
| 2 |  |  |  |  |  |  | BEGIN { | 
| 3 | 1 |  |  | 1 |  | 31 | $Net::OSCAR::Callbacks::VERSION = '1.928'; | 
| 4 |  |  |  |  |  |  | } | 
| 5 | 1 |  |  | 1 |  | 10 | use strict; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 38 |  | 
| 6 | 1 |  |  | 1 |  | 6 | use warnings; | 
|  | 1 |  |  |  |  | 3 |  | 
|  | 1 |  |  |  |  | 89 |  | 
| 7 | 1 |  |  | 1 |  | 8 | use vars qw($connection $snac $conntype $family $subtype $data $reqid $reqdata $session $protobit %data); | 
|  | 1 |  |  |  |  | 3 |  | 
|  | 1 |  |  |  |  | 463 |  | 
| 8 |  |  |  |  |  |  | sub { | 
| 9 |  |  |  |  |  |  |  | 
| 10 |  |  |  |  |  |  | my $type = "modify"; | 
| 11 |  |  |  |  |  |  | %data = protoparse($session, "buddylist_change")->unpack($snac->{data}); | 
| 12 |  |  |  |  |  |  |  | 
| 13 |  |  |  |  |  |  | foreach my $change (@{$data{changes}}) { | 
| 14 |  |  |  |  |  |  | $connection->log_print_cond(OSCAR_DBG_DEBUG, sub { "Buddylist change $type:\n", Data::Dumper::Dumper($change) }); | 
| 15 |  |  |  |  |  |  | if($type eq "delete") { | 
| 16 |  |  |  |  |  |  | Net::OSCAR::_BLInternal::blentry_clear($session, %$change); | 
| 17 |  |  |  |  |  |  | } else { | 
| 18 |  |  |  |  |  |  | Net::OSCAR::_BLInternal::blentry_set($session, %$change); | 
| 19 |  |  |  |  |  |  | } | 
| 20 |  |  |  |  |  |  | } | 
| 21 |  |  |  |  |  |  |  | 
| 22 |  |  |  |  |  |  |  | 
| 23 |  |  |  |  |  |  | }; |