From 760c297027efca75e095940d76d2078b1da1b677 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Thu, 26 Oct 2017 20:44:45 +0200 Subject: Add parse_date_interactive() Add a wrapper around parse_date() which picks the current input date format as well as the currently selected day and passes both values to parse_date(), alongside with the parameters passed to parse_date_interactive() itself. Signed-off-by: Lukas Fleischer --- src/calcurse.h | 4 ++-- src/ui-day.c | 10 ++++------ src/utils.c | 7 +++++++ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/calcurse.h b/src/calcurse.h index 72426e6..2124bb2 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -1150,8 +1150,8 @@ void print_bool_option_incolor(WINDOW *, unsigned, int, int); const char *get_tempdir(void); char *new_tempfile(const char *); int check_date(unsigned, unsigned, unsigned); -int parse_date(const char *, enum datefmt, int *, int *, int *, - struct date *); +int parse_date(const char *, enum datefmt, int *, int *, int *, struct date *); +int parse_date_interactive(const char *, int *, int *, int *); int check_time(unsigned, unsigned); int parse_time(const char *, unsigned *, unsigned *); int parse_duration(const char *, unsigned *); diff --git a/src/ui-day.c b/src/ui-day.c index 3c0547d..9c858f1 100644 --- a/src/ui-day.c +++ b/src/ui-day.c @@ -293,9 +293,8 @@ static void update_rept(struct rpt **rpt, const long start) new_date.mm = lt.tm_mon + 1; new_date.yyyy = lt.tm_year + 1900; } else { - if (!parse_date(timstr, conf.input_datefmt, &newyear, - &newmonth, &newday, - ui_calendar_get_slctd_day())) { + if (!parse_date_interactive(timstr, &newyear, + &newmonth, &newday)) { asprintf(&outstr, msg_fmts, DATEFMT_DESC(conf.input_datefmt)); status_mesg(msg_wrong_date, outstr); @@ -787,9 +786,8 @@ void ui_day_item_repeat(void) until_date.dd = lt.tm_mday; until_date.mm = lt.tm_mon + 1; until_date.yyyy = lt.tm_year + 1900; - } else if (parse_date(user_input, conf.input_datefmt, - &year, &month, &day, - ui_calendar_get_slctd_day())) { + } else if (parse_date_interactive(user_input, &year, &month, + &day)) { t = p->start; localtime_r(&t, <); until_date.dd = day; diff --git a/src/utils.c b/src/utils.c index 11d4582..8f27756 100644 --- a/src/utils.c +++ b/src/utils.c @@ -886,6 +886,13 @@ parse_date(const char *date_string, enum datefmt datefmt, int *year, return 1; } +int +parse_date_interactive(const char *datestr, int *year, int *month, int *day) +{ + return parse_date(datestr, conf.input_datefmt, year, month, day, + ui_calendar_get_slctd_day()); +} + /* * Convert a date duration string into a number of days. * -- cgit v1.2.3-70-g09d2