https://gitlab.synchro.net/main/sbbs/-/commit/45e2c6c9e5b64ac90f4b2728
Modified Files:
docs/v322_new.md exec/load/sbbsdefs.js src/sbbs3/logon.cpp newuser.cpp sbbsdefs.h src/sbbs3/scfg/scfg.c scfg.h scfgindex.h scfgnode.c scfgxtrn.c src/sbbs3/xtrn_sec.cpp
Log Message:
Add a "clear screen before execution" option for external programs
Some external programs clear or overwrite the user's terminal as soon as
they start. Run from a logon event, such a program can wipe text the user
has not yet read. The new XTRN_CLS online program option clears the
screen before the program is executed, using the BBS's own clear-screen
(cls), which first prompts the user to continue if there is unread
output on the screen. GitLab #1243.
The screen is cleared once the program is sure to run (all early-return
checks done) and before the drop file is written and the node status,
start time, inactivity timeout, and MQTT exec event are set, so a long
pause at the prompt affects none of them.
Logon and New User fixed events get the same option (FEVENT_CLS), along
with a pause-after-execution option (FEVENT_PAUSE). A fixed event's
settings are external() mode bits, so these use bits that external()
ignores. The other fixed events run offline and don't offer them.
In SCFG, the online program "Pause After Execution" option becomes
"Terminal Control" (None, Clear, Pause, or "Clear, Pause"), which prompts
for both settings; ESC at the first prompt skips the second. The Logon
and New User fixed event menus offer the same option. toggle_flag() now
returns the list selection so a caller can detect an abort. The fixed
event copy of the option is kept out of the search index, which cannot
tell which fixed events offer it.
scfgindex.h is regenerated, which also picks up the Msg/File Total
Interval option added in 875357a01a (2026-08-17).
Co-Authored-By: Claude Opus 5 (1M context) <
[email protected]>
---
� Synchronet � Vertrauen � Home of Synchronet � [vert/cvs/bbs].synchro.net