Richedit fix

Daniel Walker diwalker at earthlink.net
Sun Jan 13 09:32:23 CST 2002


dlls/richedit/charlist.c, dlls/richedit/reader.c,
dlls/richedit/richedit.c, dlls/richedit/text-writer.c,
include/richedit.h
Daniel Walker <diwalker at earthlink.net>
 - Adds debugging to richedit
 - Transfers all relevant messages to the underlying edit control
-------------- next part --------------
? if1632/asmrelay.s
? loader/dos/Makefile
? loader/dos/dosmod
Index: dlls/richedit/charlist.c
===================================================================
RCS file: /home/wine/wine/dlls/richedit/charlist.c,v
retrieving revision 1.2
diff -u -r1.2 charlist.c
--- dlls/richedit/charlist.c	2000/11/30 01:31:29	1.2
+++ dlls/richedit/charlist.c	2002/01/12 19:05:28
@@ -15,7 +15,10 @@
 #include "charlist.h"
 #include "windef.h"
 #include "winbase.h"
+#include "debugtools.h"
 
+DEFAULT_DEBUG_CHANNEL(richedit);
+
 extern HANDLE RICHED32_hHeap;
 
 void CHARLIST_Enqueue( CHARLIST* pCharList, char myChar )
@@ -23,6 +26,8 @@
     CHARLISTENTRY* pNewEntry = HeapAlloc(RICHED32_hHeap, 0,sizeof(CHARLISTENTRY));
     pNewEntry->pNext = NULL;
     pNewEntry->myChar = myChar;
