fixed sleep
This commit is contained in:
parent
1a7b13daf2
commit
f4a4fbb8b0
|
@ -5,21 +5,25 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "duration.h"
|
#include "duration.h"
|
||||||
|
|
||||||
int main(const int argc, const char **argv) {
|
int main(int argc, char **argv) {
|
||||||
if (argc == 1 || !strcmp(argv[argc - 1], "--help")) {
|
|
||||||
printf("sleep [num[m - minute / h - hour / d - days]] / [inf infinity]\n");
|
int opt;
|
||||||
|
while ((opt = getopt(argc, argv, "")) != -1 || argc == 1) {
|
||||||
|
printf("sleep [num[SUFFIX]] or [inf Infinity]\nSUFFIXES:\n\tm - minute\n\th - hour\n\td - days\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strncasecmp(argv[1], "inf", 3))
|
argv += optind;
|
||||||
for (;;)
|
argc -= optind;
|
||||||
|
|
||||||
|
if (!strncasecmp(argv[0], "inf", 3))
|
||||||
|
while (1)
|
||||||
sleep(INT_MAX);
|
sleep(INT_MAX);
|
||||||
|
|
||||||
unsigned long long sec = 0;
|
unsigned long long usec = 0;
|
||||||
|
for (int i = 0; i < argc; i++)
|
||||||
|
usec += mu_parse_duration(argv[i]);
|
||||||
|
|
||||||
for (int i = 1; i < argc; i++)
|
usleep(usec);
|
||||||
sec += mu_parse_duration(argv[i]);
|
|
||||||
|
|
||||||
usleep(sec);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue