]> git.vpit.fr Git - perl/scripts/xchat.git/blobdiff - Xchat/XPI/Events.pm
Make sure local_context() runs the code only when the context was found
[perl/scripts/xchat.git] / Xchat / XPI / Events.pm
index d851caaeb961d04e705cd3753527ff4d627cd006..3b3963b32f502359a748ecbd0d26972bdc103b48 100644 (file)
@@ -5,6 +5,9 @@ use warnings;
 
 use Xchat qw<:all>;
 
+use lib get_info 'xchatdir';
+use Xchat::XPI::Utils qw<called_from_script>;
+
 use constant DEFAULT_DELAY => 1000;
 
 our $VERSION = '0.04';
@@ -18,7 +21,7 @@ sub _delay_cb {
 }
 
 sub delay {
- my $delay = shift;
+ my ($delay, @args) = @_;
 
  if (defined $delay) {
   $delay = int $delay;
@@ -26,7 +29,9 @@ sub delay {
   $delay = DEFAULT_DELAY;
  }
 
- hook_timer $delay, \&_delay_cb, { data => \@_ };
+ called_from_script {
+  hook_timer $delay, \&_delay_cb, { data => \@args }
+ }
 }
 
 sub _filter_cb {
@@ -42,9 +47,11 @@ sub _filter_cb {
 }
 
 sub filter {
- my $from = shift;
+ my ($from, $cb, $to) = @_;
 
- hook_print $from, \&_filter_cb, { data => \@_ };
+ called_from_script {
+  hook_print $from, \&_filter_cb, { data => [ $cb, $to ] }
+ }
 }
 
 use base qw<Exporter>;