https://gitlab.synchro.net/main/sbbs/-/commit/5bffab544f4fb52d66e4cf4a
Modified Files:
src/conio/bitmap_con.c
Log Message:
Fix a handful of subtle bugs caught running the terminal test...
1) bitmap_draw_from_vmem() had some math wrong, which could result
in a frame or two of the screen being drawn split. This was visible
as a flash of the status bar being in the middle of the screen.
2) With the update to a rwlock, the force parameter to update_from_vmem()
NEEDS to ensure a redraw is done for consistency. While eventual
consisency is fine for most cases, getting the checksum of a region
strictly requires the region is fully updated first.
3) vstat was being written in two cases with the read lock held...
one was when resetting the "changed" flag to false during an
update, and the other was when adjusting the reveal bit in prestel
mode.
4) bitmap_movetext() and the corresponding bitmap_movetext_screen()
almost certainly had a bug in them. They basically did the exact
same thing, just one to the vmem and the other to the screen data.
How they went about that however was wildly different. Rewrote
most of these functions so they re-use calculations and don't
both do hard-to-understand math.
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net