better checking of the entered date in goto_day()

This commit is contained in:
Frederic Culot 2007-01-10 13:43:51 +00:00
parent b2232aed0c
commit 9286299e3d

View File

@ -1,4 +1,4 @@
/* $calcurse: calendar.c,v 1.4 2006/12/10 14:51:41 culot Exp $ */ /* $calcurse: calendar.c,v 1.5 2007/01/10 13:43:51 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -188,25 +188,28 @@ goto_day(int colr, int day, int month, int year,
#define LDAY 11 #define LDAY 11
char selected_day[LDAY] = ""; char selected_day[LDAY] = "";
int dday, dmonth, dyear; int dday, dmonth, dyear;
int wrong_day = 0; int wrong_day = 1;
char *mesg_line1 = _("The day you entered is not valid"); char *mesg_line1 = _("The day you entered is not valid");
char *mesg_line2 = _("Press [ENTER] to continue"); char *mesg_line2 = _("Press [ENTER] to continue");
char *request_date = _("Enter the day to go to [ENTER for today] : mm/dd/yyyy"); char *request_date = _("Enter the day to go to [ENTER for today] : mm/dd/yyyy");
while (wrong_day != 1) { while (wrong_day) {
status_mesg(request_date, ""); status_mesg(request_date, "");
if (getstring(swin, colr, selected_day, LDAY, 0, 1) == 1) if (getstring(swin, colr, selected_day, LDAY, 0, 1) == 1)
return; return;
else { else {
if (strlen(selected_day) == 0) { if (strlen(selected_day) == 0) {
// go to today // go to today
wrong_day = 0;
*sel_day = day; *sel_day = day;
*sel_month = month; *sel_month = month;
*sel_year = year; *sel_year = year;
break; } else if (strlen(selected_day) != LDAY - 1) {
wrong_day = 1;
} else { } else {
sscanf(selected_day, "%u/%u/%u", sscanf(selected_day, "%u/%u/%u",
&dmonth, &dday, &dyear); &dmonth, &dday, &dyear);
wrong_day = 0;
//check if the entered day is correct //check if the entered day is correct
if ((dday <= 0) | (dday >= 32)) if ((dday <= 0) | (dday >= 32))
wrong_day = 1; wrong_day = 1;
@ -219,11 +222,11 @@ goto_day(int colr, int day, int month, int year,
*sel_day = dday; *sel_day = dday;
*sel_month = dmonth; *sel_month = dmonth;
*sel_year = dyear; *sel_year = dyear;
} else { }
status_mesg(mesg_line1, mesg_line2); }
wgetch(swin); if (wrong_day) {
} status_mesg(mesg_line1, mesg_line2);
break; wgetch(swin);
} }
} }
} }