http://bugs.winehq.org/show_bug.cgi?id=2813
------- Additional Comments From burnus@gmx.de 2005-07-04 10:56 ------- If you mean the following block, the last attachment contains the trace, it is: trace:edit:EDIT_EM_ReplaceSel text_width = 20, fw=7 -------------------- else { TRACE("in !ES_MULTILINE if\n"); INT fw = es->format_rect.right - es->format_rect.left; EDIT_CalcLineWidth_SL(es); /* remove chars that don't fit */ if (!(es->style & ES_AUTOHSCROLL) && (es->text_width > fw)) { TRACE("es->text_width = %d, fw=%d\n", es->text_width, fw); while ((es->text_width > fw) && s + strl >= s) { strcpyW(es->text + s + strl - 1, es->text + s + strl); strl--; EDIT_CalcLineWidth_SL(es); } EDIT_NOTIFY_PARENT(es, EN_MAXTEXT, "EN_MAXTEXT");}} --------------------------------------
Regarding what happens after the EDIT_NOTIFY_PARENT:
trace:edit:EDIT_EM_ReplaceSel notification EN_MAXTEXT sent to hwnd=0x10084 trace:msg:SendMessageTimeoutW - in if("dest_tid == GetCurrentThreadId()) call trace:msg:call_window_proc - and walk into the if(unicode) block trace:msg:WINPROC_CallProc32WTo32A func 0x5f4019fa (hwnd=0x10084,msg=WM_COMMAND,wp=050103e9,lp=00010088) trace:win:CallWindowProcA CallWindowProcASendMessageTimeoutW trace:msg:SendMessageTimeoutW - and again, walk on and into the if("dest_tid == GetCurrentThreadId()) trace:msg:call_window_proc - and there again go into the if(unicode) and call trace:msg:WINPROC_CallProc32WTo32A func 0x5f4019fa (hwnd=0x10066,msg=WM_COMMAND,wp=ffff026e,lp=00010084) - which calls trace:msg:call_window_proc trace:msg:call_window_proc - and walk to the "else" (!) block of if(unicode) - and call CallWindowProcA trace:win:CallWindowProcA CallWindowProcAstack overflow 52 bytes in thread 0009 eip 401cf514 esp 405c0fcc stack 0x405c0000-0x406c0000
Why the last call has unicode == false, I don't know. Any idea what to TRACE there?