#include "ppd-private.h"
#include "file-private.h"
int
main(int argc,
char *argv[])
{
int i;
const char *ppdfile = NULL;
ppd_file_t *ppd;
int num_options = 0;
cups_option_t *options = NULL;
_ppd_cache_t *pc;
int num_finishings,
finishings[20];
ppd_choice_t *ppd_bin;
const char *output_bin;
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;
int line;
err = ppdLastError(&line);
fprintf(stderr, "Unable to open \"%s\": %s on line %d\n", ppdfile, ppdErrorString(err), line);
return (1);
}
if ((pc = _ppdCacheCreateWithPPD(ppd)) == NULL)
{
fprintf(stderr, "Unable to create PPD cache from \"%s\".\n", ppdfile);
return (1);
}
for (i = 2; i < argc; i ++)
num_options = cupsParseOptions(argv[i], num_options, &options);
ppdMarkDefaults(ppd);
cupsMarkOptions(ppd, num_options, options);
num_finishings = _ppdCacheGetFinishingValues(pc, num_options, options, (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);
}