From d489df6a975007b75ec63f112701cfc15e0ebe32 Mon Sep 17 00:00:00 2001 From: msweet Date: Thu, 24 Apr 2014 15:04:00 +0000 Subject: [PATCH] Fix mapping of OutputBin values such as "Tray1" () git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11832 a1ca3aef-8c08-0410-bb20-df032aa958be --- CHANGES-1.7.txt | 6 ++++++ cups/ppd-cache.c | 2 ++ cups/testcache.c | 24 ++++++++++++++++-------- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/CHANGES-1.7.txt b/CHANGES-1.7.txt index 49544805a..272a8087b 100644 --- a/CHANGES-1.7.txt +++ b/CHANGES-1.7.txt @@ -1,6 +1,12 @@ CHANGES-1.7.txt --------------- +CHANGES IN CUPS V1.7.3 + + - Fixed mapping of OutputBin values such as "Tray1" + () + + CHANGES IN CUPS V1.7.2 - Security: The scheduler now blocks URLs containing embedded HTML diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c index 27bce5f89..8b29e04d1 100644 --- a/cups/ppd-cache.c +++ b/cups/ppd-cache.c @@ -2703,6 +2703,8 @@ pwg_unppdize_name(const char *ppd, /* I - PPD keyword */ if (!_cups_isupper(*ppd) && _cups_isalnum(*ppd) && _cups_isupper(ppd[1]) && ptr < end) *ptr++ = '-'; + else if (!isdigit(*ppd & 255) && isdigit(ppd[1] & 255)) + *ptr++ = '-'; } *ptr = '\0'; diff --git a/cups/testcache.c b/cups/testcache.c index 96f05d725..2c92dbdc7 100644 --- a/cups/testcache.c +++ b/cups/testcache.c @@ -38,7 +38,8 @@ main(int argc, /* I - Number of command-line args */ _ppd_cache_t *pc; /* PPD cache and PWG mapping data */ int num_finishings, /* Number of finishing options */ finishings[20]; /* Finishing options */ - + ppd_choice_t *ppd_bin; /* OutputBin value */ + const char *output_bin; /* output-bin value */ if (argc < 2) { @@ -73,13 +74,20 @@ main(int argc, /* I - Number of command-line args */ num_finishings = _ppdCacheGetFinishingValues(pc, num_options, options, (int)sizeof(finishings) / sizeof(finishings[0]), finishings); - fputs("finishings=", stdout); - for (i = 0; i < num_finishings; i ++) - if (i) - printf(",%d", finishings[i]); - else - printf("%d", finishings[i]); - fputs("\n", stdout); + if (num_finishings > 0) + { + fputs("finishings=", stdout); + for (i = 0; i < num_finishings; i ++) + if (i) + printf(",%d", finishings[i]); + else + printf("%d", finishings[i]); + fputs("\n", stdout); + } + + if ((ppd_bin = ppdFindMarkedChoice(ppd, "OutputBin")) != NULL && + (output_bin = _ppdCacheGetBin(pc, ppd_bin->choice)) != NULL) + printf("output-bin=\"%s\"\n", output_bin); return (0); } -- 2.39.5