/
niceSOFT
/
cups
Обзор
Документация
Войти
/
niceSOFT
/
cups
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
cups/testcache.c
85 строк
2 KB
Michael R Sweet
Save PPD cache in testcache unit test.
19 июн 2026, 18:22
Не верифицирован
19 июн 2026, 18:22
bda1188
Код
Авторство
О чём код?
/* * PPD cache testing program for CUPS. * * Copyright © 2020-2026 by OpenPrinting. * Copyright © 2009-2018 by Apple Inc. * * Licensed under Apache License v2.0. See the file "LICENSE" for more * information. */ #include "ppd-private.h" #include "file-private.h" /* * 'main()' - Main entry. */ int /* O - Exit status */ main(int argc, /* I - Number of command-line args */ char *argv[]) /* I - Command-line arguments */ { int i; /* Looping var */ const char *ppdfile = NULL;/* PPD filename */ ppd_file_t *ppd; /* PPD file */ int num_options = 0;/* Number of options */ cups_option_t *options = NULL;/* Options */ _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) { puts("Usage: ./testcache filename.ppd [name=value ... name=value]"); return (1); } ppdfile = argv[1]; if ((ppd = ppdOpenFile(ppdfile)) == NULL) { ppd_status_t err; /* Last error in file */ int line; /* Line number in file */ err = ppdLastError(&line); fprintf(stderr, "Unable to open \"%s\": %s on line %d\n", ppdfile, ppdErrorString(err), line); return (1); } if ((pc = _ppdCacheCreateWithPPD(NULL, ppd)) == NULL) { fprintf(stderr, "Unable to create PPD cache from \"%s\".\n", ppdfile); return (1); } _ppdCacheWriteFile(pc, "t.cache", /*attrs*/NULL); for (i = 2; i < argc; i ++) num_options = cupsParseOptions(argv[i], num_options, &options); ppdMarkDefaults(ppd); cupsMarkOptions(ppd, num_options, options); num_finishings = _ppdCacheGetFinishingValues(ppd, pc, (int)sizeof(finishings) / sizeof(finishings[0]), finishings); 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); }