Module: wine Branch: master Commit: f69a4ef07f7b1b0017e1bf335db27751c59b6d85 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f69a4ef07f7b1b0017e1bf335d...
Author: Detlef Riekenberg wine.dev@web.de Date: Wed Oct 13 00:27:20 2010 +0200
winspool: Use CUPS for printing.
---
dlls/winspool.drv/info.c | 10 +++++----- include/winspool.h | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 2f3c347..135f8a3 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -458,9 +458,8 @@ static BOOL CUPS_LoadPrinters(void) nrofdests = pcupsGetDests(&dests); TRACE("Found %d CUPS %s:\n", nrofdests, (nrofdests == 1) ? "printer" : "printers"); for (i=0;i<nrofdests;i++) { - /* FIXME: replace "LPR:" with "CUPS:". Fix printing output first */ - port = HeapAlloc(GetProcessHeap(), 0, strlen("LPR:") + strlen(dests[i].name)+1); - sprintf(port,"LPR:%s", dests[i].name); + port = HeapAlloc(GetProcessHeap(), 0, strlen("CUPS:") + strlen(dests[i].name)+1); + sprintf(port,"CUPS:%s", dests[i].name); /* FIXME: remove extension. Fix gdi32/drivers and comdlg32/printdlg first */ devline = HeapAlloc(GetProcessHeap(), 0, sizeof("WINEPS.DRV,,15,45") + strlen(port)); sprintf(devline, "WINEPS.DRV,%s", port); @@ -484,6 +483,7 @@ static BOOL CUPS_LoadPrinters(void) /* Printer already in registry, delete the tag added in WINSPOOL_LoadSystemPrinters and continue */ TRACE("Printer already exists\n"); + RegSetValueExA(hkeyPrinter, "Port", 0, REG_SZ, (LPBYTE)port, strlen(port) + 1); /* overwrite LPR:* port */ RegDeleteValueW(hkeyPrinter, May_Delete_Value); RegCloseKey(hkeyPrinter); } else { @@ -518,12 +518,12 @@ static BOOL CUPS_LoadPrinters(void)
hadprinter = TRUE; if (dests[i].is_default) { - WINSPOOL_SetDefaultPrinter(dests[i].name, dests[i].name, TRUE); + SetDefaultPrinterA(dests[i].name); haddefault = TRUE; } } if (hadprinter & !haddefault) - WINSPOOL_SetDefaultPrinter(dests[0].name, dests[0].name, TRUE); + SetDefaultPrinterA(dests[0].name); pcupsFreeDests(nrofdests, dests); RegCloseKey(hkeyPrinters); return hadprinter; diff --git a/include/winspool.h b/include/winspool.h index fcbcd0a..f436bea 100644 --- a/include/winspool.h +++ b/include/winspool.h @@ -1541,6 +1541,10 @@ BOOL WINAPI GetDefaultPrinterA(LPSTR pName, LPDWORD pcbNameSize); BOOL WINAPI GetDefaultPrinterW(LPWSTR pName, LPDWORD pcbNameSize); #define GetDefaultPrinter WINELIB_NAME_AW(GetDefaultPrinter)
+BOOL WINAPI SetDefaultPrinterA(LPCSTR); +BOOL WINAPI SetDefaultPrinterW(LPCWSTR); +#define SetDefaultPrinter WINELIB_NAME_AW(SetDefaultPrinter) + BOOL WINAPI DeletePrinterDriverA(LPSTR pName, LPSTR pEnvironment, LPSTR pDriverName); BOOL WINAPI DeletePrinterDriverW(LPWSTR pName, LPWSTR pEnvironment,