Since I ran into this bug again today, and since it hasn't been touched in the 5 years since I reported it, I thought I would just add the code to program around it, for those people who come here with the same problem (if there are such people).
replace #include <termio.h> struct termio sgbuf; ioctl(f, TCGETA, (char*)&sgbuf)
with #include <termios.h> struct termios sgbuf; tcgetattr(f, &sgbuf)
Since I ran into this bug again today, and since it hasn't been touched in the 5 years since I reported it, I thought I would just add the code to program around it, for those people who come here with the same problem (if there are such people).
replace
#include <termio.h>
struct termio sgbuf;
ioctl(f, TCGETA, (char*)&sgbuf)
with
#include <termios.h>
struct termios sgbuf;
tcgetattr(f, &sgbuf)