if (msg.message == WM_OLE)
{
char_u *str = (char_u *)msg.lParam;
- add_to_input_buf(str, (int)STRLEN(str));
- vim_free(str);
+ if (str == NULL || *str == NUL)
+ {
+ /* Message can't be ours, forward it. Fixes problem with Ultramon
+ * 3.0.4 */
+ DispatchMessage(&msg);
+ }
+ else
+ {
+ add_to_input_buf(str, (int)STRLEN(str));
+ vim_free(str); /* was allocated in CVim::SendKeys() */
+ }
return;
}
#endif
}
/* Pass the string to the main input loop. The memory will be freed when
- * the message is processed.
+ * the message is processed. Except for an empty message, we don't need
+ * to post it then.
*/
- PostMessage(NULL, WM_OLE, 0, (LPARAM)str);
+ if (*str == NUL)
+ vim_free(str);
+ else
+ PostMessage(NULL, WM_OLE, 0, (LPARAM)str);
return S_OK;
}
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 89,
/**/
88,
/**/