diff --git a/watch.c b/watch.c index 07134487..436d2135 100644 --- a/watch.c +++ b/watch.c @@ -35,10 +35,9 @@ #include "xalloc.h" #include #include -#include #include #include -#include +#include #include #include #include @@ -47,7 +46,6 @@ #include #include #include -#include #include #include #ifdef WITH_WATCH8BIT @@ -628,8 +626,8 @@ int main(int argc, char *argv[]) interval = strtod_or_err(optarg, _("failed to parse argument")); if (interval < 0.1) interval = 0.1; - if (interval > ~0u / 1000000) - interval = ~0u / 1000000; + if (interval > UINT_MAX) + interval = UINT_MAX; break; case 'p': precise_timekeeping = 1; @@ -738,7 +736,10 @@ int main(int argc, char *argv[]) if (cur_time < next_loop) usleep(next_loop - cur_time); } else - usleep(interval * 1000000); + if (interval < UINT_MAX / USECS_PER_SEC) + usleep(interval * USECS_PER_SEC); + else + sleep(interval); } endwin();