summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2015-03-07 09:35:29 +0100
committerSébastien Helleu <flashcode@flashtux.org>2015-03-07 09:35:29 +0100
commite95f8533031771d8307c6ed54d0fe2cf0bc8da37 (patch)
treedc6b35d7f2521520a81b08578829d1d7bdea3794 /src/plugins
parent5d1f7e79ba3d777f238a77bd953713a3c1cc3bd2 (diff)
downloadweechat-e95f8533031771d8307c6ed54d0fe2cf0bc8da37.zip
scripts: reset current script pointer when load of script fails in python/perl/ruby/lua/tcl plugins
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/lua/weechat-lua.c4
-rw-r--r--src/plugins/perl/weechat-perl.c1
-rw-r--r--src/plugins/python/weechat-python.c3
-rw-r--r--src/plugins/ruby/weechat-ruby.c3
-rw-r--r--src/plugins/tcl/weechat-tcl.c13
5 files changed, 19 insertions, 5 deletions
diff --git a/src/plugins/lua/weechat-lua.c b/src/plugins/lua/weechat-lua.c
index 43a4cc13f..ea2d1520b 100644
--- a/src/plugins/lua/weechat-lua.c
+++ b/src/plugins/lua/weechat-lua.c
@@ -425,8 +425,10 @@ weechat_lua_load (const char *filename)
/* if script was registered, remove it from list */
if (lua_current_script)
{
- plugin_script_remove (weechat_lua_plugin, &lua_scripts, &last_lua_script,
+ plugin_script_remove (weechat_lua_plugin,
+ &lua_scripts, &last_lua_script,
lua_current_script);
+ lua_current_script = NULL;
}
return 0;
diff --git a/src/plugins/perl/weechat-perl.c b/src/plugins/perl/weechat-perl.c
index d8c22a64b..7a3a65e45 100644
--- a/src/plugins/perl/weechat-perl.c
+++ b/src/plugins/perl/weechat-perl.c
@@ -438,6 +438,7 @@ weechat_perl_load (const char *filename)
plugin_script_remove (weechat_perl_plugin,
&perl_scripts, &last_perl_script,
perl_current_script);
+ perl_current_script = NULL;
}
return 0;
diff --git a/src/plugins/python/weechat-python.c b/src/plugins/python/weechat-python.c
index 9f0b0019b..7a3731b26 100644
--- a/src/plugins/python/weechat-python.c
+++ b/src/plugins/python/weechat-python.c
@@ -722,11 +722,12 @@ weechat_python_load (const char *filename)
PyErr_Print ();
/* if script was registered, remove it from list */
- if (python_current_script != NULL)
+ if (python_current_script)
{
plugin_script_remove (weechat_python_plugin,
&python_scripts, &last_python_script,
python_current_script);
+ python_current_script = NULL;
}
Py_EndInterpreter (python_current_interpreter);
diff --git a/src/plugins/ruby/weechat-ruby.c b/src/plugins/ruby/weechat-ruby.c
index 11c0fe9e7..d5cb4684a 100644
--- a/src/plugins/ruby/weechat-ruby.c
+++ b/src/plugins/ruby/weechat-ruby.c
@@ -595,11 +595,12 @@ weechat_ruby_load (const char *filename)
err = rb_gv_get("$!");
weechat_ruby_print_exception(err);
- if (ruby_current_script != NULL)
+ if (ruby_current_script)
{
plugin_script_remove (weechat_ruby_plugin,
&ruby_scripts, &last_ruby_script,
ruby_current_script);
+ ruby_current_script = NULL;
}
return 0;
diff --git a/src/plugins/tcl/weechat-tcl.c b/src/plugins/tcl/weechat-tcl.c
index d0b557c26..0bb1bb50f 100644
--- a/src/plugins/tcl/weechat-tcl.c
+++ b/src/plugins/tcl/weechat-tcl.c
@@ -339,8 +339,17 @@ weechat_tcl_load (const char *filename)
"parsing file \"%s\": %s"),
weechat_prefix ("error"), TCL_PLUGIN_NAME, filename,
Tcl_GetStringFromObj (Tcl_GetObjResult (interp), &i));
- /* this OK, maybe "register" was called, so not return */
- /* return 0; */
+
+ /* if script was registered, remove it from list */
+ if (tcl_current_script)
+ {
+ plugin_script_remove (weechat_tcl_plugin,
+ &tcl_scripts, &last_tcl_script,
+ tcl_current_script);
+ tcl_current_script = NULL;
+ }
+
+ return 0;
}
if (!tcl_registered_script)