summaryrefslogtreecommitdiff
path: root/src/perl/perl-signals.c
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2002-01-10 17:36:41 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2002-01-10 17:36:41 +0000
commit7131ceb909c5ffc614a8a9b40e80449a468fd78c (patch)
treecb5b82866eacd95be4fefee73701d9ecc2237ecb /src/perl/perl-signals.c
parent4032addbf93d6c5a66ed030579f6be89ead281ac (diff)
downloadirssi-7131ceb909c5ffc614a8a9b40e80449a468fd78c.zip
g_strdup() the error message before emitting "script error" signal, since
perl scripting might be executed during that signal and it clears the error message. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2302 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/perl/perl-signals.c')
-rw-r--r--src/perl/perl-signals.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/perl/perl-signals.c b/src/perl/perl-signals.c
index 97d3828e..eb3a8b48 100644
--- a/src/perl/perl-signals.c
+++ b/src/perl/perl-signals.c
@@ -160,7 +160,9 @@ static void perl_call_signal(PERL_SCRIPT_REC *script, SV *func,
SPAGAIN;
if (SvTRUE(ERRSV)) {
- signal_emit("script error", 2, script, SvPV(ERRSV, PL_na));
+ char *error = g_strdup(SvPV(ERRSV, PL_na));
+ signal_emit("script error", 2, script, error);
+ g_free(error);
rec = NULL;
}