diff options
author | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2012-05-23 22:51:18 +0000 |
---|---|---|
committer | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2012-05-23 22:51:18 +0000 |
commit | a29fd7ddb5d63688a4d44d08e4ab16428921c321 (patch) | |
tree | d8e716c51da91f08d468e90262417f9a6d6fd5b0 /cups/testcups.c | |
parent | f3c17241a42a0845eae2099e6970b5aca9bbd836 (diff) | |
download | cups-a29fd7ddb5d63688a4d44d08e4ab16428921c321.tar.gz |
Merge changes from CUPS 1.6svn-r10510.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3833 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'cups/testcups.c')
-rw-r--r-- | cups/testcups.c | 118 |
1 files changed, 108 insertions, 10 deletions
diff --git a/cups/testcups.c b/cups/testcups.c index d25a78e55..18bb39cc4 100644 --- a/cups/testcups.c +++ b/cups/testcups.c @@ -58,18 +58,107 @@ main(int argc, /* I - Number of command-line arguments */ int num_jobs; /* Number of jobs for queue */ cups_job_t *jobs; /* Jobs for queue */ + if (argc > 1) { if (!strcmp(argv[1], "enum")) { - int msec; /* Timeout in milliseconds */ - - if (argc >= 3) - msec = atoi(argv[2]) * 1000; - else - msec = 0; - - cupsEnumDests(CUPS_DEST_FLAGS_NONE, msec, NULL, 0, 0, enum_cb, NULL); + cups_ptype_t mask = CUPS_PRINTER_LOCAL, + /* Printer type mask */ + type = CUPS_PRINTER_LOCAL; + /* Printer type */ + int msec = 0; /* Timeout in milliseconds */ + + + for (i = 2; i < argc; i ++) + if (isdigit(argv[i][0] & 255) || argv[i][0] == '.') + msec = (int)(atof(argv[i]) * 1000); + else if (!_cups_strcasecmp(argv[i], "bw")) + { + mask |= CUPS_PRINTER_BW; + type |= CUPS_PRINTER_BW; + } + else if (!_cups_strcasecmp(argv[i], "color")) + { + mask |= CUPS_PRINTER_COLOR; + type |= CUPS_PRINTER_COLOR; + } + else if (!_cups_strcasecmp(argv[i], "mono")) + { + mask |= CUPS_PRINTER_COLOR; + } + else if (!_cups_strcasecmp(argv[i], "duplex")) + { + mask |= CUPS_PRINTER_DUPLEX; + type |= CUPS_PRINTER_DUPLEX; + } + else if (!_cups_strcasecmp(argv[i], "simplex")) + { + mask |= CUPS_PRINTER_DUPLEX; + } + else if (!_cups_strcasecmp(argv[i], "staple")) + { + mask |= CUPS_PRINTER_STAPLE; + type |= CUPS_PRINTER_STAPLE; + } + else if (!_cups_strcasecmp(argv[i], "copies")) + { + mask |= CUPS_PRINTER_COPIES; + type |= CUPS_PRINTER_COPIES; + } + else if (!_cups_strcasecmp(argv[i], "collate")) + { + mask |= CUPS_PRINTER_COLLATE; + type |= CUPS_PRINTER_COLLATE; + } + else if (!_cups_strcasecmp(argv[i], "punch")) + { + mask |= CUPS_PRINTER_PUNCH; + type |= CUPS_PRINTER_PUNCH; + } + else if (!_cups_strcasecmp(argv[i], "cover")) + { + mask |= CUPS_PRINTER_COVER; + type |= CUPS_PRINTER_COVER; + } + else if (!_cups_strcasecmp(argv[i], "bind")) + { + mask |= CUPS_PRINTER_BIND; + type |= CUPS_PRINTER_BIND; + } + else if (!_cups_strcasecmp(argv[i], "sort")) + { + mask |= CUPS_PRINTER_SORT; + type |= CUPS_PRINTER_SORT; + } + else if (!_cups_strcasecmp(argv[i], "mfp")) + { + mask |= CUPS_PRINTER_MFP; + type |= CUPS_PRINTER_MFP; + } + else if (!_cups_strcasecmp(argv[i], "printer")) + { + mask |= CUPS_PRINTER_MFP; + } + else if (!_cups_strcasecmp(argv[i], "large")) + { + mask |= CUPS_PRINTER_LARGE; + type |= CUPS_PRINTER_LARGE; + } + else if (!_cups_strcasecmp(argv[i], "medium")) + { + mask |= CUPS_PRINTER_MEDIUM; + type |= CUPS_PRINTER_MEDIUM; + } + else if (!_cups_strcasecmp(argv[i], "small")) + { + mask |= CUPS_PRINTER_SMALL; + type |= CUPS_PRINTER_SMALL; + } + else + fprintf(stderr, "Unknown argument \"%s\" ignored...\n", argv[i]); + + cupsEnumDests(CUPS_DEST_FLAGS_NONE, msec, NULL, type, mask, enum_cb, NULL); } else if (!strcmp(argv[1], "password")) { @@ -416,10 +505,19 @@ enum_cb(void *user_data, /* I - User data (unused) */ unsigned flags, /* I - Destination flags */ cups_dest_t *dest) /* I - Destination */ { + int i; /* Looping var */ + cups_option_t *option; /* Current option */ + + if (flags & CUPS_DEST_FLAGS_REMOVED) - printf("Removed '%s'.\n", dest->name); + printf("Removed '%s':\n", dest->name); else - printf("Added '%s'.\n", dest->name); + printf("Added '%s':\n", dest->name); + + for (i = dest->num_options, option = dest->options; i > 0; i --, option ++) + printf(" %s=\"%s\"\n", option->name, option->value); + + putchar('\n'); return (1); } |