| 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 |
| |