If the default CUPS printer has no ppd file, just use the first
printer that has one as Windows default printer. Support PRINTER_ENUM_CONNECTIONS in the default way.
This commit is contained in:
parent
921eef3bde
commit
75e4e943e6
|
@ -131,6 +131,11 @@ CUPS_LoadPrinters(void) {
|
||||||
|
|
||||||
if (!ppd) {
|
if (!ppd) {
|
||||||
WARN("No ppd file for %s.\n",printers[i]);
|
WARN("No ppd file for %s.\n",printers[i]);
|
||||||
|
/* If this was going to be the default printer,
|
||||||
|
* forget it and use another one.
|
||||||
|
*/
|
||||||
|
if (def && !strcmp(def,printers[i]))
|
||||||
|
def = NULL;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
unlink(ppd);
|
unlink(ppd);
|
||||||
|
@ -139,6 +144,14 @@ CUPS_LoadPrinters(void) {
|
||||||
|
|
||||||
if (def && !strcmp(def,printers[i]))
|
if (def && !strcmp(def,printers[i]))
|
||||||
WINSPOOL_SetDefaultPrinter(printers[i],printers[i],FALSE);
|
WINSPOOL_SetDefaultPrinter(printers[i],printers[i],FALSE);
|
||||||
|
|
||||||
|
/* The default printer has no PPD file, just use the first one
|
||||||
|
* which has one.
|
||||||
|
*/
|
||||||
|
if (!def) {
|
||||||
|
WINSPOOL_SetDefaultPrinter(printers[i],printers[i],FALSE);
|
||||||
|
def = printers[i];
|
||||||
|
}
|
||||||
memset(&pinfo2a,0,sizeof(pinfo2a));
|
memset(&pinfo2a,0,sizeof(pinfo2a));
|
||||||
pinfo2a.pPrinterName = printers[i];
|
pinfo2a.pPrinterName = printers[i];
|
||||||
pinfo2a.pDatatype = "RAW";
|
pinfo2a.pDatatype = "RAW";
|
||||||
|
@ -1866,6 +1879,12 @@ static BOOL WINSPOOL_EnumPrinters(DWORD dwType, LPWSTR lpszName,
|
||||||
if(dwType == PRINTER_ENUM_DEFAULT)
|
if(dwType == PRINTER_ENUM_DEFAULT)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
if (dwType & PRINTER_ENUM_CONNECTIONS) {
|
||||||
|
FIXME("We dont handle PRINTER_ENUM_CONNECTIONS\n");
|
||||||
|
dwType &= ~PRINTER_ENUM_CONNECTIONS; /* we dont handle that */
|
||||||
|
dwType |= PRINTER_ENUM_LOCAL;
|
||||||
|
}
|
||||||
|
|
||||||
if (!((dwType & PRINTER_ENUM_LOCAL) || (dwType & PRINTER_ENUM_NAME))) {
|
if (!((dwType & PRINTER_ENUM_LOCAL) || (dwType & PRINTER_ENUM_NAME))) {
|
||||||
FIXME("dwType = %08lx\n", dwType);
|
FIXME("dwType = %08lx\n", dwType);
|
||||||
SetLastError(ERROR_INVALID_FLAGS);
|
SetLastError(ERROR_INVALID_FLAGS);
|
||||||
|
|
Loading…
Reference in New Issue