diff --git a/io.c b/io.c index 68956e1..820df15 100644 --- a/io.c +++ b/io.c @@ -134,7 +134,7 @@ const char * get_tty_line( int * const sizep ) { static char * buf = 0; static int bufsz = 0; - int i = 0, oi = -1; + int i = 0;
while( true ) { @@ -149,8 +149,9 @@ const char * get_tty_line( int * const sizep ) } else { - clearerr( stdin ); if( i != oi ) { oi = i; continue; } - if( i ) buf[i] = 0; if( sizep ) *sizep = i; + clearerr( stdin ); + /* when possible, it's better to put a null character */ + if( bufsz > i ) buf[i] = 0; if( sizep ) *sizep = i; return buf; } }
_______________________________________________ bug-ed mailing list bug-ed@gnu.org https://lists.gnu.org/mailman/listinfo/bug-ed