better user messages

Andreas Mohr andi at rhlx01.fht-esslingen.de
Sun May 19 16:19:49 CDT 2002


Hi all,

- silence "Already loaded font" warning to WARN()
- mention binary *and* header package for FreeType install
- slightly different printer failure messages for better differentation
- add an intro warning to ttydrv. Too damn many people get bitten by
  unknowingly using ttydrv instead of x11drv... (wineinstall problem etc.)
- greatly improved "library not found" message
- improve server permission error
- add WARN() about very bad programming style in case of FindWindow() invocation

-- 
Andreas Mohr                        Stauferstr. 6, D-71272 Renningen, Germany
-------------- next part --------------
Determining best CVS host...
Using CVSROOT :pserver:cvs at rhlx01.fht-esslingen.de:/home/wine
Index: dlls/gdi/freetype.c
===================================================================
RCS file: /home/wine/wine/dlls/gdi/freetype.c,v
retrieving revision 1.13
diff -u -r1.13 freetype.c
--- dlls/gdi/freetype.c	4 Apr 2002 15:30:29 -0000	1.13
+++ dlls/gdi/freetype.c	19 May 2002 21:14:36 -0000
@@ -242,7 +242,7 @@
     for(insertface = &family->FirstFace; *insertface;
 	insertface = &(*insertface)->next) {
         if(!strcmpW((*insertface)->StyleName, StyleW)) {
-	    ERR("Already loaded font %s %s\n", debugstr_w(family->FamilyName),
+	    WARN("Already loaded font %s %s\n", debugstr_w(family->FamilyName),
 		debugstr_w(StyleW));
 	    HeapFree(GetProcessHeap(), 0, StyleW);
 	    pFT_Done_Face(ft_face);
@@ -452,9 +452,9 @@
     ft_handle = wine_dlopen("libfreetype.so", RTLD_NOW, NULL, 0);
     if(!ft_handle) {
         WINE_MESSAGE(
-      "Wine cannot find the FreeType font library.  To enable Wine to\n"
-      "use TrueType fonts please install a version of FreeType greater than\n"
-      "or equal to 2.0.5.\n"
+      "Wine could not find the FreeType font library.  To enable Wine to\n"
+      "use TrueType fonts please install a version of FreeType\n"
+      "(plus devel/header file package) greater than or equal to 2.0.5.\n"
       "http://www.freetype.org\n");
 	return FALSE;
     }
Index: dlls/wineps/truetype.c
===================================================================
RCS file: /home/wine/wine/dlls/wineps/truetype.c,v
retrieving revision 1.15
diff -u -r1.15 truetype.c
--- dlls/wineps/truetype.c	3 Apr 2002 20:02:39 -0000	1.15
+++ dlls/wineps/truetype.c	19 May 2002 21:14:37 -0000
@@ -593,9 +593,9 @@
     ft_handle = wine_dlopen("libfreetype.so", RTLD_NOW, NULL, 0);
     if(!ft_handle) {
         WINE_MESSAGE(
-      "Wine cannot find the FreeType font library.  To enable Wine to\n"
-      "use TrueType fonts please install a version of FreeType greater than\n"
-      "or equal to 2.0.5.\n"
+      "Wine could not find the FreeType font library.  To enable Wine to\n"
+      "use TrueType fonts please install a version of FreeType\n"
+      "(plus devel/header file package) greater than or equal to 2.0.5.\n"
       "http://www.freetype.org\n");
 	return TRUE;
     }
Index: dlls/winspool/info.c
===================================================================
RCS file: /home/wine/wine/dlls/winspool/info.c,v
retrieving revision 1.51
diff -u -r1.51 info.c
--- dlls/winspool/info.c	17 May 2002 00:10:15 -0000	1.51
+++ dlls/winspool/info.c	19 May 2002 21:14:38 -0000
@@ -160,7 +160,7 @@
 
 	if (!AddPrinterA(NULL,2,(LPBYTE)&pinfo2a)) {
 	    if (GetLastError()!=ERROR_PRINTER_ALREADY_EXISTS)
-	        ERR("%s not added by AddPrinterA (%ld)\n",printers[i],GetLastError());
+	        ERR("printer '%s' not added by AddPrinterA (error %ld)\n",printers[i],GetLastError());
 	}
 	HeapFree(GetProcessHeap(),0,port);
     }
@@ -1060,7 +1060,7 @@
      */
     size = DocumentPropertiesW(0, -1, pi->pPrinterName, NULL, NULL, 0);
     if(size < 0) {
-        FIXME("DocumentProperties fails\n");
+        FIXME("DocumentPropertiesW on printer '%s' fails\n", pi->pPrinterName);
 	size = sizeof(DEVMODEW);
     }
     if(pi->pDevMode)
@@ -1069,7 +1069,7 @@
 	dmW = HeapAlloc(GetProcessHeap(), 0, size);
 	dmW->dmSize = size;
 	if (0>DocumentPropertiesW(0,-1,pi->pPrinterName,dmW,NULL,DM_OUT_BUFFER)) {
-	    ERR("DocumentPropertiesW failed!\n");
+	    ERR("DocumentPropertiesW on printer '%s' failed!\n", pi->pPrinterName);
 	    SetLastError(ERROR_UNKNOWN_PRINTER_DRIVER);
 	    return 0;
 	}
Index: dlls/ttydrv/ttydrv_main.c
===================================================================
RCS file: /home/wine/wine/dlls/ttydrv/ttydrv_main.c,v
retrieving revision 1.16
diff -u -r1.16 ttydrv_main.c
--- dlls/ttydrv/ttydrv_main.c	9 Mar 2002 23:44:30 -0000	1.16
+++ dlls/ttydrv/ttydrv_main.c	19 May 2002 21:14:38 -0000
@@ -80,6 +80,7 @@
     {
     case DLL_PROCESS_ATTACH:
         process_attach();
+	MESSAGE("WARNING: ttydrv is a pretty experimental text mode driver. Most likely you want to configure wine to use x11drv instead...\n");
         break;
 
     case DLL_PROCESS_DETACH:
Index: dlls/user/msg16.c
===================================================================
RCS file: /home/wine/wine/dlls/user/msg16.c,v
retrieving revision 1.8
diff -u -r1.8 msg16.c
--- dlls/user/msg16.c	9 Mar 2002 23:44:30 -0000	1.8
+++ dlls/user/msg16.c	19 May 2002 21:14:38 -0000
@@ -102,7 +102,7 @@
     case 0:
         return PostMessageW( hwnd, msg32, wparam32, lparam );
     case 1:
-        ERR( "16-bit message %x contains pointer, cannot post\n", msg );
+        ERR( "16-bit message 0x%04x contains pointer, cannot post\n", msg );
         return FALSE;
     default:
         return FALSE;
Index: loader/pe_image.c
===================================================================
RCS file: /home/wine/wine/loader/pe_image.c,v
retrieving revision 1.108
diff -u -r1.108 pe_image.c
--- loader/pe_image.c	2 Apr 2002 19:47:30 -0000	1.108
+++ loader/pe_image.c	19 May 2002 21:14:39 -0000
@@ -302,7 +302,7 @@
 
 	wmImp = MODULE_LoadLibraryExA( name, 0, 0 );
 	if (!wmImp) {
-	    ERR_(module)("Module (file) %s (which is needed by %s) not found\n", name, wm->filename);
+	    ERR_(module)("ERROR: could not find or load DLL/library file %s(.so ?), which is needed by %s; fix your configuration or maybe fetch that file !\n", name, wm->filename);
 	    return 1;
 	}
         wm->deps[i++] = wmImp;
Index: server/request.c
===================================================================
RCS file: /home/wine/wine/server/request.c,v
retrieving revision 1.63
diff -u -r1.63 request.c
--- server/request.c	3 Apr 2002 22:51:18 -0000	1.63
+++ server/request.c	19 May 2002 21:14:39 -0000
@@ -522,7 +522,7 @@
     if (stat( ".", &st ) == -1) fatal_perror( "stat %s", serverdir );
     if (!S_ISDIR(st.st_mode)) fatal_error( "%s is not a directory\n", serverdir );
     if (st.st_uid != getuid()) fatal_error( "%s is not owned by you\n", serverdir );
-    if (st.st_mode & 077) fatal_error( "%s must not be accessible by other users\n", serverdir );
+    if (st.st_mode & 077) fatal_error( "%s must not be accessible by other users (see \"man chmod\")\n", serverdir );
 }
 
 /* open the master server socket and start waiting for new clients */
Index: windows/win.c
===================================================================
RCS file: /home/wine/wine/windows/win.c,v
retrieving revision 1.183
diff -u -r1.183 win.c
--- windows/win.c	17 May 2002 02:55:48 -0000	1.183
+++ windows/win.c	19 May 2002 21:14:40 -0000
@@ -1590,7 +1590,10 @@
  */
 HWND WINAPI FindWindowA( LPCSTR className, LPCSTR title )
 {
-    HWND ret = FindWindowExA( 0, 0, className, title );
+    HWND ret;
+
+    WARN("app or wine makes use of FindWindow, which is bad programming since it can hang sometimes on Windows if a window is unresponsive. Use e.g. EnumerateWindows/SendMessageTimeout instead.\n");
+    ret = FindWindowExA( 0, 0, className, title );
     if (!ret) SetLastError (ERROR_CANNOT_FIND_WND_CLASS);
     return ret;
 }


More information about the wine-patches mailing list