0
0
mirror of https://github.com/vim/vim.git synced 2025-10-09 06:14:17 -04:00

patch 7.4.1584

Problem:    Timers don't work for Win32 console.
Solution:   Add check_due_timer() in WaitForChar().
This commit is contained in:
Bram Moolenaar
2016-03-17 17:58:56 +01:00
parent 597385ab43
commit 0e0b3dd335
2 changed files with 19 additions and 3 deletions

View File

@@ -214,7 +214,6 @@ static void standend(void);
static void visual_bell(void); static void visual_bell(void);
static void cursor_visible(BOOL fVisible); static void cursor_visible(BOOL fVisible);
static DWORD write_chars(char_u *pchBuf, DWORD cbToWrite); static DWORD write_chars(char_u *pchBuf, DWORD cbToWrite);
static WCHAR tgetch(int *pmodifiers, WCHAR *pch2);
static void create_conin(void); static void create_conin(void);
static int s_cursor_visible = TRUE; static int s_cursor_visible = TRUE;
static int did_create_conin = FALSE; static int did_create_conin = FALSE;
@@ -1502,6 +1501,21 @@ WaitForChar(long msec)
&& (msec < 0 || (long)dwWaitTime > p_mzq)) && (msec < 0 || (long)dwWaitTime > p_mzq))
dwWaitTime = p_mzq; /* don't wait longer than 'mzquantum' */ dwWaitTime = p_mzq; /* don't wait longer than 'mzquantum' */
#endif #endif
#ifdef FEAT_TIMERS
{
long due_time;
/* When waiting very briefly don't trigger timers. */
if (dwWaitTime > 10)
{
/* Trigger timers and then get the time in msec until the
* next one is due. Wait up to that time. */
due_time = check_due_timer();
if (due_time > 0 && dwWaitTime > (DWORD)due_time)
dwWaitTime = due_time;
}
}
#endif
#ifdef FEAT_CLIENTSERVER #ifdef FEAT_CLIENTSERVER
/* Wait for either an event on the console input or a message in /* Wait for either an event on the console input or a message in
* the client-server window. */ * the client-server window. */
@@ -1604,7 +1618,7 @@ create_conin(void)
} }
/* /*
* Get a keystroke or a mouse event * Get a keystroke or a mouse event, use a blocking wait.
*/ */
static WCHAR static WCHAR
tgetch(int *pmodifiers, WCHAR *pch2) tgetch(int *pmodifiers, WCHAR *pch2)
@@ -6074,7 +6088,7 @@ mch_write(
/* /*
* Delay for half a second. * Delay for "msec" milliseconds.
*/ */
/*ARGSUSED*/ /*ARGSUSED*/
void void

View File

@@ -748,6 +748,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1584,
/**/ /**/
1583, 1583,
/**/ /**/