https://gitlab.synchro.net/main/sbbs/-/commit/5fd371b1dd911a56ff029928
Modified Files:
src/syncterm/conn.c modem.c term.c
Log Message:
Fix while(kbhit()) loops spinning on stdin EOF (CIO_KEY_QUIT)
When stdin is at EOF (e.g., SSH session died), kbhit() always returns
true and getch() always returns CIO_KEY_QUIT. Five while(kbhit())
loops would spin endlessly in this state:
- conn.c, modem.c: Keyboard drain loops now detect CIO_KEY_QUIT and
break instead of discarding it forever.
- term.c: Zmodem, xmodem, and CET transfer abort checks now
unconditionally cancel on CIO_KEY_QUIT (not gated on check_exit()
return value) and break out of the drain loop.
Co-Authored-By: Claude Opus 4.6 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net