[Wine-patches] Fwd: Fwd: [eter-2.1 2/5] winspool.drv: If DEVMODE doesn't specify what we need - use sane defaults. (eterbug #8330)

Roman Dadkov romand на etersoft.ru
Пт Янв 25 15:18:57 MSK 2013



-------- Исходное сообщение --------
Тема: [Wine-patches] Fwd: [eter-2.1 2/5] winspool.drv: If DEVMODE 
doesn't specify what we need - use sane defaults. (eterbug #8330)
Дата: 25.01.2013 15:03
От: Roman Dadkov <romand на etersoft.ru>
Кому: <wine-patches на lists.etersoft.ru>
Ответить: wine-devel на lists.etersoft.ru



-------- Исходное сообщение --------
Тема: [Wine-patches] [eter-2.1 2/5] winspool.drv: If DEVMODE doesn't 
specify what we need - use sane defaults. (eterbug #8330)
Дата: 25.01.2013 09:49
От: Dmitry Timoshkov <dtimoshkov на etersoft.ru>
Кому: wine-patches на lists.etersoft.ru
Ответить: wine-devel на lists.etersoft.ru

(cherry picked from commit 9cc76b727012b8a877196159ffe8752fe239c7ce)
---
  dlls/winspool.drv/info.c | 10 ++++++++--
  1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 2ca4d9a..7746805 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -8458,8 +8458,13 @@ static void prepare_destination_string(HANDLE 
hPrinter, DWORD JobId, LPWSTR outp

      GetJobW(hPrinter, JobId, 2, NULL, 0, &needed);
      ji2 = HeapAlloc(GetProcessHeap(), 0, needed);
-    GetJobW(hPrinter, JobId, 2, (LPBYTE)ji2, needed, &needed);
+    if (!GetJobW(hPrinter, JobId, 2, (LPBYTE)ji2, needed, &needed))
+        ERR("GetJobW failed\n");
      dm = ji2->pDevMode;
+    /* if DEVMODE doesn't specify what we need - set sane defaults */
+    if (!(dm->dmFields & DM_COPIES)) dm->u1.s1.dmCopies = 1;
+    if (!(dm->dmFields & DM_DUPLEX)) dm->dmDuplex = DMDUP_SIMPLEX;
+    if (!(dm->dmFields & DM_COLLATE)) dm->dmCollate = DMCOLLATE_FALSE;
      docname = ji2->pDocument;

      switch (dm->dmDuplex)
@@ -8480,8 +8485,9 @@ static void prepare_destination_string(HANDLE 
hPrinter, DWORD JobId, LPWSTR outp
          option_sides = sidesnoDuplex;
          option_duplex = noDuplex;
          ERR("Unexpected value of dmDuplex field\n");
+        break;
      }
-
+
      if (eterprinting_method() == PM_SIDES)
          option_duplex = option_sides;
      sprintfW(output, comstr, 
ji2->pPrinterName,lstrlenW(docname)?docname:defaultname,
-- 
1.8.0.2

_______________________________________________
Wine-patches mailing list
Wine-patches на lists.etersoft.ru
http://lists.etersoft.ru/mailman/listinfo/wine-patches

_______________________________________________
Wine-patches mailing list
Wine-patches на lists.etersoft.ru
http://lists.etersoft.ru/mailman/listinfo/wine-patches



Подробная информация о списке рассылки Wine-patches