Hans Leidekker : winspool.drv: Cast-qual warnings fix.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Oct 6 13:37:20 CDT 2006


Module: wine
Branch: master
Commit: ab85b653f51730e427de2558e5349d3d12ffb690
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ab85b653f51730e427de2558e5349d3d12ffb690

Author: Hans Leidekker <hans at it.vu.nl>
Date:   Fri Oct  6 14:25:54 2006 +0200

winspool.drv: Cast-qual warnings fix.

---

 dlls/winspool.drv/info.c |   31 ++++++++++++++++++++++---------
 1 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index d340705..1cb3adc 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -3727,7 +3727,7 @@ BOOL WINAPI EnumPrintersA(DWORD dwType, 
 static BOOL WINSPOOL_GetDriverInfoFromReg(
                             HKEY    hkeyDrivers,
                             LPWSTR  DriverName,
-                            LPWSTR  pEnvironment,
+                            LPCWSTR pEnvironment,
                             DWORD   Level,
                             LPBYTE  ptr,            /* DRIVER_INFO */
                             LPBYTE  pDriverStrings, /* strings buffer */
@@ -3774,7 +3774,7 @@ static BOOL WINSPOOL_GetDriverInfoFromRe
         ((PDRIVER_INFO_2A) ptr)->cVersion = (GetVersion() & 0x80000000) ? 0 : 3; /* FIXME: add 1, 2 */
 
     if(!pEnvironment)
-        pEnvironment = (LPWSTR)DefaultEnvironmentW;
+        pEnvironment = DefaultEnvironmentW;
     if(unicode)
         size = (lstrlenW(pEnvironment) + 1) * sizeof(WCHAR);
     else
@@ -6567,17 +6567,30 @@ end:
 /*****************************************************************************
  *          StartDocDlgA [WINSPOOL.@]
  */
- LPSTR WINAPI StartDocDlgA( HANDLE hPrinter, DOCINFOA *doc )
+LPSTR WINAPI StartDocDlgA( HANDLE hPrinter, DOCINFOA *doc )
 {
     UNICODE_STRING usBuffer;
     DOCINFOW docW;
     LPWSTR retW;
+    LPWSTR docnameW = NULL, outputW = NULL, datatypeW = NULL;
     LPSTR ret = NULL;
 
     docW.cbSize = sizeof(docW);
-    docW.lpszDocName = asciitounicode(&usBuffer, doc->lpszDocName);
-    docW.lpszOutput = asciitounicode(&usBuffer, doc->lpszOutput);
-    docW.lpszDatatype = asciitounicode(&usBuffer, doc->lpszDatatype);
+    if (doc->lpszDocName)
+    {
+        docnameW = asciitounicode(&usBuffer, doc->lpszDocName);
+        if (!(docW.lpszDocName = docnameW)) return NULL;
+    }
+    if (doc->lpszOutput)
+    {
+        outputW = asciitounicode(&usBuffer, doc->lpszOutput);
+        if (!(docW.lpszOutput = outputW)) return NULL;
+    }
+    if (doc->lpszDatatype)
+    {
+        datatypeW = asciitounicode(&usBuffer, doc->lpszDatatype);
+        if (!(docW.lpszDatatype = datatypeW)) return NULL;
+    }
     docW.fwType = doc->fwType;
 
     retW = StartDocDlgW(hPrinter, &docW);
@@ -6590,9 +6603,9 @@ end:
         HeapFree(GetProcessHeap(), 0, retW);
     }
 
-    HeapFree(GetProcessHeap(), 0, (LPWSTR)docW.lpszDatatype);
-    HeapFree(GetProcessHeap(), 0, (LPWSTR)docW.lpszOutput);
-    HeapFree(GetProcessHeap(), 0, (LPWSTR)docW.lpszDocName);
+    HeapFree(GetProcessHeap(), 0, datatypeW);
+    HeapFree(GetProcessHeap(), 0, outputW);
+    HeapFree(GetProcessHeap(), 0, docnameW);
 
     return ret;
 }




More information about the wine-cvs mailing list