Allow entering fractional delays in top(1) interactive mode.

This uses the same logic as with the -s option, first validating the
entered value, then storing the result in a struct timeval.

MFC after:	3 days
X-MFC-With:	r352818
This commit is contained in:
Dimitry Andric 2019-09-27 20:53:31 +00:00
parent a6f721ece8
commit fc4ac32fa7

View File

@ -886,12 +886,22 @@ main(int argc, const char *argv[])
case CMD_delay: /* new seconds delay */
new_message(MT_standout, "Seconds to delay: ");
if ((i = readline(tempbuf1, 8, true)) > 0)
if ((i = readline(tempbuf1, 8, false)) > 0)
{
delay.tv_sec = i;
delay.tv_usec = 0;
double delay_d = strtod(tempbuf1, &nptr);
if (nptr == tempbuf1 || delay_d <= 0)
{
new_message(MT_standout, " Invalid delay");
putchar('\r');
no_command = true;
}
else
{
delay.tv_sec = delay_d;
delay.tv_usec = (delay_d - delay.tv_sec) * 1e6;
clear_message();
}
}
clear_message();
break;
case CMD_displays: /* change display count */