diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index 4b1be33115a74e534e67aa1cfa3f481140e958ca..484fe0e6b4d6d179f35dfe7860c1f03b513e9ee7 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -703,9 +703,12 @@ long js_exec(const char *fname, char** args) if(fname!=NULL) { if(strcspn(fname,"/\\")==strlen(fname)) { - sprintf(path,"%s%s%s",scfg.mods_dir,fname,js_ext(fname)); - if(scfg.mods_dir[0]==0 || !fexistcase(path)) - sprintf(path,"%s%s%s",scfg.exec_dir,fname,js_ext(fname)); + 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); @@ -916,6 +919,7 @@ int main(int argc, char **argv, char** environ) return(do_bail(2)); getcwd(orig_cwd, sizeof(orig_cwd)); + backslash(orig_cwd); for(argn=1;argn<argc && module==NULL;argn++) { if(argv[argn][0]=='-') {