• Home
  • Raw
  • Download

Lines Matching +full:- +full:- +full:preset +full:- +full:default

4  * Copyright © 2007-2019 by Apple Inc.
5 * Copyright © 1997-2007 by Easy Software Products, all rights reserved.
17 #include "cups-private.h"
18 #include "ppd-private.h"
19 #include "debug-internal.h"
38 * 'cupsMarkOptions()' - Mark command-line options in a PPD file.
41 * "multiple-document-handling", "output-bin", "print-color-mode",
42 * "print-quality", "printer-resolution", and "sides" attributes to their
46 int /* O - 1 if conflicts exist, 0 otherwise */
48 ppd_file_t *ppd, /* I - PPD file */ in cupsMarkOptions()
49 int num_options, /* I - Number of options */ in cupsMarkOptions()
50 cups_option_t *options) /* I - Options */ in cupsMarkOptions()
57 *output_bin, /* output-bin option */ in cupsMarkOptions()
60 *print_color_mode, /* print-color-mode option */ in cupsMarkOptions()
61 *print_quality, /* print-quality option */ in cupsMarkOptions()
78 * Do special handling for finishings, media, output-bin, output-mode, in cupsMarkOptions()
79 * print-color-mode, print-quality, and PageSize... in cupsMarkOptions()
83 output_bin = cupsGetOption("output-bin", num_options, options); in cupsMarkOptions()
85 print_quality = cupsGetOption("print-quality", num_options, options); in cupsMarkOptions()
88 if ((print_color_mode = cupsGetOption("print-color-mode", num_options, in cupsMarkOptions()
90 print_color_mode = cupsGetOption("output-mode", num_options, options); in cupsMarkOptions()
93 !ppd->cache) in cupsMarkOptions()
99 ppd->cache = _ppdCacheCreateWithPPD(ppd); in cupsMarkOptions()
102 cache = ppd->cache; in cupsMarkOptions()
112 * of macOS use it to specify auto-selection of the media based solely on in cupsMarkOptions()
119 * Extract the sub-option from the string... in cupsMarkOptions()
122 for (ptr = s; *val && *val != ',' && (size_t)(ptr - s) < (sizeof(s) - 1);) in cupsMarkOptions()
141 if (cache && cache->source_option && in cupsMarkOptions()
142 !cupsGetOption(cache->source_option, num_options, options) && in cupsMarkOptions()
144 ppd_mark_option(ppd, cache->source_option, ppd_keyword); in cupsMarkOptions()
160 * Map output-mode and print-quality to a preset... in cupsMarkOptions()
163 _pwg_print_color_mode_t pwg_pcm;/* print-color-mode index */ in cupsMarkOptions()
164 _pwg_print_quality_t pwg_pq; /* print-quality index */ in cupsMarkOptions()
165 cups_option_t *preset;/* Current preset option */ in cupsMarkOptions() local
174 pwg_pq = (_pwg_print_quality_t)(atoi(print_quality) - IPP_QUALITY_DRAFT); in cupsMarkOptions()
183 if (cache->num_presets[pwg_pcm][pwg_pq] == 0) in cupsMarkOptions()
186 * Try to find a preset that works so that we maximize the chances of us in cupsMarkOptions()
190 if (cache->num_presets[pwg_pcm][_PWG_PRINT_QUALITY_NORMAL] > 0) in cupsMarkOptions()
192 else if (cache->num_presets[_PWG_PRINT_COLOR_MODE_COLOR][pwg_pq] > 0) in cupsMarkOptions()
201 if (cache->num_presets[pwg_pcm][pwg_pq] > 0) in cupsMarkOptions()
204 * Copy the preset options as long as the corresponding names are not in cupsMarkOptions()
208 for (i = cache->num_presets[pwg_pcm][pwg_pq], in cupsMarkOptions()
209 preset = cache->presets[pwg_pcm][pwg_pq]; in cupsMarkOptions()
211 i --, preset ++) in cupsMarkOptions()
213 if (!cupsGetOption(preset->name, num_options, options)) in cupsMarkOptions()
214 ppd_mark_option(ppd, preset->name, preset->value); in cupsMarkOptions()
223 * Map output-bin to OutputBin... in cupsMarkOptions()
229 if (sides && cache->sides_option && in cupsMarkOptions()
230 !cupsGetOption(cache->sides_option, num_options, options)) in cupsMarkOptions()
236 if (!strcmp(sides, "one-sided") && cache->sides_1sided) in cupsMarkOptions()
237 ppd_mark_option(ppd, cache->sides_option, cache->sides_1sided); in cupsMarkOptions()
238 else if (!strcmp(sides, "two-sided-long-edge") && in cupsMarkOptions()
239 cache->sides_2sided_long) in cupsMarkOptions()
240 ppd_mark_option(ppd, cache->sides_option, cache->sides_2sided_long); in cupsMarkOptions()
241 else if (!strcmp(sides, "two-sided-short-edge") && in cupsMarkOptions()
242 cache->sides_2sided_short) in cupsMarkOptions()
243 ppd_mark_option(ppd, cache->sides_option, cache->sides_2sided_short); in cupsMarkOptions()
251 for (i = num_options, optptr = options; i > 0; i --, optptr ++) in cupsMarkOptions()
253 if (!_cups_strcasecmp(optptr->name, "media") || in cupsMarkOptions()
254 !_cups_strcasecmp(optptr->name, "output-bin") || in cupsMarkOptions()
255 !_cups_strcasecmp(optptr->name, "output-mode") || in cupsMarkOptions()
256 !_cups_strcasecmp(optptr->name, "print-quality") || in cupsMarkOptions()
257 !_cups_strcasecmp(optptr->name, "sides")) in cupsMarkOptions()
259 else if (!_cups_strcasecmp(optptr->name, "resolution") || in cupsMarkOptions()
260 !_cups_strcasecmp(optptr->name, "printer-resolution")) in cupsMarkOptions()
262 ppd_mark_option(ppd, "Resolution", optptr->value); in cupsMarkOptions()
263 ppd_mark_option(ppd, "SetResolution", optptr->value); in cupsMarkOptions()
265 ppd_mark_option(ppd, "JCLResolution", optptr->value); in cupsMarkOptions()
267 ppd_mark_option(ppd, "CNRes_PGP", optptr->value); in cupsMarkOptions()
270 else if (!_cups_strcasecmp(optptr->name, "multiple-document-handling")) in cupsMarkOptions()
275 if (_cups_strcasecmp(optptr->value, "separate-documents-uncollated-copies")) in cupsMarkOptions()
281 else if (!_cups_strcasecmp(optptr->name, "finishings")) in cupsMarkOptions()
287 for (ptr = optptr->value; *ptr;) in cupsMarkOptions()
319 ppd_mark_choices(ppd, attr->value); in cupsMarkOptions()
322 else if (!_cups_strcasecmp(optptr->name, "APPrinterPreset")) in cupsMarkOptions()
328 if ((attr = ppdFindAttr(ppd, "APPrinterPreset", optptr->value)) != NULL) in cupsMarkOptions()
334 ppd_mark_choices(ppd, attr->value); in cupsMarkOptions()
337 else if (!_cups_strcasecmp(optptr->name, "mirror")) in cupsMarkOptions()
338 ppd_mark_option(ppd, "MirrorPrint", optptr->value); in cupsMarkOptions()
340 ppd_mark_option(ppd, optptr->name, optptr->value); in cupsMarkOptions()
345 int pq = atoi(print_quality); /* print-quaity value */ in cupsMarkOptions()
362 * 'ppdFindChoice()' - Return a pointer to an option choice.
365 ppd_choice_t * /* O - Choice pointer or @code NULL@ */
366 ppdFindChoice(ppd_option_t *o, /* I - Pointer to option */ in ppdFindChoice()
367 const char *choice) /* I - Name of choice */ in ppdFindChoice()
379 for (i = o->num_choices, c = o->choices; i > 0; i --, c ++) in ppdFindChoice()
380 if (!_cups_strcasecmp(c->choice, choice)) in ppdFindChoice()
388 * 'ppdFindMarkedChoice()' - Return the marked choice for the specified option.
391 ppd_choice_t * /* O - Pointer to choice or @code NULL@ */
392 ppdFindMarkedChoice(ppd_file_t *ppd, /* I - PPD file */ in ppdFindMarkedChoice()
393 const char *option) /* I - Keyword/option name */ in ppdFindMarkedChoice()
407 marked = (ppd_choice_t *)cupsArrayFind(ppd->marked, &key); in ppdFindMarkedChoice()
410 marked ? marked->choice : "NULL")); in ppdFindMarkedChoice()
417 * 'ppdFindOption()' - Return a pointer to the specified option.
420 ppd_option_t * /* O - Pointer to option or @code NULL@ */
421 ppdFindOption(ppd_file_t *ppd, /* I - PPD file data */ in ppdFindOption()
422 const char *option) /* I - Option/Keyword name */ in ppdFindOption()
431 if (ppd->options) in ppdFindOption()
442 return ((ppd_option_t *)cupsArrayFind(ppd->options, &key)); in ppdFindOption()
455 for (i = ppd->num_groups, group = ppd->groups; i > 0; i --, group ++) in ppdFindOption()
456 for (j = group->num_options, optptr = group->options; in ppdFindOption()
458 j --, optptr ++) in ppdFindOption()
459 if (!_cups_strcasecmp(optptr->keyword, option)) in ppdFindOption()
468 * 'ppdIsMarked()' - Check to see if an option is marked.
471 int /* O - Non-zero if option is marked */
472 ppdIsMarked(ppd_file_t *ppd, /* I - PPD file data */ in ppdIsMarked()
473 const char *option, /* I - Option/Keyword name */ in ppdIsMarked()
474 const char *choice) /* I - Choice name */ in ppdIsMarked()
486 if ((c = (ppd_choice_t *)cupsArrayFind(ppd->marked, &key)) == NULL) in ppdIsMarked()
489 return (!strcmp(c->choice, choice)); in ppdIsMarked()
494 * 'ppdMarkDefaults()' - Mark all default options in the PPD file.
498 ppdMarkDefaults(ppd_file_t *ppd) /* I - PPD file record */ in ppdMarkDefaults()
512 for (c = (ppd_choice_t *)cupsArrayFirst(ppd->marked); in ppdMarkDefaults()
514 c = (ppd_choice_t *)cupsArrayNext(ppd->marked)) in ppdMarkDefaults()
516 cupsArrayRemove(ppd->marked, c); in ppdMarkDefaults()
517 c->marked = 0; in ppdMarkDefaults()
524 for (i = ppd->num_groups, g = ppd->groups; i > 0; i --, g ++) in ppdMarkDefaults()
536 * 'ppdMarkOption()' - Mark an option in a PPD file and return the number of
540 int /* O - Number of conflicts */
541 ppdMarkOption(ppd_file_t *ppd, /* I - PPD file record */ in ppdMarkOption()
542 const char *option, /* I - Keyword */ in ppdMarkOption()
543 const char *choice) /* I - Option name */ in ppdMarkOption()
570 * 'ppdFirstOption()' - Return the first option in the PPD file.
577 ppd_option_t * /* O - First option or @code NULL@ */
578 ppdFirstOption(ppd_file_t *ppd) /* I - PPD file */ in ppdFirstOption()
583 return ((ppd_option_t *)cupsArrayFirst(ppd->options)); in ppdFirstOption()
588 * 'ppdNextOption()' - Return the next option in the PPD file.
595 ppd_option_t * /* O - Next option or @code NULL@ */
596 ppdNextOption(ppd_file_t *ppd) /* I - PPD file */ in ppdNextOption()
601 return ((ppd_option_t *)cupsArrayNext(ppd->options)); in ppdNextOption()
606 * '_ppdParseOptions()' - Parse options from a PPD file.
616 int /* O - Number of options */
618 const char *s, /* I - String to parse */ in _ppdParseOptions()
619 int num_options, /* I - Number of options */ in _ppdParseOptions()
620 cups_option_t **options, /* IO - Options */ in _ppdParseOptions()
621 _ppd_parse_t which) /* I - What to parse */ in _ppdParseOptions()
650 while (*s && !_cups_isspace(*s) && ptr < (option + sizeof(option) - 1)) in _ppdParseOptions()
669 while (*s && !_cups_isspace(*s) && ptr < (choice + sizeof(choice) - 1)) in _ppdParseOptions()
693 * 'ppd_debug_marked()' - Output the marked array to stdout...
697 ppd_debug_marked(ppd_file_t *ppd, /* I - PPD file data */ in ppd_debug_marked()
698 const char *title) /* I - Title for list */ in ppd_debug_marked()
705 for (c = (ppd_choice_t *)cupsArrayFirst(ppd->marked); in ppd_debug_marked()
707 c = (ppd_choice_t *)cupsArrayNext(ppd->marked)) in ppd_debug_marked()
708 DEBUG_printf(("2cupsMarkOptions: %s=%s", c->option->keyword, c->choice)); in ppd_debug_marked()
714 * 'ppd_defaults()' - Set the defaults for this group and all sub-groups.
718 ppd_defaults(ppd_file_t *ppd, /* I - PPD file */ in ppd_defaults()
719 ppd_group_t *g) /* I - Group to default */ in ppd_defaults()
723 ppd_group_t *sg; /* Current sub-group */ in ppd_defaults()
726 for (i = g->num_options, o = g->options; i > 0; i --, o ++) in ppd_defaults()
727 if (_cups_strcasecmp(o->keyword, "PageRegion") != 0) in ppd_defaults()
728 ppd_mark_option(ppd, o->keyword, o->defchoice); in ppd_defaults()
730 for (i = g->num_subgroups, sg = g->subgroups; i > 0; i --, sg ++) in ppd_defaults()
736 * 'ppd_mark_choices()' - Mark one or more option choices from a string.
740 ppd_mark_choices(ppd_file_t *ppd, /* I - PPD file */ in ppd_mark_choices()
741 const char *s) /* I - "*Option Choice ..." string */ in ppd_mark_choices()
755 for (i = num_options, option = options; i > 0; i --, option ++) in ppd_mark_choices()
756 ppd_mark_option(ppd, option->name, option->value); in ppd_mark_choices()
763 * 'ppd_mark_option()' - Quick mark an option without checking for conflicts.
767 ppd_mark_option(ppd_file_t *ppd, /* I - PPD file */ in ppd_mark_option()
768 const char *option, /* I - Option name */ in ppd_mark_option()
769 const char *choice) /* I - Choice name */ in ppd_mark_option()
783 * AP_D_InputSlot is the "default input slot" on macOS, and setting in ppd_mark_option()
789 cupsArraySave(ppd->options); in ppd_mark_option()
794 if ((oldc = (ppd_choice_t *)cupsArrayFind(ppd->marked, &key)) != NULL) in ppd_mark_option()
796 oldc->marked = 0; in ppd_mark_option()
797 cupsArrayRemove(ppd->marked, oldc); in ppd_mark_option()
801 cupsArrayRestore(ppd->options); in ppd_mark_option()
808 cupsArraySave(ppd->options); in ppd_mark_option()
812 cupsArrayRestore(ppd->options); in ppd_mark_option()
849 if ((cparam = (ppd_cparam_t *)cupsArrayFirst(coption->params)) == NULL) in ppd_mark_option()
852 switch (cparam->type) in ppd_mark_option()
860 cparam->current.custom_real = (float)_cupsStrScand(choice + 7, in ppd_mark_option()
865 cparam->current.custom_points = (float)_cupsStrScand(choice + 7, in ppd_mark_option()
872 cparam->current.custom_points *= 72.0f / 2.54f; in ppd_mark_option()
874 cparam->current.custom_points *= 72.0f / 25.4f; in ppd_mark_option()
876 cparam->current.custom_points *= 72.0f / 0.0254f; in ppd_mark_option()
878 cparam->current.custom_points *= 72.0f; in ppd_mark_option()
880 cparam->current.custom_points *= 12.0f * 72.0f; in ppd_mark_option()
885 cparam->current.custom_int = atoi(choice + 7); in ppd_mark_option()
891 if (cparam->current.custom_string) in ppd_mark_option()
892 free(cparam->current.custom_string); in ppd_mark_option()
894 cparam->current.custom_string = strdup(choice + 7); in ppd_mark_option()
909 * Handle multi-value custom options... in ppd_mark_option()
929 if ((cparam = ppdFindCustomParam(coption, val->name)) == NULL) in ppd_mark_option()
932 switch (cparam->type) in ppd_mark_option()
940 cparam->current.custom_real = (float)_cupsStrScand(val->value, in ppd_mark_option()
945 cparam->current.custom_points = (float)_cupsStrScand(val->value, in ppd_mark_option()
952 cparam->current.custom_points *= 72.0f / 2.54f; in ppd_mark_option()
954 cparam->current.custom_points *= 72.0f / 25.4f; in ppd_mark_option()
956 cparam->current.custom_points *= 72.0f / 0.0254f; in ppd_mark_option()
958 cparam->current.custom_points *= 72.0f; in ppd_mark_option()
960 cparam->current.custom_points *= 12.0f * 72.0f; in ppd_mark_option()
965 cparam->current.custom_int = atoi(val->value); in ppd_mark_option()
971 if (cparam->current.custom_string) in ppd_mark_option()
972 free(cparam->current.custom_string); in ppd_mark_option()
974 cparam->current.custom_string = strdup(val->value); in ppd_mark_option()
984 for (i = o->num_choices, c = o->choices; i > 0; i --, c ++) in ppd_mark_option()
985 if (!_cups_strcasecmp(c->choice, choice)) in ppd_mark_option()
996 if (o->ui != PPD_UI_PICKMANY) in ppd_mark_option()
1002 if ((oldc = (ppd_choice_t *)cupsArrayFind(ppd->marked, c)) != NULL) in ppd_mark_option()
1004 oldc->marked = 0; in ppd_mark_option()
1005 cupsArrayRemove(ppd->marked, oldc); in ppd_mark_option()
1014 for (j = 0; j < ppd->num_sizes; j ++) in ppd_mark_option()
1015 ppd->sizes[j].marked = !_cups_strcasecmp(ppd->sizes[j].name, in ppd_mark_option()
1023 cupsArraySave(ppd->options); in ppd_mark_option()
1030 if ((oldc = (ppd_choice_t *)cupsArrayFind(ppd->marked, &key)) != NULL) in ppd_mark_option()
1032 oldc->marked = 0; in ppd_mark_option()
1033 cupsArrayRemove(ppd->marked, oldc); in ppd_mark_option()
1042 if ((oldc = (ppd_choice_t *)cupsArrayFind(ppd->marked, &key)) != NULL) in ppd_mark_option()
1044 oldc->marked = 0; in ppd_mark_option()
1045 cupsArrayRemove(ppd->marked, oldc); in ppd_mark_option()
1050 cupsArrayRestore(ppd->options); in ppd_mark_option()
1058 cupsArraySave(ppd->options); in ppd_mark_option()
1063 if ((oldc = (ppd_choice_t *)cupsArrayFind(ppd->marked, &key)) != NULL) in ppd_mark_option()
1065 oldc->marked = 0; in ppd_mark_option()
1066 cupsArrayRemove(ppd->marked, oldc); in ppd_mark_option()
1070 cupsArrayRestore(ppd->options); in ppd_mark_option()
1079 cupsArraySave(ppd->options); in ppd_mark_option()
1084 if ((oldc = (ppd_choice_t *)cupsArrayFind(ppd->marked, &key)) != NULL) in ppd_mark_option()
1086 oldc->marked = 0; in ppd_mark_option()
1087 cupsArrayRemove(ppd->marked, oldc); in ppd_mark_option()
1091 cupsArrayRestore(ppd->options); in ppd_mark_option()
1095 c->marked = 1; in ppd_mark_option()
1097 cupsArrayAdd(ppd->marked, c); in ppd_mark_option()