+static long
+parse_dur(char *s)
+{
+ long n;
+ char *end;
+
+ errno = 0;
+ n = strtol(s, &end, 10);
+ if (errno) {
+ perror("strtol");
+ exit(1);
+ }
+ if (n < 0) {
+ fprintf(stderr, "negative duration\n");
+ exit(1);
+ }
+ switch (*end) {
+ case 'm': n *= 60; break;
+ case 'h': n *= 60*60; break;
+ case 'd': n *= 24*60*60; break;
+ case 0: break;
+ default:
+ fprintf(stderr, "junk after duration: %s\n", end);
+ exit(1);
+ }
+ return n;
+}
+