• src/syncterm/wren_bind.c wren_host.c wren_host_internal.h

    From Deuc¿@VERT to Git commit to main/sbbs/master on Monday, April 27, 2026 06:15:53
    https://gitlab.synchro.net/main/sbbs/-/commit/ab5117e38a0cf2cccaae008f
    Modified Files:
    src/syncterm/wren_bind.c wren_host.c wren_host_internal.h
    Log Message:
    SyncTERM: add filtered Wren hook variants (C-side match)

    Hook.onKey(key, fn), Hook.onInput(byte, fn), Hook.onMouse(event, fn)
    register a callable that fires only when the event's discriminator
    matches. The match check is in the C dispatcher: filtered entries
    whose filter != value are skipped before any Wren slot is touched, so
    the per-event hot path stays cheap.

    Filtered and unfiltered hooks share one per-event array
    (struct wren_hook_entry { fn, filter, filtered }), preserving
    registration order across both forms.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net