updated for version 7.4b.022
Problem: Not waiting for a character when the tick count overflows.
Solution: Subtract the unsigned numbers and cast to int. (Ken Takata)
diff --git a/src/os_win32.c b/src/os_win32.c
index 48cc4c5..4013353 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1357,9 +1357,10 @@
if (msec > 0)
{
- /* If the specified wait time has passed, return. */
+ /* If the specified wait time has passed, return. Beware that
+ * GetTickCount() may wrap around (overflow). */
dwNow = GetTickCount();
- if (dwNow >= dwEndTime)
+ if ((int)(dwNow - dwEndTime) >= 0)
break;
}
if (msec != 0)
diff --git a/src/version.c b/src/version.c
index 59476e5..f02bf35 100644
--- a/src/version.c
+++ b/src/version.c
@@ -728,6 +728,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 22,
+/**/
21,
/**/
20,