[pkg-wine-party] [SCM] Debian Wine packaging branch, wheezy, updated. wine-1.4-7-302-gb61b690
Alexandre Julliard
julliard at winehq.org
Sun Jun 17 20:01:30 UTC 2012
The following commit has been merged in the wheezy branch:
commit d4ba6220430b80425d597bf48a9ebe2c0e61cd58
Author: Owen Rudge <orudge at codeweavers.com>
Date: Thu Mar 8 11:34:19 2012 +0000
comctl32/datetime: Ensure up/down/home/end increments remain within bounds.
(cherry picked from commit 3f93230812f5db519d5aa11af039ff2b3b289a34)
diff --git a/dlls/comctl32/datetime.c b/dlls/comctl32/datetime.c
index 1443c35..3ad9204 100644
--- a/dlls/comctl32/datetime.c
+++ b/dlls/comctl32/datetime.c
@@ -506,6 +506,9 @@ static void
DATETIME_IncreaseField (DATETIME_INFO *infoPtr, int number, int delta)
{
SYSTEMTIME *date = &infoPtr->date;
+ SYSTEMTIME range[2];
+ DWORD limits;
+ BOOL min;
TRACE ("%d\n", number);
if ((number > infoPtr->nrFields) || (number < 0)) return;
@@ -516,7 +519,13 @@ DATETIME_IncreaseField (DATETIME_INFO *infoPtr, int number, int delta)
case ONEDIGITYEAR:
case TWODIGITYEAR:
case FULLYEAR:
- date->wYear = wrap(date->wYear, delta, 1752, 9999);
+ if (delta == INT_MIN)
+ date->wYear = 1752;
+ else if (delta == INT_MAX)
+ date->wYear = 9999;
+ else
+ date->wYear = max(min(date->wYear + delta, 9999), 1752);
+
if (date->wDay > MONTHCAL_MonthLength(date->wMonth, date->wYear))
/* This can happen when moving away from a leap year. */
date->wDay = MONTHCAL_MonthLength(date->wMonth, date->wYear);
@@ -573,8 +582,28 @@ DATETIME_IncreaseField (DATETIME_INFO *infoPtr, int number, int delta)
date->wMinute = 0;
date->wHour = 0;
}
-}
+ /* Ensure time is within bounds */
+ limits = SendMessageW (infoPtr->hMonthCal, MCM_GETRANGE, 0, (LPARAM) &range);
+ min = ((delta < 0) ? TRUE : FALSE);
+
+ if (limits & (min ? GDTR_MIN : GDTR_MAX))
+ {
+ int i = (min ? 0 : 1);
+
+ if (MONTHCAL_CompareSystemTime(date, &range[i]) == (min ? -1 : 1))
+ {
+ date->wYear = range[i].wYear;
+ date->wMonth = range[i].wMonth;
+ date->wDayOfWeek = range[i].wDayOfWeek;
+ date->wDay = range[i].wDay;
+ date->wHour = range[i].wHour;
+ date->wMinute = range[i].wMinute;
+ date->wSecond = range[i].wSecond;
+ date->wMilliseconds = range[i].wMilliseconds;
+ }
+ }
+}
static void
DATETIME_ReturnFieldWidth (const DATETIME_INFO *infoPtr, HDC hdc, int count, SHORT *width)
--
Debian Wine packaging
More information about the pkg-wine-party
mailing list