From e8957938ea78c5089f9088b18db7910091d75ca2 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 3 Feb 2002 18:32:46 +0000 Subject: [PATCH] A bit more safer now to use /EVAL with a command that disconnects from server.. Also added a FIXME: window item would need reference counting as well, eg. "/EVAL win close;say hello" wouldn't work now.. But that's probably job for the rewrite irssi. don't go use things like that :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2381 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/core/special-vars.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/core/special-vars.c b/src/core/special-vars.c index 36d0743c..c695a0a7 100644 --- a/src/core/special-vars.c +++ b/src/core/special-vars.c @@ -582,8 +582,19 @@ void eval_special_string(const char *cmd, const char *data, ret = g_strconcat(old, " ", data, NULL); g_free(old); } + + server_ref(server); signal_emit("send command", 3, ret, server, item); + if (!server_unref(server)) { + /* the server was destroyed */ + server = NULL; + item = NULL; + } + + /* FIXME: window item would need reference counting as well, + eg. "/EVAL win close;say hello" wouldn't work now.. */ + g_free(ret); commands = g_slist_remove(commands, commands->data); }