[PATCH] winspool: Check in add_printer_driver was to strict
Detlef Riekenberg
wine.dev at web.de
Mon Nov 5 15:48:07 CST 2007
---
dlls/winspool.drv/info.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index e560f6a..cfc8c29 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -486,18 +486,21 @@ static BOOL add_printer_driver(const cha
di3a.pConfigFile = driver_nt;
di3a.pDefaultDataType = default_data_type;
- if (AddPrinterDriverA(NULL, 3, (LPBYTE)&di3a))
+ if (AddPrinterDriverA(NULL, 3, (LPBYTE)&di3a) ||
+ (GetLastError() == ERROR_PRINTER_DRIVER_ALREADY_INSTALLED ))
{
di3a.cVersion = 0;
di3a.pEnvironment = env_9x;
di3a.pDriverPath = driver_9x;
di3a.pConfigFile = driver_9x;
- if (AddPrinterDriverA(NULL, 3, (LPBYTE)&di3a))
+ if (AddPrinterDriverA(NULL, 3, (LPBYTE)&di3a) ||
+ (GetLastError() == ERROR_PRINTER_DRIVER_ALREADY_INSTALLED ))
{
return TRUE;
}
}
- ERR("Failed adding driver %s: %u\n", debugstr_a(di3a.pDriverPath), GetLastError());
+ ERR("Failed adding driver %s (%s): %u\n", debugstr_a(di3a.pDriverPath),
+ debugstr_a(di3a.pEnvironment), GetLastError());
return FALSE;
}
--
1.4.1
--=-jYl4TLMn+ShxXPzNbj9F--
More information about the wine-patches
mailing list