1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-26 12:56:37 +02:00

Fix bug with callbacks when loading a script already loaded

This commit is contained in:
Sebastien Helleu
2010-03-24 00:04:00 +01:00
parent f1a946054e
commit b491cc3479
16 changed files with 42 additions and 13 deletions
+3 -1
View File
@@ -170,6 +170,7 @@ weechat_tcl_api_register (ClientData clientData, Tcl_Interp *interp, int objc,
(void) clientData;
tcl_current_script = NULL;
tcl_registered_script = NULL;
if (objc < 8)
{
@@ -205,6 +206,7 @@ weechat_tcl_api_register (ClientData clientData, Tcl_Interp *interp, int objc,
description, shutdown_func, charset);
if (tcl_current_script)
{
tcl_registered_script = tcl_current_script;
if ((weechat_tcl_plugin->debug >= 1) || !tcl_quiet)
{
weechat_printf (NULL,
@@ -218,7 +220,7 @@ weechat_tcl_api_register (ClientData clientData, Tcl_Interp *interp, int objc,
{
TCL_RETURN_ERROR;
}
TCL_RETURN_OK;
}
+4 -1
View File
@@ -46,6 +46,7 @@ int tcl_quiet = 0;
struct t_plugin_script *tcl_scripts = NULL;
struct t_plugin_script *last_tcl_script = NULL;
struct t_plugin_script *tcl_current_script = NULL;
struct t_plugin_script *tcl_registered_script = NULL;
const char *tcl_current_script_filename = NULL;
/*
@@ -181,6 +182,7 @@ weechat_tcl_load (const char *filename)
}
tcl_current_script = NULL;
tcl_registered_script = NULL;
if (!(interp = Tcl_CreateInterp ())) {
weechat_printf (NULL,
@@ -204,7 +206,7 @@ weechat_tcl_load (const char *filename)
/* return 0; */
}
if (!tcl_current_script)
if (!tcl_registered_script)
{
weechat_printf (NULL,
weechat_gettext ("%s%s: function \"register\" not "
@@ -213,6 +215,7 @@ weechat_tcl_load (const char *filename)
Tcl_DeleteInterp (interp);
return 0;
}
tcl_current_script = tcl_registered_script;
return 1;
}
+1
View File
@@ -31,6 +31,7 @@ extern int tcl_quiet;
extern struct t_plugin_script *tcl_scripts;
extern struct t_plugin_script *last_tcl_script;
extern struct t_plugin_script *tcl_current_script;
extern struct t_plugin_script *tcl_registered_script;
extern const char *tcl_current_script_filename;
extern void *weechat_tcl_exec (struct t_plugin_script *script,