• src/syncterm/scripts/auto/connected/transfer_app.wren src/syncterm/scr

    From Deucе@VERT to Git commit to main/sbbs/master on Thursday, May 07, 2026 16:09:49
    https://gitlab.synchro.net/main/sbbs/-/commit/f20886b395b1c6fe878bae55
    Added Files:
    src/syncterm/scripts/auto/connected/transfer_app.wren src/syncterm/scripts/ui_logview.wren ui_logview_test.wren ui_progress.wren ui_progress_test.wren src/syncterm/wren_bind_xfer.c wren_bind_xfer.h
    Modified Files:
    src/syncterm/CMakeLists.txt GNUmakefile Wren.adoc src/syncterm/scripts/syncterm.wren ui_demo.wren ui_style.wren wrentest.wren src/syncterm/term.c wren_bind.c wren_host.c
    Log Message:
    SyncTERM: move transfer-window UI to Wren

    Replace the C-side draw_transfer_window/transfer_complete plumbing
    and the per-protocol cprintf progress callbacks with a Wren
    TransferApp driven by a worker thread + bounded mailbox. C side
    runs each protocol on its own thread and pushes pre-formatted
    status lines through xfer_tick_lock/get/unlock; the main thread
    stays in TransferApp's modal loop, which composes ProgressBar and
    LogView widgets.

    Worker-to-main marshalling covers the two thread-unsafe UI paths: duplicate-file resolution and the YMODEM->XMODEM filename prompt
    fallback. All six protocol entry points (zmodem recv/send/batch,
    xmodem/ymodem recv/send/batch, cet recv) now flip binary mode and
    hand off to wren_run_transfer; lputs auto-routes via the mailbox
    when xfer_session_active().

    Drops ~1100 lines of C — the legacy log_ti/progress_ti/transw_ti
    windows, ask_overwrite, the per-protocol progress functions, and
    the cputs-into-window logging path.

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

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