From 53a29469996a5fd1478b359ff7ec94ab88a1c650 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Sat, 25 Jun 2022 21:09:59 -0700 Subject: [PATCH] Auto-detect (log) scripts/module execution as "native", not 16-bit DOS Address potential FAQ (issue #415) --- src/sbbs3/main.cpp | 5 +++-- src/sbbs3/sbbs.h | 3 +++ src/sbbs3/xtrn.cpp | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index ddba2095b9..c9a3b2aafe 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -3178,6 +3178,7 @@ void event_thread(void* arg) node.status=NODE_EVENT_RUNNING; sbbs->putnodedat(sbbs->cfg.event[i]->node,&node); } + const char* cmd = sbbs->cfg.event[i]->cmd; int ex_mode = EX_OFFLINE; if(!(sbbs->cfg.event[i]->misc&EVENT_EXCL) && sbbs->cfg.event[i]->misc&EX_BG) @@ -3188,13 +3189,13 @@ void event_thread(void* arg) sbbs->online=ON_LOCAL; sbbs->console|=CON_L_ECHO; sbbs->lprintf(LOG_INFO,"Running %s%stimed event: %s" - ,(ex_mode&EX_NATIVE) ? "native ":"16-bit DOS " + ,native_executable(&sbbs->cfg, cmd, ex_mode) ? "native ":"16-bit DOS " ,(ex_mode&EX_BG) ? "background ":"" ,event_code); { int result= sbbs->external( - sbbs->cmdstr(sbbs->cfg.event[i]->cmd,nulstr,sbbs->cfg.event[i]->dir,NULL) + sbbs->cmdstr(cmd,nulstr,sbbs->cfg.event[i]->dir,NULL) ,ex_mode ,sbbs->cfg.event[i]->dir); if(!(ex_mode&EX_BG)) diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 61cc7b49be..aa6fd56e92 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -1251,6 +1251,9 @@ extern "C" { /* con_out.cpp */ unsigned char cp437_to_petscii(unsigned char); + /* xtrn.cpp */ + bool native_executable(scfg_t*, const char* cmdline, long mode); + #ifdef JAVASCRIPT typedef struct { diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp index e5a64d400f..c762d0bfb6 100644 --- a/src/sbbs3/xtrn.cpp +++ b/src/sbbs3/xtrn.cpp @@ -218,7 +218,7 @@ static void petscii_convert(BYTE* buf, ulong len) } } -static bool native_executable(scfg_t* cfg, const char* cmdline, long mode) +bool native_executable(scfg_t* cfg, const char* cmdline, long mode) { char* p; char str[MAX_PATH+1]; -- GitLab