The error was a memory access of a freed object. In ME_AddUndoItem I
checked the top of the undo stack to end a coalescing undo transaction,
assuming that this should be either a valid undo item, or NULL, instead
it was already freed.
Consecutively typed characters are grouped together to be undone
together. The grouping of typed characters can be stopped by certain
events that are mentioned in MSDN's remarks on the EM_STOPGROUPTYPING
message, which is also implemented by this patch.
multiple undo actions in one EM_STREAMIN).
- Related changes to undo code (umIgnore mode is now handled
correctly).
- Numerous improvements in the RTF reader: it reads some character
attributes now (you will have proper small print in license agreements
now).
- Fixed a memory overwrite bug in conversion from CHARFORMAT2A to
CHARFORMAT2W.