IPP_TAG_BOOLEAN), 0))
cupsFilePuts(fp, "*cupsJobAccountingUserId: True\n");
+ if ((attr = ippFindAttribute(response, "printer-privacy-policy-uri", IPP_TAG_URI)) != NULL)
+ cupsFilePrintf(fp, "*cupsPrivacyURI: \"%s\"\n", ippGetString(attr, 0, NULL));
+
+ if ((attr = ippFindAttribute(response, "printer-mandatory-job-attributes", IPP_TAG_KEYWORD)) != NULL)
+ {
+ char prefix = '\"'; // Prefix for string
+
+ cupsFilePuts(fp, "*cupsMandatory: \"");
+ for (i = 0, count = ippGetCount(attr); i < count; i ++)
+ {
+ keyword = ippGetString(attr, i, NULL);
+
+ if (strcmp(keyword, "attributes-charset") && strcmp(keyword, "attributes-natural-language") && strcmp(keyword, "printer-uri"))
+ {
+ cupsFilePrintf(fp, "%c%s", prefix, keyword);
+ prefix = ',';
+ }
+ }
+ cupsFilePuts(fp, "\"\n");
+ }
+
+ if ((attr = ippFindAttribute(response, "printer-requested-job-attributes", IPP_TAG_KEYWORD)) != NULL)
+ {
+ char prefix = '\"'; // Prefix for string
+
+ cupsFilePuts(fp, "*cupsRequested: \"");
+ for (i = 0, count = ippGetCount(attr); i < count; i ++)
+ {
+ keyword = ippGetString(attr, i, NULL);
+
+ if (strcmp(keyword, "attributes-charset") && strcmp(keyword, "attributes-natural-language") && strcmp(keyword, "printer-uri"))
+ {
+ cupsFilePrintf(fp, "%c%s", prefix, keyword);
+ prefix = ',';
+ }
+ }
+ cupsFilePuts(fp, "\"\n");
+ }
+
/*
* Password/PIN printing...
*/
"TriplePortrait",
"TripleLandscape",
"TripleRevPortrait",
- "TripleRevLandscape",
+ "TripleRevLandscape"
"QuadPortrait",
"QuadLandscape",
"QuadRevPortrait",
for (i = 0; i < pc->num_bins; i ++)
- if (!_ppd_strcasecmp(output_bin, pc->bins[i].ppd))
+ if (!_ppd_strcasecmp(output_bin, pc->bins[i].ppd) || !_ppd_strcasecmp(output_bin, pc->bins[i].pwg))
return (pc->bins[i].pwg);
return (NULL);
return (NULL);
for (i = pc->num_sources, source = pc->sources; i > 0; i --, source ++)
- if (!_ppd_strcasecmp(input_slot, source->ppd))
+ if (!_ppd_strcasecmp(input_slot, source->ppd) || !_ppd_strcasecmp(input_slot, source->pwg))
return (source->pwg);
return (NULL);
return (NULL);
for (i = pc->num_types, type = pc->types; i > 0; i --, type ++)
- if (!_ppd_strcasecmp(media_type, type->ppd))
+ if (!_ppd_strcasecmp(media_type, type->ppd) || !_ppd_strcasecmp(media_type, type->pwg))
return (type->pwg);
return (NULL);