]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Fix handling of the output-bin and print-quality IPP attributes 18/head
authorPranav Batra <batrapranav@chromium.org>
Wed, 28 Oct 2020 04:14:16 +0000 (04:14 +0000)
committerPranav Batra <batrapranav@chromium.org>
Wed, 28 Oct 2020 04:17:35 +0000 (04:17 +0000)
The PPD generation code now works for printers that support a single
output bin. Also the PPD parsing code now parses the cupsPrintQuality
field which is generated by the PPD generation code.

cups/ppd-cache.c
scheduler/printers.c

index aeec8c55ab61a591c864a9d9cba6c5a650d3d0d8..5c10eadf4716ab17688780312c3f4efaa3b6779d 100644 (file)
@@ -3929,7 +3929,7 @@ _ppdCreateFromIPP(char   *buffer, /* I - Filename buffer */
   else
     strlcpy(ppdname, "Unknown", sizeof(ppdname));
 
-  if ((attr = ippFindAttribute(response, "output-bin-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 1)
+  if ((attr = ippFindAttribute(response, "output-bin-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 0)
   {
     ipp_attribute_t    *trays = ippFindAttribute(response, "printer-output-tray", IPP_TAG_STRING);
                                        /* printer-output-tray attribute, if any */
index 8f67c2bad8999350b22cc663d98147c7153f7b28..23feb3429fe28513477dd4b5817ef5844e21220a 100644 (file)
@@ -4019,7 +4019,8 @@ load_ppd(cupsd_printer_t *p)              /* I - Printer */
 
     num_qualities = 0;
 
-    if ((output_mode = ppdFindOption(ppd, "OutputMode")) != NULL)
+    if ((output_mode = ppdFindOption(ppd, "OutputMode")) ||
+        (output_mode = ppdFindOption(ppd, "cupsPrintQuality")))
     {
       if (ppdFindChoice(output_mode, "draft") ||
           ppdFindChoice(output_mode, "fast"))