diff --git a/src/sbbs3/js_internal.c b/src/sbbs3/js_internal.c index fd842f0431e1f11ef228dae59978683ae83cf2d1..934cb9d92d69f5f058dd21cfc85dae172bb25b6a 100644 --- a/src/sbbs3/js_internal.c +++ b/src/sbbs3/js_internal.c @@ -416,8 +416,18 @@ js_execfile(JSContext *cx, uintN argc, jsval *arglist) path[0] = 0; JS_RESUMEREQUEST(cx, rc); } - if (*path == '\0') - SAFECOPY(path, cmd); + if (*path == '\0') { + if (gptp->cfg->mods_dir[0] != '\0') { + snprintf(path, sizeof path, "%s%s", gptp->cfg->mods_dir, cmd); + if (!fexistcase(path)) + *path = '\0'; + } + if (*path == '\0') { + snprintf(path, sizeof path, "%s%s", gptp->cfg->exec_dir, cmd); + if (!fexistcase(path)) + SAFECOPY(path, cmd); + } + } } } free(cmd);