diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h index 50b7f2ef88a8c3c89c958374a517fe9f0a54f2fb..bb163766d4ea330235bfb6777969c92cf67e453b 100644 --- a/src/sbbs3/sbbsdefs.h +++ b/src/sbbs3/sbbsdefs.h @@ -391,6 +391,7 @@ typedef enum { /* Values for xtrn_t.event */ #define STRIPKLUDGE (1L<<15) /* Strip FTN Kludge lines from msg */ #define XTRN_CHKTIME (1<<16) /* Check time online (EX_CHKTIME) */ #define XTRN_LWRCASE (1<<17) /* Use lowercase drop-file names */ +#define XTRN_SH (1<<18) /* Use command shell to execute */ /* Bits in cfg.xtrn_misc */ #define XTRN_NO_MUTEX (1<<0) /* Do not use exec_mutex for FOSSIL VXD */ diff --git a/src/sbbs3/xtrn_sec.cpp b/src/sbbs3/xtrn_sec.cpp index a3385dd477d7dbc90d8ee65f643bda638661dd3f..cb01921b7c0ead7692c4c535a30dc8fa0ae86e8e 100644 --- a/src/sbbs3/xtrn_sec.cpp +++ b/src/sbbs3/xtrn_sec.cpp @@ -1664,7 +1664,9 @@ bool sbbs_t::exec_xtrn(uint xtrnnum) if(fexistcase(str)) remove(str); - mode=0; /* EX_SH */ + mode=0; + if(cfg.xtrn[xtrnnum]->misc&XTRN_SH) + mode|=EX_SH; if(cfg.xtrn[xtrnnum]->misc&IO_INTS) mode|=(EX_OUTR|EX_INR|EX_OUTL); if(cfg.xtrn[xtrnnum]->misc&WWIVCOLOR)