input: give up on the input stream only after millions of errors
This mitigates a problem seen sometimes among the Red Hat crash reports: somehow wgetch() keeps returning ERR, as if it were in nodelay mode. (I've seen this happen once after nano came out of suspension.) Using a much larger error-count value gives the user a few seconds to type something and hopefully get out of the error condition.master
parent
fc01c5a10e
commit
8d1a666dcf
|
@ -233,11 +233,11 @@ void read_keys_from(WINDOW *win)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
/* When we've failed to get a keycode over a hundred times in a row,
|
||||
/* When we've failed to get a keycode millions of times in a row,
|
||||
* assume our input source is gone and die gracefully. We could
|
||||
* check if errno is set to EIO ("Input/output error") and die in
|
||||
* that case, but it's not always set properly. Argh. */
|
||||
if (input == ERR && ++errcount == 123)
|
||||
if (input == ERR && ++errcount == 12345678)
|
||||
die(_("Too many errors from stdin\n"));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue