diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index 84d9d303b8f2370921df1509af4843fc54d6df5b..fd4fd8d56680773d00c4fe405323ce11eb1653fd 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -715,15 +715,17 @@ long js_exec(const char *fname, char** args) long double diff; if(fname!=NULL) { - if(strcspn(fname,"/\\")==strlen(fname)) { + if(isfullpath(fname)) { + SAFECOPY(path,fname); + } + else { SAFEPRINTF3(path,"%s%s%s",orig_cwd,fname,js_ext(fname)); if(!fexistcase(path)) { SAFEPRINTF3(path,"%s%s%s",scfg.mods_dir,fname,js_ext(fname)); if(scfg.mods_dir[0]==0 || !fexistcase(path)) SAFEPRINTF3(path,"%s%s%s",scfg.exec_dir,fname,js_ext(fname)); } - } else - SAFECOPY(path,fname); + } if(!fexistcase(path)) { lprintf(LOG_ERR,"!Module file (%s) doesn't exist",path);