+
+    TRACE("\n");
     
     if(pCharList->pTail == NULL)
     {
@@ -41,6 +46,8 @@
 {   
     CHARLISTENTRY* pNewEntry = malloc(sizeof(CHARLISTENTRY));
     
+    TRACE("\n");
+
     pNewEntry->myChar = myChar;
     
     if(pCharList->pHead == NULL)
@@ -63,6 +70,8 @@
     CHARLISTENTRY* pCurrent;
     char myChar;
 
+    TRACE("\n");
+
     if(pCharList->nCount == 0) 
       return 0;
     
@@ -85,10 +94,14 @@
 
 int CHARLIST_GetNbItems(CHARLIST* pCharList)
 {
+    TRACE("\n");
+
     return pCharList->nCount;
 }
 
 void CHARLIST_FreeList(CHARLIST* pCharList){
+    TRACE("\n");
+
     while(pCharList->nCount)
         CHARLIST_Dequeue(pCharList);       
 }
@@ -98,6 +111,8 @@
 {
     CHARLISTENTRY *pCurrent;
     int nCount = 0;
+
+    TRACE("\n");
     
     for(pCurrent =pCharList->pHead ;pCurrent;pCurrent=pCurrent->pNext)
     	if(pCurrent->myChar == myChar)
@@ -109,6 +124,8 @@
 int CHARLIST_toBuffer(CHARLIST* pCharList, char* pBuffer, int nBufferSize)
 {
    
+   TRACE("\n");
+
    /* we add one to store a NULL caracter */
    if(nBufferSize < pCharList->nCount + 1) 
         return pCharList->nCount;
Index: dlls/richedit/reader.c
===================================================================
RCS file: /home/wine/wine/dlls/richedit/reader.c,v
retrieving revision 1.4
diff -u -r1.4 reader.c
--- dlls/richedit/reader.c	2000/11/30 01:31:29	1.4
+++ dlls/richedit/reader.c	2002/01/12 19:05:39
@@ -78,6 +78,8 @@
 #include "winbase.h"
 #include "debugtools.h"
 
+DEFAULT_DEBUG_CHANNEL(richedit);
+
 extern HANDLE RICHED32_hHeap;
 
 /*
@@ -211,6 +213,9 @@
 _RTFGetChar()
 {
     char myChar;
+
+    TRACE("\n");
+
     if(CHARLIST_GetNbItems(&inputCharList) == 0)
     {
         char buff[10];
@@ -228,6 +233,8 @@
 void
 RTFSetEditStream(EDITSTREAM *es)
 {
+    TRACE("\n");
+
     editstream.dwCookie = es->dwCookie;
     editstream.dwError  = es->dwError;
     editstream.pfnCallback = es->pfnCallback;
@@ -248,6 +255,8 @@
 RTFStyle	*sp;
 RTFStyleElt	*eltList, *ep;
 
+    TRACE("\n");
+
 	if (rtfTextBuf == (char *) NULL)	/* initialize the text buffers */
 	{
 		rtfTextBuf = RTFAlloc (rtfBufSiz);
@@ -334,6 +343,8 @@
 RTFSetInputName (name)
 char	*name;
 {
+    TRACE("\n");
+
 	if ((inputName = RTFStrSave (name)) == (char *) NULL)
 		RTFPanic ("RTFSetInputName: out of memory");
 }
@@ -350,6 +361,8 @@
 RTFSetOutputName (name)
 char	*name;
 {
+    TRACE("\n");
+
 	if ((outputName = RTFStrSave (name)) == (char *) NULL)
 		RTFPanic ("RTFSetOutputName: out of memory");
 }
@@ -456,6 +469,8 @@
 {
 RTFFuncPtr	p;
 
+    TRACE("\n");
+
 	if (rtfClass < 0 || rtfClass >= rtfMaxClass)	/* watchdog */
 	{
 		RTFPanic ("Unknown class %d: %s (reader malfunction)",
@@ -488,6 +503,7 @@
 RTFSkipGroup ()
 {
 int	level = 1;
+    TRACE("\n");
 
 	while (RTFGetToken () != rtfEOF)
 	{
@@ -515,6 +531,7 @@
 RTFGetToken ()
 {
 RTFFuncPtr	p;
+    TRACE("\n");
 
 	for (;;)
 	{
@@ -557,6 +574,8 @@
 void
 RTFUngetToken ()
 {
+    TRACE("\n");
+
 	if (pushedClass >= 0)	/* there's already an ungotten token */
 		RTFPanic ("cannot unget two tokens");
 	if (rtfClass < 0)
@@ -583,6 +602,8 @@
 {
 RTFFont	*fp;
 
+    TRACE("\n");
+
 	/* first check for pushed token from RTFUngetToken() */
 
 	if (pushedClass >= 0)
@@ -659,6 +680,8 @@
 int	sign;
 int	c;
 
+    TRACE("\n");
+
 	/* initialize token vars */
 
 	rtfClass = rtfUnknown;
@@ -830,6 +853,8 @@
 int	c;
 int	oldBumpLine;
 
+    TRACE("\n");
+
 	if ((c = _RTFGetChar()) != EOF)
 	{
 		rtfTextBuf[rtfTextLen++] = c;
@@ -872,6 +897,8 @@
 int	class, major, minor, param;
 char	*text;
 {
+    TRACE("\n");
+
 	rtfClass = class;
 	rtfMajor = major;
 	rtfMinor = minor;
@@ -907,6 +934,8 @@
 static void
 CharSetInit ()
 {
+    TRACE("\n");
+
 	autoCharSetFlags = (rtfReadCharSet | rtfSwitchCharSet);
 	RTFFree (genCharSetFile);
 	genCharSetFile = (char *) NULL;
@@ -929,6 +958,8 @@
 char	*name;
 int	csId;
 {
+    TRACE("\n");
+
 	if ((name = RTFStrSave (name)) == (char *) NULL)	/* make copy */
 		RTFPanic ("RTFSetCharSetMap: out of memory");
 	switch (csId)
@@ -959,6 +990,8 @@
 {
 char	buf[rtfBufSiz];
 
+    TRACE("\n");
+
 	if (genCharSetFile != (char *) NULL)
 		(void) strcpy (buf, genCharSetFile);
 	else
@@ -986,6 +1019,9 @@
 {
         int	*stdCodeArray;
         int i;
+
+    TRACE("\n");
+
 	switch (csId)
 	{
 	default:
@@ -1036,6 +1072,8 @@
 {
 int	i;
 
+    TRACE("\n");
+
 	for (i = 0; i < rtfSC_MaxChar; i++)
 	{
 		if (strcmp (name, stdCharName[i]) == 0)
@@ -1073,6 +1111,8 @@
 RTFMapChar (c)
 int	c;
 {
+    TRACE("\n");
+
 	switch (curCharSet)
 	{
 	case rtfCSGeneral:
@@ -1104,6 +1144,8 @@
 RTFSetCharSet (csId)
 int	csId;
 {
+    TRACE("\n");
+
 	switch (csId)
 	{
 	default:		/* use general if csId unknown */
@@ -1162,6 +1204,8 @@
 int	old = -1;
 char	*fn = "ReadFontTbl";
 
+    TRACE("\n");
+
 	for (;;)
 	{
 		(void) RTFGetToken ();
@@ -1312,6 +1356,8 @@
 int		cnum = 0;
 char		*fn = "ReadColorTbl";
 
+    TRACE("\n");
+
 	for (;;)
 	{
 		(void) RTFGetToken ();
@@ -1353,6 +1399,8 @@
 char		buf[rtfBufSiz], *bp;
 char		*fn = "ReadStyleSheet";
 
+    TRACE("\n");
+
 	for (;;)
 	{
 		(void) RTFGetToken ();
@@ -1592,6 +1640,8 @@
 RTFStyle	*s;
 RTFStyleElt	*se;
 
+    TRACE("\n");
+
 	if (n == -1 || (s = RTFGetStyle (n)) == (RTFStyle *) NULL)
 		return;
 	if (s->rtfExpanding != 0)
@@ -2575,6 +2625,7 @@
 RTFKey	*rp;
 int	hash;
 
+	TRACE("\n");
 	++s;			/* skip over the leading \ character */
 	hash = Hash (s);
 	for (rp = rtfKey; rp->rtfKStr != (char *) NULL; rp++)
Index: dlls/richedit/richedit.c
===================================================================
RCS file: /home/wine/wine/dlls/richedit/richedit.c,v
retrieving revision 1.14
diff -u -r1.14 richedit.c
--- dlls/richedit/richedit.c	2001/12/11 00:30:18	1.14
+++ dlls/richedit/richedit.c	2002/01/12 19:05:41
@@ -32,6 +32,13 @@
 HANDLE RICHED32_hHeap = (HANDLE)NULL;
 /* LPSTR  RICHED32_aSubclass = (LPSTR)NULL; */
 
+#define DPRINTF_EDIT_MSG32(str) \
+        TRACE(\
+                     "32 bit : " str ": hwnd=%08x, wParam=%08x, lParam=%08x\n"\
+                     , \
+                     hwnd, (UINT)wParam, (UINT)lParam)
+
+
 /***********************************************************************
  * RICHED32_LibMain [Internal] Initializes the internal 'RICHED32.DLL'.
  *
@@ -48,6 +55,7 @@
 BOOL WINAPI
 RICHED32_LibMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
 {
+    TRACE("\n");
     switch (fdwReason)
     {
     case DLL_PROCESS_ATTACH:
@@ -81,15 +89,21 @@
     LONG style = 0;  
 
     static HWND hwndEdit;
+    static HWND hwndParent;
     static char* rtfBuffer;
     int rtfBufferSize;
-    
+
+    TRACE("\n"); 
+   
     switch (uMsg)
     {
  
     case WM_CREATE :           
-            
+	    DPRINTF_EDIT_MSG32("WM_CREATE");
+	             
 	    /* remove SCROLLBARS from the current window style */
+	    hwndParent = ((LPCREATESTRUCTA) lParam)->hwndParent;
+
 	    newstyle = style = ((LPCREATESTRUCTA) lParam)->style;
             newstyle &= ~WS_HSCROLL;
             newstyle &= ~WS_VSCROLL;
@@ -104,24 +118,37 @@
 	    SetWindowLongA(hwnd,GWL_STYLE, newstyle); 		   
             return 0 ;
           
-    case WM_SETFOCUS :            
+    case WM_SETFOCUS :
+	    DPRINTF_EDIT_MSG32("WM_SETFOCUS");            
             SetFocus (hwndEdit) ;
             return 0 ;
-          
+
     case WM_SIZE :             
+            DPRINTF_EDIT_MSG32("WM_SIZE");
             MoveWindow (hwndEdit, 0, 0, LOWORD (lParam), HIWORD (lParam), TRUE) ;
             return 0 ;
           
     case WM_COMMAND :
-            if (LOWORD (wParam) == ID_EDIT)
-                 if (HIWORD (wParam) == EN_ERRSPACE || 
-                           HIWORD (wParam) == EN_MAXTEXT)
-
-                      MessageBoxA (hwnd, "RichEdit control out of space.",
+        DPRINTF_EDIT_MSG32("WM_COMMAND");
+	switch(HIWORD(wParam)) {
+		case EN_CHANGE:
+		case EN_HSCROLL:
+		case EN_KILLFOCUS:
+		case EN_SETFOCUS:
+		case EN_UPDATE:
+		case EN_VSCROLL:
+			return SendMessageA(hwndParent, WM_COMMAND, 
+				wParam, (LPARAM)(hwnd));
+		
+		case EN_ERRSPACE:
+		case EN_MAXTEXT:
+			MessageBoxA (hwnd, "RichEdit control out of space.",
                                   "ERROR", MB_OK | MB_ICONSTOP) ;
-            return 0 ;
+			return 0 ;
+		}
      
-    case EM_STREAMIN:                               
+    case EM_STREAMIN:                           
+            DPRINTF_EDIT_MSG32("EM_STREAMIN");
             
 	    /* setup the RTF parser */
 	    RTFSetEditStream(( EDITSTREAM*)lParam);
@@ -144,8 +171,387 @@
 		WARN("Not enough memory for a allocating rtfBuffer\n");
 		
             return 0;   
+
+/* Message specific to Richedit controls */
+
+    case EM_AUTOURLDETECT:
+            DPRINTF_EDIT_MSG32("EM_AUTOURLDETECT");
+	    return 0;
+
+    case EM_CANPASTE:
+            DPRINTF_EDIT_MSG32("EM_CANPASTE");
+	    return 0;
+
+    case EM_CANREDO:
+            DPRINTF_EDIT_MSG32("EM_CANREDO");
+	    return 0;
+
+    case EM_DISPLAYBAND:
+            DPRINTF_EDIT_MSG32("EM_DISPLAYBAND");
+	    return 0;
+
+    case EM_EXGETSEL:
+            DPRINTF_EDIT_MSG32("EM_EXGETSEL");
+            return 0;
+
+    case EM_EXLIMITTEXT:
+            DPRINTF_EDIT_MSG32("EM_EXLIMITTEXT");
+            return 0;
+
+    case EM_EXLINEFROMCHAR:
+            DPRINTF_EDIT_MSG32("EM_EXLINEFROMCHAR");
+            return 0;
+
+    case EM_EXSETSEL:
+            DPRINTF_EDIT_MSG32("EM_EXSETSEL");
+            return 0;
+
+    case EM_FINDTEXT:
+            DPRINTF_EDIT_MSG32("EM_FINDTEXT");
+            return 0;
+
+    case EM_FINDTEXTEX:
+            DPRINTF_EDIT_MSG32("EM_FINDTEXTEX");
+            return 0;
+
+    case EM_FINDTEXTEXW:
+            DPRINTF_EDIT_MSG32("EM_FINDTEXTEXW");
+            return 0;
+
+    case EM_FINDTEXTW:
+            DPRINTF_EDIT_MSG32("EM_FINDTEXTW");
+            return 0;
+
+    case EM_FINDWORDBREAK:
+            DPRINTF_EDIT_MSG32("EM_FINDWORDBREAK");
+            return 0;
+
+    case EM_FORMATRANGE:
+            DPRINTF_EDIT_MSG32("EM_FORMATRANGE");
+            return 0;
+
+    case EM_GETAUTOURLDETECT:
+            DPRINTF_EDIT_MSG32("EM_GETAUTOURLDETECT");
+            return 0;
+
+    case EM_GETBIDIOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_GETBIDIOPTIONS");
+            return 0;
+
+    case EM_GETCHARFORMAT:
+            DPRINTF_EDIT_MSG32("EM_GETCHARFORMAT");
+            return 0;
+
+    case EM_GETEDITSTYLE:
+            DPRINTF_EDIT_MSG32("EM_GETEDITSTYLE");
+            return 0;
+
+    case EM_GETEVENTMASK:
+            DPRINTF_EDIT_MSG32("EM_GETEVENTMASK");
+            return 0;
+
+    case EM_GETIMECOLOR:
+            DPRINTF_EDIT_MSG32("EM_GETIMECOLOR");
+            return 0;
+
+    case EM_GETIMECOMPMODE:
+            DPRINTF_EDIT_MSG32("EM_GETIMECOMPMODE");
+            return 0;
+
+    case EM_GETIMEOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_GETIMEOPTIONS");
+            return 0;
+
+    case EM_GETLANGOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_GETLANGOPTIONS");
+            return 0;
+
+    case EM_GETOLEINTERFACE:
+            DPRINTF_EDIT_MSG32("EM_GETOLEINTERFACE");
+            return 0;
+
+    case EM_GETOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_GETOPTIONS");
+            return 0;
+
+    case EM_GETPARAFORMAT:
+            DPRINTF_EDIT_MSG32("EM_GETPARAFORMAT");
+            return 0;
+
+    case EM_GETPUNCTUATION:
+            DPRINTF_EDIT_MSG32("EM_GETPUNCTUATION");
+            return 0;
+
+    case EM_GETREDONAME:
+            DPRINTF_EDIT_MSG32("EM_GETREDONAME");
+            return 0;
+
+    case EM_GETSCROLLPOS:
+            DPRINTF_EDIT_MSG32("EM_GETSCROLLPOS");
+            return 0;
+
+    case EM_GETSELTEXT:
+            DPRINTF_EDIT_MSG32("EM_GETSELTEXT");
+            return 0;
+
+    case EM_GETTEXTEX:
+            DPRINTF_EDIT_MSG32("EM_GETTEXTEX");
+            return 0;
+
+    case EM_GETTEXTLENGTHEX:
+            DPRINTF_EDIT_MSG32("EM_GETTEXTLENGTHEX");
+            return 0;
+
+    case EM_GETTEXTMODE:
+            DPRINTF_EDIT_MSG32("EM_GETTEXTMODE");
+            return 0;
+
+    case EM_GETTEXTRANGE:
+            DPRINTF_EDIT_MSG32("EM_GETTEXTRANGE");
+            return 0;
+
+    case EM_GETTYPOGRAPHYOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_GETTYPOGRAPHYOPTIONS");
+            return 0;
+
+    case EM_GETUNDONAME:
+            DPRINTF_EDIT_MSG32("EM_GETUNDONAME");
+            return 0;
+
+    case EM_GETWORDBREAKPROCEX:
+            DPRINTF_EDIT_MSG32("EM_GETWORDBREAKPROCEX");
+            return 0;
+
+    case EM_GETWORDWRAPMODE:
+            DPRINTF_EDIT_MSG32("EM_GETWORDWRAPMODE");
+            return 0;
+
+    case EM_GETZOOM:
+            DPRINTF_EDIT_MSG32("EM_GETZOOM");
+            return 0;
+
+    case EM_HIDESELECTION:
+            DPRINTF_EDIT_MSG32("EM_HIDESELECTION");
+            return 0;
+
+    case EM_PASTESPECIAL:
+            DPRINTF_EDIT_MSG32("EM_PASTESPECIAL");
+            return 0;
+
+    case EM_RECONVERSION:
+            DPRINTF_EDIT_MSG32("EM_RECONVERSION");
+            return 0;
+
+    case EM_REDO:
+            DPRINTF_EDIT_MSG32("EM_REDO");
+            return 0;
+
+    case EM_REQUESTRESIZE:
+            DPRINTF_EDIT_MSG32("EM_REQUESTRESIZE");
+            return 0;
+
+    case EM_SELECTIONTYPE:
+            DPRINTF_EDIT_MSG32("EM_SELECTIONTYPE");
+            return 0;
+
+    case EM_SETBIDIOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_SETBIDIOPTIONS");
+            return 0;
+
+    case EM_SETBKGNDCOLOR:
+            DPRINTF_EDIT_MSG32("EM_SETBKGNDCOLOR");
+            return 0;
+
+    case EM_SETCHARFORMAT:
+            DPRINTF_EDIT_MSG32("EM_SETCHARFORMAT");
+            return 0;
+
+    case EM_SETEDITSTYLE:
+            DPRINTF_EDIT_MSG32("EM_SETEDITSTYLE");
+            return 0;
+
+    case EM_SETEVENTMASK:
+            DPRINTF_EDIT_MSG32("EM_SETEVENTMASK");
+            return 0;
+
+    case EM_SETFONTSIZE:
+            DPRINTF_EDIT_MSG32("EM_SETFONTSIZE");
+            return 0;
+
+    case EM_SETIMECOLOR:
+            DPRINTF_EDIT_MSG32("EM_SETIMECOLO");
+            return 0;
+
+    case EM_SETIMEOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_SETIMEOPTIONS");
+            return 0;
+
+    case EM_SETLANGOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_SETLANGOPTIONS");
+            return 0;
+
+    case EM_SETOLECALLBACK:
+            DPRINTF_EDIT_MSG32("EM_SETOLECALLBACK");
+            return 0;
+
+    case EM_SETOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_SETOPTIONS");
+            return 0;
+
+    case EM_SETPALETTE:
+            DPRINTF_EDIT_MSG32("EM_SETPALETTE");
+            return 0;
+
+    case EM_SETPARAFORMAT:
+            DPRINTF_EDIT_MSG32("EM_SETPARAFORMAT");
+            return 0;
+
+    case EM_SETPUNCTUATION:
+            DPRINTF_EDIT_MSG32("EM_SETPUNCTUATION");
+            return 0;
+
+    case EM_SETSCROLLPOS:
+            DPRINTF_EDIT_MSG32("EM_SETSCROLLPOS");
+            return 0;
+
+    case EM_SETTARGETDEVICE:
+            DPRINTF_EDIT_MSG32("EM_SETTARGETDEVICE");
+            return 0;
+
+    case EM_SETTEXTEX:
+            DPRINTF_EDIT_MSG32("EM_SETTEXTEX");
+            return 0;
+
+    case EM_SETTEXTMODE:
+            DPRINTF_EDIT_MSG32("EM_SETTEXTMODE");
+            return 0;
+
+    case EM_SETTYPOGRAPHYOPTIONS:
+            DPRINTF_EDIT_MSG32("EM_SETTYPOGRAPHYOPTIONS");
+            return 0;
+
+    case EM_SETUNDOLIMIT:
+            DPRINTF_EDIT_MSG32("EM_SETUNDOLIMIT");
+            return 0;
+
+    case EM_SETWORDBREAKPROCEX:
+            DPRINTF_EDIT_MSG32("EM_SETWORDBREAKPROCEX");
+            return 0;
+
+    case EM_SETWORDWRAPMODE:
+            DPRINTF_EDIT_MSG32("EM_SETWORDWRAPMODE");
+            return 0;
+
+    case EM_SETZOOM:
+            DPRINTF_EDIT_MSG32("EM_SETZOOM");
+            return 0;
+
+    case EM_SHOWSCROLLBAR:
+            DPRINTF_EDIT_MSG32("EM_SHOWSCROLLBAR");
+            return 0;
+
+    case EM_STOPGROUPTYPING:
+            DPRINTF_EDIT_MSG32("EM_STOPGROUPTYPING");
+            return 0;
+
+    case EM_STREAMOUT:
+            DPRINTF_EDIT_MSG32("EM_STREAMOUT");
+            return 0;
+
+/* Messaged dispatched to the edit control */
+    case EM_CANUNDO:
+    case EM_CHARFROMPOS:
+    case EM_EMPTYUNDOBUFFER:
+    case EM_FMTLINES:
+    case EM_GETFIRSTVISIBLELINE:
+    case EM_GETHANDLE:
+/*    case EM_GETIMESTATUS:*/
+    case EM_GETLIMITTEXT:
+    case EM_GETLINE:
+    case EM_GETLINECOUNT:
+    case EM_GETMARGINS:
+    case EM_GETMODIFY:
+    case EM_GETPASSWORDCHAR:
+    case EM_GETRECT:
+    case EM_GETSEL:
+    case EM_GETTHUMB:
+    case EM_GETWORDBREAKPROC:
+    case EM_LINEFROMCHAR:
+    case EM_LINEINDEX:
+    case EM_LINELENGTH:
+    case EM_LINESCROLL:
+    case EM_POSFROMCHAR:
+    case EM_REPLACESEL:
+    case EM_SCROLL:
+    case EM_SCROLLCARET:
+    case EM_SETHANDLE:
+/*    case EM_SETIMESTATUS:*/
+    case EM_SETLIMITTEXT:
+    case EM_SETMARGINS:
+    case EM_SETMODIFY:
+    case EM_SETPASSWORDCHAR:
+    case EM_SETREADONLY:
+    case EM_SETRECT:
+    case EM_SETRECTNP:
+    case EM_SETSEL:
+    case EM_SETTABSTOPS:
+    case EM_SETWORDBREAKPROC:
+    case EM_UNDO:
+
+    case WM_STYLECHANGING:
+    case WM_STYLECHANGED:
+    case WM_NCCALCSIZE:
+    case WM_GETTEXT:
+    case WM_GETTEXTLENGTH:
+    case WM_SETTEXT:
+	    return SendMessageA( hwndEdit, uMsg, wParam, lParam);
+
+    /* Messages known , but ignored. */ 
+    case WM_NCPAINT:
+        DPRINTF_EDIT_MSG32("WM_NCPAINT");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_PAINT:
+        DPRINTF_EDIT_MSG32("WM_PAINT");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_ERASEBKGND:
+        DPRINTF_EDIT_MSG32("WM_ERASEBKGND");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_KILLFOCUS:
+        DPRINTF_EDIT_MSG32("WM_KILLFOCUS");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_DESTROY:
+        DPRINTF_EDIT_MSG32("WM_DESTROY");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_CHILDACTIVATE:	       
+	DPRINTF_EDIT_MSG32("WM_CHILDACTIVATE");
+	return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+
+    case WM_WINDOWPOSCHANGING:
+        DPRINTF_EDIT_MSG32("WM_WINDOWPOSCHANGING");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_WINDOWPOSCHANGED:
+        DPRINTF_EDIT_MSG32("WM_WINDOWPOSCHANGED");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+/*    case WM_INITIALUPDATE:
+        DPRINTF_EDIT_MSG32("WM_INITIALUPDATE");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam); */
+    case WM_CTLCOLOREDIT:
+        DPRINTF_EDIT_MSG32("WM_CTLCOLOREDIT");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_SETCURSOR:
+        DPRINTF_EDIT_MSG32("WM_SETCURSOR");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_MOVE:
+        DPRINTF_EDIT_MSG32("WM_MOVE");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+    case WM_SHOWWINDOW:
+        DPRINTF_EDIT_MSG32("WM_SHOWWINDOW");
+        return DefWindowProcA( hwnd,uMsg,wParam,lParam);
+
     }
-    /*return SendMessageA( hwndEdit,uMsg,wParam,lParam);*/
+
+
+    FIXME("Unknown message %d\n", uMsg);
     return DefWindowProcA( hwnd,uMsg,wParam,lParam);
 }
 
@@ -168,6 +574,8 @@
 HRESULT WINAPI
 RICHED32_DllGetVersion (DLLVERSIONINFO *pdvi)
 {
+    TRACE("\n");
+
     if (pdvi->cbSize != sizeof(DLLVERSIONINFO)) {
  
 	return E_INVALIDARG;
@@ -195,6 +603,8 @@
 {
     WNDCLASSA wndClass; 
 
+    TRACE("\n");
+
     ZeroMemory(&wndClass, sizeof(WNDCLASSA));
     wndClass.style = CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS;
     wndClass.lpfnWndProc = (WNDPROC)RICHED32_WindowProc;
@@ -219,5 +629,7 @@
  */
 VOID RICHED32_Unregister(void)
 {
+    TRACE("\n");
+
     UnregisterClassA(RICHEDIT_CLASS10A, (HINSTANCE)NULL);
 }
Index: dlls/richedit/text-writer.c
===================================================================
RCS file: /home/wine/wine/dlls/richedit/text-writer.c,v
retrieving revision 1.1
diff -u -r1.1 text-writer.c
--- dlls/richedit/text-writer.c	2000/05/07 20:23:41	1.1
+++ dlls/richedit/text-writer.c	2002/01/12 19:05:41
@@ -41,7 +41,10 @@
 # include	"rtf.h"
 # include	"rtf2text.h"
 # include       "charlist.h"
+# include	"debugtools.h"
 
+DEFAULT_DEBUG_CHANNEL(richedit);
+
 static void	TextClass ();
 static void	ControlClass ();
 static void	Destination ();
@@ -60,8 +63,9 @@
     
    /* check if the buffer is big enough to hold all characters  */    
    /* we require one more for the '\0'                          */
-   
    
+   TRACE("\n");   
+
    if(nBufferSize < charlist.nCount + 1) {
         return charlist.nCount + CHARLIST_CountChar(&charlist, '\n') + 1;
    }
@@ -119,6 +123,8 @@
 {
 char	buf[rtfBufSiz];
 
+	TRACE("\n");   
+
 	if (rtfMinor != rtfSC_nothing)
 		PutStdChar (rtfMinor);
 	else
@@ -135,6 +141,7 @@
 static void
 ControlClass ()
 {
+	TRACE("\n");
 	switch (rtfMajor)
 	{
 	case rtfDestination:
@@ -156,6 +163,9 @@
 static void
 Destination ()
 {
+
+	TRACE("\n");
+
 	switch (rtfMinor)
 	{
 	case rtfPict:
@@ -185,6 +195,9 @@
 
 void SpecialChar ()
 {
+
+	TRACE("\n");
+
 	switch (rtfMinor)
 	{
 	case rtfPage:
@@ -249,6 +262,8 @@
 /*	if (stdCode == rtfSC_nothing)
 		RTFPanic ("Unknown character code, logic error\n");
 */		
+	TRACE("\n");
+
 	oStr = outMap[stdCode];
 	if (oStr == (char *) NULL)	/* no output sequence in map */
 	{
Index: include/richedit.h
===================================================================
RCS file: /home/wine/wine/include/richedit.h,v
retrieving revision 1.6
diff -u -r1.6 richedit.h
--- include/richedit.h	2001/11/16 18:11:16	1.6
+++ include/richedit.h	2002/01/12 19:05:45
@@ -57,6 +57,85 @@
 #define EM_GETWORDBREAKPROCEX	(WM_USER + 80)
 #define EM_SETWORDBREAKPROCEX	(WM_USER + 81)
 
+#define EM_SETUNDOLIMIT		(WM_USER + 82)
+#define EM_REDO			(WM_USER + 84)
+#define EM_CANREDO		(WM_USER + 85)
+#define EM_GETUNDONAME		(WM_USER + 86)
+#define EM_GETREDONAME		(WM_USER + 87)
+#define EM_STOPGROUPTYPING	(WM_USER + 88)
+
+#define EM_SETTEXTMODE		(WM_USER + 89)
+#define EM_GETTEXTMODE		(WM_USER + 90)
+#define EM_AUTOURLDETECT	(WM_USER + 91)
+#define EM_GETAUTOURLDETECT	(WM_USER + 92)
+#define EM_SETPALETTE		(WM_USER + 93)
+#define EM_GETTEXTEX		(WM_USER + 94)
+#define EM_GETTEXTLENGTHEX	(WM_USER + 95)
+#define EM_SHOWSCROLLBAR	(WM_USER + 96)
+#define EM_SETTEXTEX		(WM_USER + 97)
+
+#define EM_SETPUNCTUATION	(WM_USER + 100)
+#define EM_GETPUNCTUATION	(WM_USER + 101)
+#define EM_SETWORDWRAPMODE	(WM_USER + 102)
+#define EM_GETWORDWRAPMODE	(WM_USER + 103)
+#define EM_SETIMECOLOR		(WM_USER + 104)
+#define EM_GETIMECOLOR		(WM_USER + 105)
+#define EM_SETIMEOPTIONS	(WM_USER + 106)
+#define EM_GETIMEOPTIONS	(WM_USER + 107)
+#define EM_CONVPOSITION		(WM_USER + 108)
+
+#define EM_SETLANGOPTIONS	(WM_USER + 120)
+#define EM_GETLANGOPTIONS	(WM_USER + 121)
+#define EM_GETIMECOMPMODE	(WM_USER + 122)
+
+#define EM_SETLANGOPTIONS	(WM_USER + 120)
+#define EM_GETLANGOPTIONS	(WM_USER + 121)
+#define EM_GETIMECOMPMODE	(WM_USER + 122)
+
+#define EM_FINDTEXTW		(WM_USER + 123)
+#define EM_FINDTEXTEXW		(WM_USER + 124)
+
+#define EM_RECONVERSION		(WM_USER + 125)
+#define EM_SETIMEMODEBIAS	(WM_USER + 126)
+#define EM_GETIMEMODEBIAS	(WM_USER + 127)
+
+#define EM_SETBIDIOPTIONS	(WM_USER + 200)
+#define EM_GETBIDIOPTIONS	(WM_USER + 201)
+
+#define EM_SETTYPOGRAPHYOPTIONS (WM_USER + 202)
+#define EM_GETTYPOGRAPHYOPTIONS (WM_USER + 203)
+
+#define EM_SETEDITSTYLE		(WM_USER + 204)
+#define EM_GETEDITSTYLE		(WM_USER + 205)
+
+#define EM_OUTLINE              (WM_USER + 220)
+
+#define EM_GETSCROLLPOS         (WM_USER + 221)
+#define EM_SETSCROLLPOS         (WM_USER + 222)
+
+#define EM_SETFONTSIZE          (WM_USER + 223)  
+#define EM_GETZOOM		(WM_USER + 224)
+#define EM_SETZOOM		(WM_USER + 225)
+
+/* New notifications */
+#define EN_MSGFILTER                    0x0700   
+#define EN_REQUESTRESIZE                0x0701
+#define EN_SELCHANGE                    0x0702
+#define EN_DROPFILES                    0x0703
+#define EN_PROTECTED                    0x0704
+#define EN_CORRECTTEXT                  0x0705
+#define EN_STOPNOUNDO                   0x0706
+#define EN_IMECHANGE                    0x0707
+#define EN_SAVECLIPBOARD                0x0708
+#define EN_OLEOPFAILED                  0x0709
+#define EN_OBJECTPOSITIONS              0x070a
+#define EN_LINK				0x070b
+#define EN_DRAGDROPDONE                 0x070c
+#define EN_PARAGRAPHEXPANDED		0x070d
+#define EN_ALIGNLTR			0x0710
+#define EN_ALIGNRTL			0x0711
+
+
 typedef DWORD CALLBACK(* EDITSTREAMCALLBACK)( DWORD, LPBYTE, LONG, LONG * );
 
 /* Rich edit control styles */


More information about the wine-patches mailing list