• src/conio/bitmap_con.c bitmap_con.h ciolib.c ciolib.h cterm.c

    From Deucе@VERT to Git commit to main/sbbs/master on Thu Mar 19 14:38:35 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/dbbf05a922e359202b3905e4
    Modified Files:
    src/conio/bitmap_con.c bitmap_con.h ciolib.c ciolib.h cterm.c
    Log Message:
    Add movetext_clear() to fix status bar smear during scroll (ticket 228)

    New ciolib API: movetext_clear() moves text and atomically fills the non-overlapping source area with a caller-provided vmem_cell. Handles
    the general case of up to two clear rectangles (horizontal + vertical
    strips) for diagonal moves.

    In the bitmap fast-scroll path, the exposed pixel rows are cleared
    under screenlock so the display thread never sees stale data from the
    circular buffer wrap.

    cterm_scrollup() and scrolldown() now use movetext_clear() instead of
    separate movetext() + cterm_clrblk() calls.

    Also removes memset_u32() which used a slow memcpy-per-element loop.

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

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