static void
init_statestring(char const *str)
{
+
if (sscanf(str, "%d:%d:%d", &displayed.tm_hour,
&displayed.tm_min, &displayed.tm_sec) != 3)
- errx(1, "usage");
+ errx(1, "Bad state string '%s'", str);
+ if (displayed.tm_hour < 0 || displayed.tm_hour > 23 ||
+ displayed.tm_min < 0 || displayed.tm_min > 59 ||
+ displayed.tm_sec < 0 || displayed.tm_sec > 59)
+ errx(1, "Bad state string '%s'", str);
+ displayed.tm_hour %= 12;
}
static void
if (len == -1)
err(1, "read %s", statefilename);
if (len > 0) {
+ while (len > 0 && buf[len - 1] == '\n') len--;
buf[len] = '\0';
init_statestring(buf);
}