Author: dim
Date: Fri Sep 27 20:53:31 2019
New Revision: 352819
URL: https://svnweb.freebsd.org/changeset/base/352819

Log:
  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

Modified:
  head/usr.bin/top/top.c

Modified: head/usr.bin/top/top.c
==============================================================================
--- head/usr.bin/top/top.c      Fri Sep 27 20:20:21 2019        (r352818)
+++ head/usr.bin/top/top.c      Fri Sep 27 20:53:31 2019        (r352819)
@@ -886,12 +886,22 @@ restart:
 
                            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 */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to