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

/SCRIPT LOAD modifies the script name so that all non-alphanumeric

characters are translated to '_' char .. now this behaviour is done also
when /SCRIPT UNLOAD is done, so people don't get confused why their "test-1"
script can't be unloaded.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2145 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2001-11-25 16:17:44 +00:00 committed by cras
parent ed4d24b282
commit ba445fe37e
3 changed files with 17 additions and 6 deletions

View File

@ -165,11 +165,11 @@ void perl_scripts_deinit(void)
my_perl = NULL; my_perl = NULL;
} }
static char *script_file_get_name(const char *path) /* Modify the script name so that all non-alphanumeric characters are
translated to '_' */
void script_fix_name(char *name)
{ {
char *name, *ret, *p; char *ret, *p;
ret = name = g_strdup(g_basename(path));
p = strrchr(name, '.'); p = strrchr(name, '.');
if (p != NULL) *p = '\0'; if (p != NULL) *p = '\0';
@ -179,8 +179,15 @@ static char *script_file_get_name(const char *path)
*name = '_'; *name = '_';
name++; name++;
} }
}
return ret; static char *script_file_get_name(const char *path)
{
char *name;
name = g_strdup(g_basename(path));
script_fix_name(name);
return name;
} }
static char *script_data_get_name(void) static char *script_data_get_name(void)

View File

@ -31,6 +31,9 @@ PERL_SCRIPT_REC *perl_script_find_package(const char *package);
/* Returns full path for the script */ /* Returns full path for the script */
char *perl_script_get_path(const char *name); char *perl_script_get_path(const char *name);
/* Modify the script name so that all non-alphanumeric characters are
translated to '_' */
void script_fix_name(char *name);
/* If core should handle printing script errors */ /* If core should handle printing script errors */
void perl_core_print_script_error(int print); void perl_core_print_script_error(int print);

View File

@ -104,10 +104,11 @@ static void cmd_script_unload(const char *data)
if (*name == '\0') if (*name == '\0')
cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
script_fix_name(name);
script = perl_script_find(name); script = perl_script_find(name);
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, name);
} else { } else {
printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
TXT_SCRIPT_UNLOADED, script->name); TXT_SCRIPT_UNLOADED, script->name);