diff options
author | Tom Feist <shabble@metavore.org> | 2011-04-08 19:53:03 +0000 |
---|---|---|
committer | Tom Feist <shabble@metavore.org> | 2011-04-08 19:53:03 +0000 |
commit | aa429131a379cdbfb9b8e75cb27b5707a219fcd0 (patch) | |
tree | c905dfc4b5fe7a60cf81ab30eb5ca98bc7903baa /feature-tests/sig_unbind.pl | |
parent | notifyquit: add 'ftp' to the blacklist since it's a common prefix which is (diff) | |
download | irssi-scripts-aa429131a379cdbfb9b8e75cb27b5707a219fcd0.tar.gz irssi-scripts-aa429131a379cdbfb9b8e75cb27b5707a219fcd0.zip |
add sig_unbind as a demonstration of the signal_remove coderef bug, and a patch
to fix it.
Diffstat (limited to 'feature-tests/sig_unbind.pl')
-rw-r--r-- | feature-tests/sig_unbind.pl | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/feature-tests/sig_unbind.pl b/feature-tests/sig_unbind.pl new file mode 100644 index 0000000..3123182 --- /dev/null +++ b/feature-tests/sig_unbind.pl @@ -0,0 +1,58 @@ +use strict; +use warnings; + + +use Irssi (@Irssi::EXPORT_OK); +use Irssi::Irc; +use Irssi::TextUI; + +use Data::Dumper; + + +our $VERSION = '0.1'; +our %IRSSI = ( + authors => 'shabble', + contact => 'shabble+irssi@metavore.org', + name => '', + description => '', + license => 'Public Domain', + ); + +command_bind("dosig_r", + sub { + my $ref = \&cmd_oink; + _print("binding oink to $ref"); + signal_add("command oink", $ref); + }); + +command_bind("undosig_r", + sub { + my $ref = \&cmd_oink; + + _print("unbinding oink from $ref"); + + signal_remove("command oink", $ref); + }); + +command_bind("dosig_s", + sub { + signal_add("command oink", 'cmd_oink'); + }); + +command_bind("undosig_s", + sub { + signal_remove("command oink", 'cmd_oink'); + }); + +sub cmd_oink { + Irssi::active_win()->print("Oink:"); +} + +sub _print { + Irssi::active_win()->print($_[0]); +} + +command("dosig_r"); +command("oink"); +command("undosig_r"); +command("oink"); |