1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00

/SCRIPT FLUSH -> /SCRIPT RESET. Fixed parameter handling for /SCRIPT

LOAD & UNLOAD.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1689 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2001-07-30 13:06:21 +00:00 committed by cras
parent 82034efb11
commit fedc4dac4f

View File

@ -63,40 +63,56 @@ static void cmd_script_exec(const char *data)
static void cmd_script_load(const char *data) static void cmd_script_load(const char *data)
{ {
PERL_SCRIPT_REC *script; PERL_SCRIPT_REC *script;
char *fname; char *fname, *path;
void *free_arg;
if (!cmd_get_params(data, &free_arg, 1, &path))
return;
if (*path == '\0')
cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
fname = perl_script_get_path(data); fname = perl_script_get_path(data);
if (fname == NULL) { if (fname == NULL) {
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
TXT_SCRIPT_NOT_FOUND, data); TXT_SCRIPT_NOT_FOUND, data);
return; } else {
script = perl_script_load_file(fname);
if (script != NULL) {
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
TXT_SCRIPT_LOADED,
script->name, script->path);
}
g_free(fname);
} }
cmd_params_free(free_arg);
script = perl_script_load_file(fname);
if (script != NULL) {
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
TXT_SCRIPT_LOADED, script->name, script->path);
}
g_free(fname);
} }
static void cmd_script_unload(const char *data) static void cmd_script_unload(const char *data)
{ {
PERL_SCRIPT_REC *script; PERL_SCRIPT_REC *script;
char *name;
void *free_arg;
if (!cmd_get_params(data, &free_arg, 1, &name))
return;
if (*name == '\0')
cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
script = perl_script_find(data); script = perl_script_find(data);
if (script == NULL) { if (script == NULL) {
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
TXT_SCRIPT_NOT_LOADED, data); TXT_SCRIPT_NOT_LOADED, data);
return; } else {
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
TXT_SCRIPT_UNLOADED, script->name);
perl_script_unload(script);
} }
cmd_params_free(free_arg);
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
TXT_SCRIPT_UNLOADED, script->name);
perl_script_unload(script);
} }
static void cmd_script_flush(const char *data) static void cmd_script_reset(const char *data)
{ {
perl_scripts_deinit(); perl_scripts_deinit();
perl_scripts_init(); perl_scripts_init();
@ -207,7 +223,7 @@ void fe_perl_init(void)
command_bind("script exec", NULL, (SIGNAL_FUNC) cmd_script_exec); command_bind("script exec", NULL, (SIGNAL_FUNC) cmd_script_exec);
command_bind("script load", NULL, (SIGNAL_FUNC) cmd_script_load); command_bind("script load", NULL, (SIGNAL_FUNC) cmd_script_load);
command_bind("script unload", NULL, (SIGNAL_FUNC) cmd_script_unload); command_bind("script unload", NULL, (SIGNAL_FUNC) cmd_script_unload);
command_bind("script flush", NULL, (SIGNAL_FUNC) cmd_script_flush); command_bind("script reset", NULL, (SIGNAL_FUNC) cmd_script_reset);
command_bind("script list", NULL, (SIGNAL_FUNC) cmd_script_list); command_bind("script list", NULL, (SIGNAL_FUNC) cmd_script_list);
command_set_options("script exec", "permanent"); command_set_options("script exec", "permanent");
@ -222,7 +238,7 @@ void fe_perl_deinit(void)
command_unbind("script exec", (SIGNAL_FUNC) cmd_script_exec); command_unbind("script exec", (SIGNAL_FUNC) cmd_script_exec);
command_unbind("script load", (SIGNAL_FUNC) cmd_script_load); command_unbind("script load", (SIGNAL_FUNC) cmd_script_load);
command_unbind("script unload", (SIGNAL_FUNC) cmd_script_unload); command_unbind("script unload", (SIGNAL_FUNC) cmd_script_unload);
command_unbind("script flush", (SIGNAL_FUNC) cmd_script_flush); command_unbind("script reset", (SIGNAL_FUNC) cmd_script_reset);
command_unbind("script list", (SIGNAL_FUNC) cmd_script_list); command_unbind("script list", (SIGNAL_FUNC) cmd_script_list);
signal_remove("script error", (SIGNAL_FUNC) sig_script_error); signal_remove("script error", (SIGNAL_FUNC) sig_script_error);