diff options
Diffstat (limited to 'src/ui-day.c')
-rw-r--r-- | src/ui-day.c | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/src/ui-day.c b/src/ui-day.c index b651ca5..0c31b3c 100644 --- a/src/ui-day.c +++ b/src/ui-day.c @@ -67,36 +67,16 @@ static int day_edit_time(int time) const char *enter_str = _("Press [Enter] to continue"); const char *fmt_msg = _("You entered an invalid time, should be [hh:mm] or [hhmm]"); - unsigned int hour, minute; - int year, month, day; - struct date new_date; + long ts = time; for (;;) { status_mesg(msg_time, ""); if (updatestring(win[STA].p, &input, 0, 1) != GETSTRING_VALID) return 0; - char *inputcpy = mem_strdup(input); - char *p = strtok(inputcpy, " "); - while (p) { - if (parse_date(p, conf.input_datefmt, &year, &month, - &day, ui_calendar_get_slctd_day())) { - new_date.dd = day; - new_date.mm = month; - new_date.yyyy = year; - time = date2sec(new_date, 0, 0) + - get_item_time(time); - } else if (parse_time(p, &hour, &minute) == 1) { - time = update_time_in_date(time, hour, minute); - } else { - status_mesg(fmt_msg, enter_str); - wgetch(win[KEY].p); - break; - } - p = strtok(NULL, " "); - } - mem_free(inputcpy); - if (!p) - return time; + if (parse_datetime(input, &ts)) + return ts; + status_mesg(fmt_msg, enter_str); + wgetch(win[KEY].p); } } |