diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 0ae8844b257..01ef9c15504 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -1476,7 +1476,10 @@ static LRESULT ME_StreamIn(ME_TextEditor *editor, DWORD format, EDITSTREAM *stre RTFSetDestinationCallback(&parser, rtfPict, ME_RTFReadPictGroup); RTFSetDestinationCallback(&parser, rtfObject, ME_RTFReadObjectGroup); if (!parser.editor->bEmulateVersion10) /* v4.1 */ + { RTFSetDestinationCallback(&parser, rtfNoNestTables, RTFSkipGroup); + RTFSetDestinationCallback(&parser, rtfNestTableProps, RTFReadGroup); + } BeginFile(&parser); /* do the parsing */ diff --git a/dlls/riched20/reader.c b/dlls/riched20/reader.c index 95d88f70380..c455c575d3d 100644 --- a/dlls/riched20/reader.c +++ b/dlls/riched20/reader.c @@ -406,6 +406,16 @@ void RTFSkipGroup(RTF_Info *info) } } +/* + * Do no special processing on the group. + * + * This acts as a placeholder for a callback in order to indicate that it + * shouldn't be ignored. Instead it will fallback on the loop in RTFRead. + */ +void RTFReadGroup (RTF_Info *info) +{ +} + /* * Read one token. Call the read hook if there is one. The diff --git a/dlls/riched20/rtf.h b/dlls/riched20/rtf.h index ec08161a94b..8fc8abc3400 100644 --- a/dlls/riched20/rtf.h +++ b/dlls/riched20/rtf.h @@ -1211,6 +1211,7 @@ void RTFSetReadHook (RTF_Info *, RTFFuncPtr); RTFFuncPtr RTFGetReadHook (const RTF_Info *); void RTFRouteToken (RTF_Info *); void RTFSkipGroup (RTF_Info *); +void RTFReadGroup (RTF_Info *); void RTFExpandStyle (RTF_Info *, int); int RTFCheckCM (const RTF_Info *, int, int); int RTFCheckCMM (const RTF_Info *, int, int, int);