From 101100e11701ed4d300fede4e97e7a6a15fd0fb6 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 19 Mar 2010 01:40:22 +0000 Subject: [PATCH] When executing a modulename without a specified path, search first in the current working directory, then mods, then exec dirs. --- src/sbbs3/jsexec.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index 4b1be33115..484fe0e6b4 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]=='-') { -- GitLab