diff options
Diffstat (limited to 'patches')
-rw-r--r-- | patches/fix-cumode_space.patch | 32 | ||||
-rw-r--r-- | patches/fix-signal-remove-coderef.patch | 22 |
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) + { |