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;
}
}