• src/doors/syncduke/syncduke_node.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Jul 1 23:24:33 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/93195bf74451dfadf0de6752
    Modified Files:
    src/doors/syncduke/syncduke_node.c
    Log Message:
    syncduke: show incoming inter-node messages in-game

    Implement syncduke_node_recv() to poll ~1 Hz for Synchronet inter-node messages,
    strip Ctrl-A/BEL codes, fold whitespace, word-wrap verbatim into the banner overlay, and ring the bell for audible alert. Integrates with the existing banner infrastructure (Tasks 1-3) via banner_set() and the display tier infrastructure. Uses syncduke_clock_ms() for consistent millisecond clock.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Jul 1 23:24:33 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d1470e9168d5138953a8d5a6
    Modified Files:
    src/doors/syncduke/syncduke_node.c
    Log Message:
    syncduke: fix banner-draw stack over-read on wide terminals

    syncduke_node_draw padded the text to `cols` (up to 128) with %-*.*s; on a terminal wider than ~106 columns the formatted line plus escape bytes exceeded the 128-byte stack buffer, so snprintf truncated but returned the full intended length and syncduke_out_put then memcpy'd that many bytes -- reading past the buffer and shipping stack garbage (and cutting the SGR reset, leaving the terminal white-on-red). Switch to SyncDOOM's draw_page_overlay pattern: erase- to-EOL (\x1b[K) fills the strip to the true terminal edge with a bounded byte count, independent of `cols`. Fixes the over-read and the wide-terminal under- fill in one change.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

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