• exec/load/sbbsdefs.js src

    From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Monday, December 08, 2025 22:16:00
    https://gitlab.synchro.net/main/sbbs/-/commit/ccca2f77b2ee67b884258918
    Modified Files:
    exec/load/sbbsdefs.js src/sbbs3/answer.cpp chat.cpp con_out.cpp getkey.cpp getstr.cpp login.cpp logon.cpp main.cpp newuser.cpp sbbsdefs.h
    Log Message:
    Clean up the sbbs_t::console (JS console.status) bit flags

    Mainly this is renaming CON_R_ECHOX to CON_PASSWORD, but also eliminating several long-unused flags.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Sunday, January 11, 2026 23:23:00
    https://gitlab.synchro.net/main/sbbs/-/commit/b530f130330756be7eab8978
    Modified Files:
    exec/load/sbbsdefs.js src/sbbs3/answer.cpp atcodes.cpp js_bbs.cpp putmsg.cpp sbbs.h sbbsdefs.h str.cpp terminal.h ver.cpp
    Log Message:
    Add/use new P_80COLS p[rint] mode flag and 80COLS @-code

    Useful for printing files that looks good in 80 cols (or less) but like ass on a super wide terminal.

    Sure, we could add P_132COLS (and associated @-code) if we need it, but most (stock Synchronet) BBS content is really geared to 80 cols. Maybe a sysop configurable "max columns" setting for a BBS where it just makes sense to cap all the width logic to something less than 256 columns or whatever crazy terminal size a user is using.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Wednesday, January 21, 2026 22:21:00
    https://gitlab.synchro.net/main/sbbs/-/commit/d0ce4d0a154670d2c08ecc0e
    Modified Files:
    exec/load/sbbsdefs.js src/sbbs3/inkey.cpp sbbsdefs.h
    Log Message:
    Add new K_EXTKEYS mode flag for use with inkey(K_CTRLKEYS)

    ... for when a script wants to get all control key input but does *not* want
    to translate its own escape sequences for extended keys (e.g. arrows, home, end, page-up/down, etc.) and doesn't want to mess with console.ctrlkey_passthru.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Sunday, January 25, 2026 15:20:00
    https://gitlab.synchro.net/main/sbbs/-/commit/8ee8c039642dbc3051963d74
    Modified Files:
    exec/load/sbbsdefs.js src/sbbs3/inkey.cpp sbbsdefs.h
    Log Message:
    Change of K_EXTKEYS to be used exclusive to (not used with) K_CTRLKEYS

    This allows a script that relies on K_EXTKEYS (e.g. utopia.js) to still work with older SBBS (e.g. v3.20) - yeah, the global hot keys (e.g. Ctrl-T/U/P, etc.) will mess up the display, but that's better than not having arrow key support.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Saturday, August 29, 2026 11:18:00
    https://gitlab.synchro.net/main/sbbs/-/commit/a680d770bb14ae36abc852e5
    Modified Files:
    exec/load/sbbsdefs.js src/sbbs3/sbbs.h sbbsdefs.h src/sbbs3/scfg/scfgxtrn.c src/sbbs3/xtrn.cpp xtrn_sec.cpp
    Log Message:
    Add BBSDEV.DRP door drop-file support

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian L@VERT to Git commit to main/sbbs/m on Friday, September 18, 2026 23:15:00
    https://gitlab.synchro.net/main/sbbs/-/commit/a4969b0bef2cba8c20a9c063
    Modified Files:
    exec/load/sbbsdefs.js src/sbbs3/inkey.cpp js_xtrn_area.cpp sbbsdefs.h src/sbbs3/scfg/scfgxtrn.c src/sbbs3/scfglib2.c writemsg.cpp xtrn_sec.cpp xtrn/3rdp-install/bigwinslotto.ini bre.ini carlton-blackjack.ini carlton-crazy8.ini carlton-doormania.ini carlton-fleethunter.ini carlton-litecar.ini carlton-milleborne.ini carlton-minezone.ini carlton-navgrid.ini carlton-plinko.ini carlton-rockin.ini carlton-scavenger.ini carlton-urges.ini carlton-wordguess.ini dalton-adgt.ini dalton-camptown.ini dalton-deathbytrivia.ini dalton-escape.ini dalton-goc.ini dalton-gruntfest.ini dalton-risepower.ini dalton-shipline.ini dalton-tfbroadside.ini dalton-warfreight.ini disoft-futurerunner.ini disoft-islandempires.ini disoft-nuclearwar.ini disoft-rebelkingdom.ini disoft-wordmix.ini dragonshoard.ini dreamware-aceydeucy.ini dreamware-battleship.ini dreamware-blackjackdice.ini dreamware-boxdice.ini dreamware-cardsharks.ini dreamware-chomper.ini dreamware-dreamcraps.ini dreamware-dreamhang.ini dreamware-dreammatch.ini dreamware-dreamshuffle.ini dreamware-dreamslots.ini dreamware-dreamstacks.ini dreamware-dreamstakes.ini dreamware-dreamtrack.ini dreamware-jot.ini dreamware-lightsout.ini dreamware-othello.ini dreamware-potofgold.ini dreamware-pressit.ini dreamware-simonsez.ini dreamware-targetdice.ini dreamware-yahtzee.ini exdx-empireatwar.ini exdx-railroadempires.ini exdx-riverboatblackjack.ini exdx-romansatwar.ini exdx-spaceforcecommander.ini exitilus.ini foodfite-rigormortis.ini foodfite-wilson.ini gutterbowl32.ini ironwar.ini jibben-boxcars.ini jibben-galacticoverlord.ini jibben-minesofgorr.ini jibben-rollthebones.ini jns-amazingmemory.ini jns-bombsquad.ini jns-boxedpoker.ini jns-doublesolitree.ini jns-fivecarddrawpoker.js.ini jns-fortythievessolitaire.ini jns-freecellsolitaire.ini jns-golfsolitaire.ini jns-greatwhitecard.ini jns-idiotsdelight.ini jns-inbetween.ini jns-kingslast.ini jns-matchtwo.ini jns-montanasolitaire.ini jns-ontheedge.ini jns-pressyourluck.ini jns-quotefall.ini jns-slidersolitaire.ini jns-solitree.ini jns-strikesandspares.ini jns-theelminator.ini jns-thepuzzlemachine.ini jns-threeshuffles.ini jns-trapper.ini jns-treasuretrove.ini jns-tripeakssolitaire.ini jns-twocardpoker.ini jns-yacht.ini latenight-civilwar.ini latenight-civilwar48.ini latenight-darkcastle.ini latenight-superrig.ini latenight-triviamaster.ini lore.ini mycroft-adventuressherlockholmes.ini mycroft-fictiousstockexchange.ini mycroft-stellarquest.ini mycroft-uboat.ini netrunner.ini overkill.ini sunrise-3pairpok.ini sunrise-4corners.ini sunrise-aceydeucey.ini sunrise-atlantis.ini sunrise-baseballdice.ini sunrise-betsyross.ini sunrise-blackjack.ini sunrise-boxdice.ini sunrise-boxpoker.ini sunrise-chainreaction.ini sunrise-colonies.ini sunrise-concentration.ini sunrise-cribbage.ini sunrise-crypto.ini sunrise-dominoes.ini sunrise-ganglandwars.ini sunrise-groandice.ini sunrise-hackarama.ini sunrise-hexxwars.ini sunrise-hilo.ini sunrise-hiroll.ini sunrise-keno.ini sunrise-laddersdice.ini sunrise-legendsofole.ini sunrise-lettermatch.ini sunrise-lostinspace.ini sunrise-lottomania.ini sunrise-montecarlo.ini sunrise-overunder.ini sunrise-pentasim.ini sunrise-questfornora.ini sunrise-rescue.ini sunrise-rockinradio.ini sunrise-rocklandtrivia.ini sunrise-skycop.ini sunrise-stairway.ini sunrise-states.ini sunrise-sweepstakes.ini sunrise-timetravel.ini sunrise-triangle.ini sunrise-tripleyahtzee.ini sunrise-trivia.ini sunrise-virtualescape.ini sunrise-wheeloffortune.ini sunrise-wordsearch.ini sunrise-wordshuffle.ini sunrise-wordwar.ini sunrise-wordwarp.ini thepit.ini warlordsofthebalance.ini xtrn/flight_sim/install-xtrn.ini
    Log Message:
    Give every xtrn misc bit an XTRN_ prefix and document its use

    The xtrn_t.misc bit definitions in sbbsdefs.h were a mix of XTRN_-prefixed
    and bare names (MULTIUSER, REALNAME, SWAP, QUOTEALL, ...), and the bare
    ones were already exposed to JavaScript with an XTRN_ prefix. Rename the
    bare macros to match their sbbsdefs.js names, and add XTRN_KEEP_CTRL_A to sbbsdefs.js, which had no equivalent.

    Rewrite the comments for the block to say which structures and .ini
    section types (prog, editor, pager, hotkey, event) use each bit, which
    bits are passed to external() unchanged as an EX_* flag, and which bits
    are unused or free. The previous KEEP_CTRL_A comment said "Strip" for a
    flag that retains Ctrl-A codes.

    In sbbsdefs.js, rename XTRN_IO_INTS to XTRN_STDIO to match the C name,
    keeping XTRN_IO_INTS as a deprecated alias so existing install-xtrn.ini
    files that name it still evaluate.

    Remove XTRN_ANSI from the install-xtrn.ini files: the flag has no effect.
    The bit stays defined and unused, since existing xtrn.ini files may have
    it set.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net