calendar_change_day() and calendar_move_*() updated to prevent user from entering an unsupported date
This commit is contained in:
parent
9b707f6b3a
commit
c933021597
@ -1,4 +1,4 @@
|
|||||||
/* $calcurse: calendar.c,v 1.10 2007/08/12 13:09:02 culot Exp $ */
|
/* $calcurse: calendar.c,v 1.11 2007/10/16 19:11:10 culot Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Calcurse - text-based organizer
|
* Calcurse - text-based organizer
|
||||||
@ -339,7 +339,8 @@ calendar_change_day(void)
|
|||||||
date_t today;
|
date_t today;
|
||||||
int dday, dmonth, dyear;
|
int dday, dmonth, dyear;
|
||||||
int wrong_day = 1;
|
int wrong_day = 1;
|
||||||
char *mesg_line1 = _("The day you entered is not valid");
|
char *mesg_line1 =
|
||||||
|
_("The day you entered is not valid (should be between 01/01/1902 and 12/31/2037)");
|
||||||
char *mesg_line2 = _("Press [ENTER] to continue");
|
char *mesg_line2 = _("Press [ENTER] to continue");
|
||||||
char *request_date =
|
char *request_date =
|
||||||
_("Enter the day to go to [ENTER for today] : mm/dd/yyyy");
|
_("Enter the day to go to [ENTER for today] : mm/dd/yyyy");
|
||||||
@ -371,7 +372,7 @@ calendar_change_day(void)
|
|||||||
/* basic check on entered date */
|
/* basic check on entered date */
|
||||||
if ((dday <= 0) || (dday >= 32) ||
|
if ((dday <= 0) || (dday >= 32) ||
|
||||||
(dmonth <= 0) || (dmonth >= 13) ||
|
(dmonth <= 0) || (dmonth >= 13) ||
|
||||||
(dyear <= 0) || (dyear >= 3000))
|
(dyear <= 1901) || (dyear >= 2038))
|
||||||
wrong_day = 1;
|
wrong_day = 1;
|
||||||
|
|
||||||
/* go to chosen day */
|
/* go to chosen day */
|
||||||
@ -396,7 +397,10 @@ calendar_change_day(void)
|
|||||||
void
|
void
|
||||||
calendar_move_right(void)
|
calendar_move_right(void)
|
||||||
{
|
{
|
||||||
if ((slctd_day.dd == 31) && (slctd_day.mm == 12)) {
|
if ((slctd_day.dd == 31) && (slctd_day.mm == 12) &&
|
||||||
|
(slctd_day.yyyy == 2037))
|
||||||
|
return;
|
||||||
|
else if ((slctd_day.dd == 31) && (slctd_day.mm == 12)) {
|
||||||
slctd_day.dd = 0;
|
slctd_day.dd = 0;
|
||||||
slctd_day.mm = 1;
|
slctd_day.mm = 1;
|
||||||
slctd_day.yyyy++;
|
slctd_day.yyyy++;
|
||||||
@ -411,7 +415,10 @@ calendar_move_right(void)
|
|||||||
void
|
void
|
||||||
calendar_move_left(void)
|
calendar_move_left(void)
|
||||||
{
|
{
|
||||||
if ((slctd_day.dd == 1) && (slctd_day.mm == 1)) {
|
if ((slctd_day.dd == 1) && (slctd_day.mm == 1) &&
|
||||||
|
(slctd_day.yyyy == 1902))
|
||||||
|
return;
|
||||||
|
else if ((slctd_day.dd == 1) && (slctd_day.mm == 1)) {
|
||||||
slctd_day.dd = 32;
|
slctd_day.dd = 32;
|
||||||
slctd_day.mm = 12;
|
slctd_day.mm = 12;
|
||||||
slctd_day.yyyy--;
|
slctd_day.yyyy--;
|
||||||
@ -426,7 +433,10 @@ calendar_move_left(void)
|
|||||||
void
|
void
|
||||||
calendar_move_up(void)
|
calendar_move_up(void)
|
||||||
{
|
{
|
||||||
if ((slctd_day.dd <= 7) && (slctd_day.mm == 1)) {
|
if ((slctd_day.dd <= 7) && (slctd_day.mm == 1) &&
|
||||||
|
(slctd_day.yyyy == 1902))
|
||||||
|
return;
|
||||||
|
else if ((slctd_day.dd <= 7) && (slctd_day.mm == 1)) {
|
||||||
slctd_day.dd = 31 - (7 - slctd_day.dd);
|
slctd_day.dd = 31 - (7 - slctd_day.dd);
|
||||||
slctd_day.mm = 12;
|
slctd_day.mm = 12;
|
||||||
slctd_day.yyyy--;
|
slctd_day.yyyy--;
|
||||||
@ -442,7 +452,11 @@ calendar_move_up(void)
|
|||||||
void
|
void
|
||||||
calendar_move_down(void)
|
calendar_move_down(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((slctd_day.dd > days[slctd_day.mm - 1] - 7)
|
if ((slctd_day.dd > days[slctd_day.mm - 1] - 7)
|
||||||
|
&& (slctd_day.mm == 12) && (slctd_day.yyyy == 2037))
|
||||||
|
return;
|
||||||
|
else if ((slctd_day.dd > days[slctd_day.mm - 1] - 7)
|
||||||
&& (slctd_day.mm == 12)) {
|
&& (slctd_day.mm == 12)) {
|
||||||
slctd_day.dd = (7 - (31 - slctd_day.dd));
|
slctd_day.dd = (7 - (31 - slctd_day.dd));
|
||||||
slctd_day.mm = 1;
|
slctd_day.mm = 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user