• src/syncterm/Wren.adoc te

    From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, April 28, 2026 06:00:00
    https://gitlab.synchro.net/main/sbbs/-/commit/bfeca552699312ed6a0e11e5
    Modified Files:
    src/syncterm/Wren.adoc term.c
    Log Message:
    SyncTERM: fire Hook.onInput on the raw wire stream, pre-parse_rip

    Previously the input hook fired well downstream Ä after parse_rip,
    ZMODEM detection, and OOII processing Ä which meant scripts never
    saw the bytes those layers had already consumed. In RIP mode, the
    hook saw essentially nothing.

    Move the dispatch into recv_bytes(), right after conn_recv_upto and
    before parse_rip, and compact dropped bytes out of the buffer in
    place. Scripts now see every byte off the wire and can intercept
    them before any framing layer. Gated on wren_host_active() so the
    no-scripts path stays a single global bool check, no per-byte
    function-call overhead.

    Speed emulation does not apply: parse_rip already bypasses speed
    gating in bulk, so gating only the Wren hook would be inconsistent.

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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sunday, July 19, 2026 13:28:00
    https://gitlab.synchro.net/main/sbbs/-/commit/8d3edb02e8b2ce4c3853914b
    Modified Files:
    src/syncterm/Wren.adoc term.c term.h wren_bind_screen.c wren_menu_host.c
    Log Message:
    wren: restore full-screen drag selection

    UIFC handled menu drag selection with its own full-screen copier. The
    Wren migration instead routed UI drags through the connected-terminal
    selector, whose dimensions are unset before the first connection.

    Refactor the selector around explicit screen bounds. Keep a terminal
    entry point for connected sessions and route Input.mousedrag() through a full-screen entry point derived from the current conio dimensions. This
    also removes the unused scrollback argument and a dead screen buffer.

    Set the text-selection pointer when entering the menu, matching UIFC's
    mouse initialization, and document the Wren binding's screen scope.

    Co-Authored-By: OpenAI Codex <noreply@openai.com>

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