• src/conio/bitmap_con.c

    From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Mar 17 00:41:05 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e0b825c458da099f74f1fc6d
    Modified Files:
    src/conio/bitmap_con.c
    Log Message:
    Pre-compute Prestel double-height row states once per frame

    calc_charstate() was scanning all rows 0..ypos-1 for every cell to
    determine top/bottom double-height status, making full redraws
    O(rows^2 * cols). Pre-compute the row state array once in
    update_from_vmem() and pass it through the call chain. Callers from bitmap_setpixel/setpixels pass NULL to retain the existing per-cell
    scan (always single-cell, so the old path is fine).

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Mar 17 10:47:28 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/070cbc5c3dc94166d5f5a667
    Modified Files:
    src/conio/bitmap_con.c
    Log Message:
    Remove TODO comment... yes, we do.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Mar 17 11:59:17 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/14f279ca37de873b6fb75317
    Modified Files:
    src/conio/bitmap_con.c
    Log Message:
    Hold vstat_chlock when setting vmem->changed in blinker thread

    Every other write to vmem->changed holds vstat_chlock; this was the
    sole exception. The wrlock on vstatlock already prevented concurrent
    access in practice, but this makes the locking protocol consistent
    and is not in a hot path. (Coverity CID 644904)

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Mar 21 10:14:19 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c7ed5d30673a1a4c595ba916
    Modified Files:
    src/conio/bitmap_con.c
    Log Message:
    Add a dotted underline on the bottom cell row for OCS 8

    Makes hyperlinks more discoverable.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Mar 21 17:58:42 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d7f9da7d45ee2d342f2b7328
    Modified Files:
    src/conio/bitmap_con.c
    Log Message:
    Initialize hyperlink_id for initial window

    Reported at Kampfire.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Apr 2 23:56:26 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/dc7a1772724dceba49502355
    Modified Files:
    src/conio/bitmap_con.c
    Log Message:
    Clear "gap rows" when pixel scrolling

    Previously, when EGA 43-row modes scrolled, the top line was partially
    copied to the bottom of the screen and never cleared.

    This was part of the optimization that made the screen buffer into
    a ring buffer instead of linear.

    Fixes ticket 228.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Apr 3 08:52:32 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/01b5228eeb0dc363b8e4155e
    Modified Files:
    src/conio/bitmap_con.c
    Log Message:
    When forcing a font, add a default

    It's forced, force it.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sun Apr 12 19:48:59 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/5fdfaf77ce0e2771206ade48
    Modified Files:
    src/conio/bitmap_con.c
    Log Message:
    Always force cursor when setting it.

    Previously disabling the cursor didn't force it, so it would stay
    on the screen in the last state until the frame changed.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)