Module: wine Branch: master Commit: 6f64338b9d2a403c8bbd7c084a8ddbd6ff64caae URL: http://source.winehq.org/git/wine.git/?a=commit;h=6f64338b9d2a403c8bbd7c084a...
Author: Lei Zhang thestig@google.com Date: Tue Nov 25 14:59:29 2008 -0800
comctl32: Better day of the month input checking in datetime.
---
dlls/comctl32/datetime.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/comctl32/datetime.c b/dlls/comctl32/datetime.c index de31fa0..34c750a 100644 --- a/dlls/comctl32/datetime.c +++ b/dlls/comctl32/datetime.c @@ -955,6 +955,7 @@ DATETIME_Char (DATETIME_INFO *infoPtr, WPARAM vkCode, LPARAM keyData)
if (vkCode >= '0' && vkCode <= '9') { int num = vkCode-'0'; + int newDays;
/* this is a somewhat simplified version of what Windows does */ SYSTEMTIME *date = &infoPtr->date; @@ -986,11 +987,11 @@ DATETIME_Char (DATETIME_INFO *infoPtr, WPARAM vkCode, LPARAM keyData) break; case ONEDIGITDAY: case TWODIGITDAY: - /* probably better checking here would help */ - if ((date->wDay%10) >= 3 && num > 1) + newDays = (date->wDay%10)*10+num; + if (newDays > MONTHCAL_MonthLength(date->wMonth, date->wYear)) date->wDay = num; else - date->wDay = (date->wDay%10)*10+num; + date->wDay = newDays; date->wDayOfWeek = DATETIME_CalculateDayOfWeek( date->wDay,date->wMonth,date->wYear); DATETIME_SendDateTimeChangeNotify (infoPtr);