blob: 02a1dcf90cae7300502d9cdb3b24331acbd84da7 [file] [log] [blame]
From 7405032053cd382a03f3aee50194185c732c0f2c Mon Sep 17 00:00:00 2001
From: Sean Kau <skau@chromium.org>
Date: Mon, 24 Apr 2017 18:51:19 -0700
Subject: [PATCH] Add non-standard grays
---
cups/ppd-cache.c | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c
index 49589f29f..75b73c6cd 100644
--- a/cups/ppd-cache.c
+++ b/cups/ppd-cache.c
@@ -232,7 +232,12 @@ _cupsConvertOptions(ipp_t *request, /* I - IPP request */
{
if ((choice = ppdFindMarkedChoice(ppd, "ColorModel")) != NULL)
{
- if (!_cups_strcasecmp(choice->choice, "Gray"))
+ // Detect non-standard Grays. Be sure to keep in sync with other
+ // ColorModel parsing.
+ if (!_cups_strcasecmp(choice->choice, "Gray") ||
+ !_cups_strcasecmp(choice->choice, "KGray") ||
+ !_cups_strcasecmp(choice->choice, "CMYGray") ||
+ !_cups_strcasecmp(choice->choice, "Grayscale"))
keyword = "monochrome";
else
keyword = "color";
@@ -1480,12 +1485,32 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd) /* I - PPD file */
const char *color_option = NULL, /* Color control option */
*gray_choice = NULL; /* Choice to select grayscale */
+ // Parse Gray and other non-standard Grays. Keep in sync with
+ // keyword = monochrome detection.
if ((color_model = ppdFindOption(ppd, "ColorModel")) != NULL &&
ppdFindChoice(color_model, "Gray"))
{
color_option = "ColorModel";
gray_choice = "Gray";
}
+ else if ((color_model = ppdFindOption(ppd, "ColorModel")) != NULL &&
+ ppdFindChoice(color_model, "KGray"))
+ {
+ color_option = "ColorModel";
+ gray_choice = "KGray";
+ }
+ else if ((color_model = ppdFindOption(ppd, "ColorModel")) != NULL &&
+ ppdFindChoice(color_model, "CMYGray"))
+ {
+ color_option = "ColorModel";
+ gray_choice = "CMYGray";
+ }
+ else if ((color_model = ppdFindOption(ppd, "ColorModel")) != NULL &&
+ ppdFindChoice(color_model, "Grayscale"))
+ {
+ color_option = "ColorModel";
+ gray_choice = "Grayscale";
+ }
else if ((color_model = ppdFindOption(ppd, "HPColorMode")) != NULL &&
ppdFindChoice(color_model, "grayscale"))
{
--
2.13.0.rc0.306.g87b477812d-goog