• src/conio/curs_cio.c

    From Deuc¿@VERT to Git commit to main/sbbs/m on Monday, February 23, 2026 10:46:00
    https://gitlab.synchro.net/main/sbbs/-/commit/4ad3ae9d92a17f3a8985683e
    Modified Files:
    src/conio/curs_cio.c
    Log Message:
    Fix curses kbhit() to only return true when ready to read

    Previously, an error in select() would also return true.
    May be part of the issue seen in ticket 216.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sunday, March 15, 2026 14:09:00
    https://gitlab.synchro.net/main/sbbs/-/commit/f3860da8dc297cbd766a4200
    Modified Files:
    src/conio/curs_cio.c
    Log Message:
    Fix F11/F12 scancodes in curs_cio.c

    F11 and F12 were using 0x57/0x58 (INT 16h physical scancodes)
    instead of 0x85/0x86 (BIOS extended scancodes) as used by every
    other backend and defined by CIO_KEY_F(11)/CIO_KEY_F(12).

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 18, 2026 21:52:00
    https://gitlab.synchro.net/main/sbbs/-/commit/317f26995eb17ffa4bde55a1
    Modified Files:
    src/conio/curs_cio.c
    Log Message:
    Fix curses CPU spin when PTY is deleted (ticket #216)

    When a ttyd/SSH session drops and the PTY is deleted, ioctl(FIONREAD)
    returns -1/EIO instead of 0. The EOF detection in curs_getch() only
    checked for ioctl()==0, so the EIO case was missed and the while(get_wch()==ERR) loop spun at ~100% CPU. Treat FIONREAD failure
    as a dead fd and return CIO_KEY_QUIT immediately.

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

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