http://bugs.winehq.org/show_bug.cgi?id=3239
------- Additional Comments From pgr@arcelectronicsinc.com 2005-02-10 11:20 ------- For duplicating using built a built in design file. Start programa open File Examples/educational/1563.asc Hit the running man icon and the ASSERT should trigger.
I took a look and added some debugging traces. It is an off by one error caused by the patch. Added emulation of RichEdit 1.0 behaviour when the 1.0 window class is being used. This emulation (introduced in M$ RichEdit 3.0) counts paragraph endings as 2 characters (CR+LF) instead of 1 (CR).
Here is a subset of a trace with the assert converted to a TRACE. and a trace added to ME_SetSelectionParaFormat where it decrement nCharOfs.
trace:richedit:RichEditANSIWndProc hWnd 0x10046 msg 0437 (EM_EXSETSEL) 00000000 7baee27c trace:richedit:RichEditANSIWndProc EM_EXSETSEL (0,-1) trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 0 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 32 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 34 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 59 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 91 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 124 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 0 >= nParaOfs = 0 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 0 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 32 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 34 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 59 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 91 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 124 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 0 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 32 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 34 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 59 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 91 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 124 >= nParaOfs = 124 trace:richedit:RichEditANSIWndProc hWnd 0x10046 msg 0447 (EM_SETPARAFORMAT) 00000000 7baee2e0 trace:richedit:ME_SetSelectionParaFormat nTo>nForm 124 0 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 0 >= nParaOfs = 0 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 123 >= nParaOfs = 0 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 123 >= nParaOfs = 32 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 123 >= nParaOfs = 34 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 123 >= nParaOfs = 59 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 123 >= nParaOfs = 91 trace:richedit:ME_RunOfsFromCharOfs At Assert nCharOfs = 123 < nParaOfs = 124 trace:richedit:ME_AddUndoItem Pushing id=diUndoSetParagraphFormat to undo stack, deleting
The ME_SetSelectionParaFormat decrements nCharOfs from 124 to 123 and may not be needed.
I don't know any of the richtext formats to determine where to correct the problem. So I will be leaving the correction to somebody with more knowledge on the subject.