• src/syncterm/term.c

    From Deuc¿@VERT to Git commit to main/sbbs/master on Sun Apr 12 19:48:59 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/33be28c669f273ac2ad7c0e8
    Modified Files:
    src/syncterm/term.c
    Log Message:
    RIP mode implies LCF mode.

    ---
    þ 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 Mon Apr 13 21:30:27 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/9242ad71e6419b0b95d9ce05
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Log a message about JEPG-XL library load failure or success

    ---
    þ 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 Mon Apr 13 21:32:45 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/ac38afebf1ab72ad68087b8b
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Fix typo in JPEG-XL lib load failure log message

    ---
    þ 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 Mon Apr 13 21:47:39 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/df4decd8f4b2d3e533f2bfe6
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Create/use new logmsg() function for the JPEG-XL load library log messages

    lprintf/lputs() may write to the screen, so don't use them for this purpose.

    Deleted the Win32 OutputDebugString block since it was #ifdef'd out anyway.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Apr 20 10:33:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/0df1dbb7a7fe58def3731ac5
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Move hangup handing into helper function

    This enables splitting key handing into pre/post CTerm processing.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Apr 20 10:33:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/0f163cedfd53e8c662123a62
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Fix doorway mode

    We have a small number of controls that are ALWAYS available in
    SyncTERM. These are checked before cterm_encode_key().

    The rest are only checked if cterm_encode_key() didn't send anything.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Apr 23 18:36:01 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/93f9184e28878700f6b175af
    Modified Files:
    src/syncterm/term.c
    Log Message:
    SyncTERM: include modifier keys in mouse reports

    fill_mevent() ignored mouse_event.kbmodifiers, so Shift/Ctrl/Alt chords
    on the mouse always arrived at the host with the modifier bits cleared. BBS-side code could not distinguish Ctrl+Click from a plain click.

    Map CIOLIB_KMOD_SHIFT/ALT/CTRL to xterm's Cb modifier bits (4/8/16) and
    OR them into the reported button code for both legacy (CSI M) and SGR
    (CSI <) reporting. X10 compatibility mode (DECSET 9) is press-only and button-bits-only per spec, so modifiers are suppressed there.

    In the legacy branch the OR happens after the "release -> button = 3"
    clamp, so release events still carry modifiers. The modifier bits
    (4/8/16) do not collide with the existing +61/+121 high-button offsets
    or the +32 motion bit.

    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/master on Fri Apr 24 23:12:39 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e8f12ae5ea662c60c31d1dea
    Modified Files:
    src/syncterm/term.c
    Log Message:
    syncterm: guard SFTP UI calls in term.c with WITHOUT_DEUCESSH

    term.c referenced sftp_browser_run, sftp_degraded_run,
    sftp_queue_activity, and sftp_queue_screen_run unconditionally, but
    their .c files (sftp_browser.c, sftp_degraded.c, sftp_queue.c, sftp_queue_screen.c) are gated behind NOT WITHOUT_DEUCESSH in CMakeLists.txt:319. When the MSVC builder auto-flips WITHOUT_DEUCESSH
    ON (vendored Botan unavailable), the link fails with four LNK2019s.
    Wrap the four call sites and the four sftp_*.h includes in
    #ifndef WITHOUT_DEUCESSH, matching the pattern used in syncterm.c,
    conn.c, and bbslist.c.

    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/master on Fri Apr 24 23:19:17 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/fc9b42001112bdca45726087
    Modified Files:
    src/syncterm/term.c
    Log Message:
    syncterm: hoist sftp_up/dn_active out of WITHOUT_DEUCESSH guard

    term.c references sftp_up_active / sftp_dn_active again at the col-28/29 status-bar update (lines 581/591), outside the activity-poll block that e8f12ae5ea wrapped in #ifndef WITHOUT_DEUCESSH. Move the declarations
    above the guard so the variables are still in scope (and zero, so the
    status bar shows idle) when SSH is compiled out.

    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/master on Mon Apr 27 07:32:51 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/82f672dacffa7852f5997ea2
    Modified Files:
    src/syncterm/term.c
    Log Message:
    I meant , not 

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sun Jun 7 22:31:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a44a81fca9fe696ff5fac317
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Fix reading of PBM P4 files

    If the width is not a multiple of eight, ignore the last padding bits
    at the end of each line.

    But really, there's no reason to create a PBM where the width isn't
    a multiple of eight.

    Fixes issue reported by DigitalMan on Discord

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Jun 19 18:41:38 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/1867df03936a69dfd5dfe1dd
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Fix big in parsing binary PBM/PPMs

    Only a single whitespace is allowed between the header and the raster
    data.

    While we're here, remove some unused variables.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Jun 26 10:16:48 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/8e92a64682904c7f3210751a
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Actually hook up lf_expand

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Jul 13 14:04:41 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/bc7374d01c25c85883f9f521
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Fix SGR pixel mouse coordinate origin

    DECSET 1016 reports one-based pixel coordinates, but the conversion
    from ciolib's zero-based high-resolution mouse position subtracted the one-based cterm origin directly. This removed one full character cell
    from each axis and could report zero or negative coordinates near the
    top or left edge.

    Use the zero-based pixel origin implied by the one-based cterm cell
    origin instead, and treat high-resolution coordinates as present only
    when both axes are non-negative. This keeps valid zero-valued pixels
    from being mistaken for missing data while preserving the text-coordinate fallback for backends that do not provide pixel positions.

    Fixes SourceForge ticket 267.

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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Jul 24 11:04:33 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7877652a0c218228a7bac7a0
    Modified Files:
    src/syncterm/term.c
    Log Message:
    Discard stale transfer handshakes

    Remote transfer programs repeat their readiness request while the user navigates SyncTERM's protocol and file menus. Feeding every queued
    request to the protocol adds an avoidable handshake round trip for each
    stale copy before a transfer can begin.

    Drain all receive-buffer layers through the normal decoded input path
    before starting a transfer, then replay the suffix beginning with the
    newest applicable request. Retain ZRINIT for ZMODEM uploads, ZRQINIT
    for ZMODEM downloads, and repeated NAK, C, or G requests for X/YMODEM
    uploads. Leave queues without a recognized request unchanged and avoid trimming protocols without an unambiguous inbound marker.

    Account for replayed input in the receive helpers and reset the
    additional staging state between sessions. Verify with a clean debug
    build and all 67 SyncTERM terminal tests.

    Refs SyncTERM ticket 271

    Co-authored-by: OpenAI Codex <noreply@openai.com>

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