aboutsummaryrefslogtreecommitdiffstats
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rw-r--r--patches/fix-cumode_space.patch32
-rw-r--r--patches/fix-signal-remove-coderef.patch22
2 files changed, 54 insertions, 0 deletions
diff --git a/patches/fix-cumode_space.patch b/patches/fix-cumode_space.patch
new file mode 100644
index 0000000..9d1e728
--- /dev/null
+++ b/patches/fix-cumode_space.patch
@@ -0,0 +1,32 @@
+From 35ddd45044388fe1f26e95c43ca0d8bcf30462fe Mon Sep 17 00:00:00 2001
+From: Tom Feist <shabble@metavore.org>
+Date: Sat, 19 Mar 2011 08:09:37 +0000
+Subject: [PATCH] fix bug #795 by setting free_arg parameter correctly to false where the expando
+ expansion is a static string.
+
+---
+ src/irc/core/irc-expandos.c | 8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/src/irc/core/irc-expandos.c b/src/irc/core/irc-expandos.c
+index 0c0da64..df692cc 100644
+--- a/src/irc/core/irc-expandos.c
++++ b/src/irc/core/irc-expandos.c
+@@ -106,7 +106,13 @@ static char *expando_cumode_space(SERVER_REC *server, void *item, int *free_ret)
+ return "";
+
+ ret = expando_cumode(server, item, free_ret);
+- return *ret == '\0' ? " " : ret;
++
++ if (*ret == '\0') {
++ free_ret = FALSE;
++ return " ";
++ } else {
++ return ret;
++ }
+ }
+
+ static void event_join(IRC_SERVER_REC *server, const char *data,
+--
+1.7.4.1
+
diff --git a/patches/fix-signal-remove-coderef.patch b/patches/fix-signal-remove-coderef.patch
new file mode 100644
index 0000000..e2ecd19
--- /dev/null
+++ b/patches/fix-signal-remove-coderef.patch
@@ -0,0 +1,22 @@
+From f1f66db22e732ca3e5d920c64c8b904e2fb92762 Mon Sep 17 00:00:00 2001
+From: Tom Feist <shabble@metavore.org>
+Date: Fri, 8 Apr 2011 20:28:41 +0100
+Subject: [PATCH] bugfix: allow Irssi::signal_remove to work properly with coderefs
+
+
+diff --git a/src/perl/perl-signals.c b/src/perl/perl-signals.c
+index a455cfd..1652d09 100644
+--- a/src/perl/perl-signals.c
++++ b/src/perl/perl-signals.c
+@@ -434,8 +434,9 @@ static void perl_signal_remove_list_one(GSList **siglist, PERL_SIGNAL_REC *rec)
+ }
+
+ #define sv_func_cmp(f1, f2) \
+- (f1 == f2 || (SvPOK(f1) && SvPOK(f2) && \
+- strcmp((char *) SvPV_nolen(f1), (char *) SvPV_nolen(f2)) == 0))
++ ((SvROK(f1) && SvROK(f2) && SvRV(f1) == SvRV(f2)) || \
++ (SvPOK(f1) && SvPOK(f2) && \
++ strcmp((char *) SvPV_nolen(f1), (char *) SvPV_nolen(f2)) == 0))
+
+ static void perl_signal_remove_list(GSList **list, SV *func)
+ {