mirror of
https://github.com/weechat/weechat.git
synced 2026-06-25 20:36:38 +02:00
fix the possibility to load a perl script even if it doesn't call register() function
This commit is contained in:
@@ -2331,7 +2331,7 @@ weechat_lua_load (t_weechat_plugin *plugin, char *filename)
|
||||
plugin->print_server (plugin,
|
||||
"Lua warning: unable to redirect stdout and stderr");
|
||||
|
||||
lua_current_script_filename = strdup (filename);
|
||||
lua_current_script_filename = filename;
|
||||
|
||||
if (luaL_loadfile (lua_current_interpreter, filename) != 0)
|
||||
{
|
||||
@@ -2363,9 +2363,7 @@ weechat_lua_load (t_weechat_plugin *plugin, char *filename)
|
||||
weechat_script_remove (plugin, &lua_scripts, lua_current_script);
|
||||
return 0;
|
||||
}
|
||||
|
||||
fclose (fp);
|
||||
free (lua_current_script_filename);
|
||||
|
||||
if (lua_current_script == NULL)
|
||||
{
|
||||
|
||||
@@ -145,7 +145,9 @@ weechat_perl_exec (t_weechat_plugin *plugin,
|
||||
SAVETMPS;
|
||||
PUSHMARK(sp);
|
||||
|
||||
perl_current_script = script;
|
||||
/* are we loading the script file ? */
|
||||
if (strcmp (function, "weechat_perl_load_eval_file") != 0)
|
||||
perl_current_script = script;
|
||||
|
||||
if (arg1)
|
||||
{
|
||||
@@ -1980,7 +1982,7 @@ weechat_perl_load (t_weechat_plugin *plugin, char *filename)
|
||||
return 0;
|
||||
}
|
||||
|
||||
perl_current_script_filename = strdup (filename);
|
||||
perl_current_script_filename = filename;
|
||||
|
||||
PERL_SET_CONTEXT (perl_current_interpreter);
|
||||
perl_construct (perl_current_interpreter);
|
||||
@@ -1991,9 +1993,6 @@ weechat_perl_load (t_weechat_plugin *plugin, char *filename)
|
||||
eval = weechat_perl_exec (plugin, &tempscript,
|
||||
SCRIPT_EXEC_INT,
|
||||
"weechat_perl_load_eval_file", filename, "", "");
|
||||
|
||||
free (perl_current_script_filename);
|
||||
|
||||
#endif
|
||||
if (eval == NULL)
|
||||
{
|
||||
|
||||
@@ -2053,8 +2053,8 @@ weechat_python_load (t_weechat_plugin *plugin, char *filename)
|
||||
plugin->print_server (plugin,
|
||||
"Python warning: unable to redirect stderr");
|
||||
}
|
||||
|
||||
python_current_script_filename = strdup (filename);
|
||||
|
||||
python_current_script_filename = filename;
|
||||
|
||||
if (PyRun_SimpleFile (fp, filename) != 0)
|
||||
{
|
||||
@@ -2077,7 +2077,6 @@ weechat_python_load (t_weechat_plugin *plugin, char *filename)
|
||||
if (PyErr_Occurred ()) PyErr_Print ();
|
||||
|
||||
fclose (fp);
|
||||
free (python_current_script_filename);
|
||||
|
||||
if (python_current_script == NULL)
|
||||
{
|
||||
|
||||
@@ -2179,13 +2179,11 @@ weechat_ruby_load (t_weechat_plugin *plugin, char *filename)
|
||||
|
||||
curModule = rb_define_module(modname);
|
||||
|
||||
ruby_current_script_filename = strdup (filename);
|
||||
ruby_current_script_filename = filename;
|
||||
|
||||
ruby_retcode = rb_protect_funcall (curModule, rb_intern("load_eval_file"),
|
||||
&ruby_error, 1, rb_str_new2(filename));
|
||||
|
||||
free (ruby_current_script_filename);
|
||||
|
||||
if (ruby_retcode == Qnil) {
|
||||
err = rb_inspect(rb_gv_get("$!"));
|
||||
ruby_plugin->print_server (ruby_plugin, "Ruby error: \"%s\"", STR2CSTR(err));
|
||||
|
||||
Reference in New Issue
Block a user