aboutsummaryrefslogtreecommitdiffstats
path: root/feature-tests
diff options
context:
space:
mode:
authorTom Feist <shabble@metavore.org>2011-04-08 19:53:03 +0000
committerTom Feist <shabble@metavore.org>2011-04-08 19:53:03 +0000
commitaa429131a379cdbfb9b8e75cb27b5707a219fcd0 (patch)
treec905dfc4b5fe7a60cf81ab30eb5ca98bc7903baa /feature-tests
parentnotifyquit: add 'ftp' to the blacklist since it's a common prefix which is (diff)
downloadirssi-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')
-rw-r--r--feature-tests/sig_unbind.pl58
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");