diff options
213 files changed, 7099 insertions, 5017 deletions
@@ -1,7 +1,47 @@ -CHANGES - 2.2.8 - 2018-06-05 +CHANGES - 2.2.9 - 2018-11-09 ============================ +Changes in CUPS v2.2.9 +---------------------- + +- Localization changes (Issue #5348, Issue #5362, Issue #5408) +- Documentation updates (Issue #5369) +- The lpadmin command would create a non-working printer in some error cases + (Issue #5305) +- The scheduler would crash if an empty `AccessLog` directive was specified + (Issue #5309) +- Fixed a regression in the changes to ippValidateAttribute (Issue #5322, + Issue #5330) +- Fixed a crash bug in the Epson dot matrix driver (Issue #5323) +- Automatic debug logging of job errors did not work with systemd (Issue #5337) +- The web interface did not list the IPP Everywhere "driver" (Issue #5338) +- The IPP Everywhere "driver" now properly supports face-up printers + (Issue #5345) +- Fixed some typos in the label printer drivers (Issue #5350) +- Multi-file jobs could get stuck if the backend failed (Issue #5359, + Issue #5413) +- The IPP Everywhere "driver" no longer does local filtering when printing to + a shared CUPS printer (Issue #5361) +- The lpadmin command now correctly reports IPP errors when configuring an + IPP Everywhere printer (Issue #5370) +- Fixed some memory leaks discovered by Coverity (Issue #5375) +- The PPD compiler incorrectly terminated JCL options (Issue #5379) +- The cupstestppd utility did not generate errors for missing/mismatched + CloseUI/JCLCloseUI keywords (Issue #5381) +- The scheduler now reports the actual location of the log file (Issue #5398) +- Added a USB quirk rule (Issue #5420) +- The scheduler was being backgrounded on macOS, causing applications to spin + (rdar://40436080) +- The scheduler did not validate that required initial request attributes were + in the operation group (rdar://41098178) +- Authentication in the web interface did not work on macOS (rdar://41444473) +- Fixed an issue with HTTP Digest authentication (rdar://41709086) +- The scheduler could crash when job history was purged (rdar://42198057) +- Dropped non-working RSS subscriptions UI from web interface templates. +- Fixed a memory leak for some IPP (extension) syntaxes. + + Changes in CUPS v2.2.8 ---------------------- @@ -1,4 +1,4 @@ -INSTALL - CUPS v2.2.8 - 2018-06-05 +INSTALL - CUPS v2.2.9 - 2018-11-08 ================================== This file describes how to compile and install CUPS from source code. For more @@ -21,7 +21,7 @@ does not endorse or support third-party support software for CUPS. > c. software updates will often replace parts of your local installation, > potentially rendering your system unusable. > -> Apple only supports using the Clang supplied with Xcode to build CUPS on +> Apple only supports using the compiler supplied with Xcode to build CUPS on > macOS. diff --git a/Makedefs.in b/Makedefs.in index 4055b93..f614c0c 100644 --- a/Makedefs.in +++ b/Makedefs.in @@ -1,7 +1,7 @@ # # Common makefile definitions for CUPS. # -# Copyright 2007-2017 by Apple Inc. +# Copyright 2007-2018 by Apple Inc. # Copyright 1997-2007 by Easy Software Products, all rights reserved. # # These coded instructions, statements, and computer programs are the @@ -95,10 +95,7 @@ LOCALTARGET = @LOCALTARGET@ # LIBCUPS = @LIBCUPS@ -LIBCUPSCGI = @LIBCUPSCGI@ LIBCUPSIMAGE = @LIBCUPSIMAGE@ -LIBCUPSMIME = @LIBCUPSMIME@ -LIBCUPSPPDC = @LIBCUPSPPDC@ LIBCUPSSTATIC = @LIBCUPSSTATIC@ LIBGSSAPI = @LIBGSSAPI@ LIBMALLOC = @LIBMALLOC@ @@ -127,6 +124,13 @@ IPPALIASES = @IPPALIASES@ INSTALLXPC = @INSTALLXPC@ # +# Code signing... +# + +CODE_SIGN = @CODE_SIGN@ +CODE_SIGN_IDENTITY = - + +# # Program options... # # ARCHFLAGS Defines the default architecture build options. @@ -1,7 +1,7 @@ # # Top-level Makefile for CUPS. # -# Copyright 2007-2016 by Apple Inc. +# Copyright 2007-2018 by Apple Inc. # Copyright 1997-2007 by Easy Software Products, all rights reserved. # # These coded instructions, statements, and computer programs are the @@ -273,32 +273,6 @@ apihelp: # -# Create an Xcode docset using Mini-XML's mxmldoc (http://www.msweet.org/)... -# - -docset: apihelp - echo Generating docset directory tree... - $(RM) -r org.cups.docset - mkdir -p org.cups.docset/Contents/Resources/Documentation/help - mkdir -p org.cups.docset/Contents/Resources/Documentation/images - cd man; $(MAKE) $(MFLAGS) html - cd doc; $(MAKE) $(MFLAGS) docset - cd cgi-bin; $(MAKE) $(MFLAGS) makedocset - cgi-bin/makedocset org.cups.docset \ - `svnversion . | sed -e '1,$$s/[a-zA-Z]//g'` \ - doc/help/api-*.tokens - $(RM) doc/help/api-*.tokens - echo Indexing docset... - /Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil index org.cups.docset - echo Generating docset archive and feed... - $(RM) org.cups.docset.atom - /Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil package --output org.cups.docset.xar \ - --atom org.cups.docset.atom \ - --download-url http://www.cups.org/org.cups.docset.xar \ - org.cups.docset - - -# # Lines of code computation... # @@ -1,4 +1,4 @@ -README - CUPS v2.2.8 - 2018-06-05 +README - CUPS v2.2.9 - 2018-11-08 ================================= Looking for compile instructions? Read the file `INSTALL.md` instead... diff --git a/backend/Makefile b/backend/Makefile index aeb33d8..48a1c66 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -250,6 +250,7 @@ libbackend.a: $(LIBOBJS) dnssd: dnssd.o ../cups/$(LIBCUPS) libbackend.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o dnssd dnssd.o libbackend.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ if test `uname` = Darwin; then \ $(RM) mdns; \ $(LN) dnssd mdns; \ @@ -263,6 +264,7 @@ dnssd: dnssd.o ../cups/$(LIBCUPS) libbackend.a ipp: ipp.o ../cups/$(LIBCUPS) libbackend.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o ipp ipp.o libbackend.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ $(RM) http $(LN) ipp http @@ -274,6 +276,7 @@ ipp: ipp.o ../cups/$(LIBCUPS) libbackend.a lpd: lpd.o ../cups/$(LIBCUPS) libbackend.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpd lpd.o libbackend.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -283,6 +286,7 @@ lpd: lpd.o ../cups/$(LIBCUPS) libbackend.a snmp: snmp.o ../cups/$(LIBCUPS) libbackend.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o snmp snmp.o libbackend.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -292,12 +296,14 @@ snmp: snmp.o ../cups/$(LIBCUPS) libbackend.a socket: socket.o ../cups/$(LIBCUPS) libbackend.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o socket socket.o libbackend.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ socket-static: socket.o ../cups/$(LIBCUPSSTATIC) libbackend.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o socket-static socket.o libbackend.a \ ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \ $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -308,6 +314,7 @@ usb: usb.o ../cups/$(LIBCUPS) libbackend.a echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o usb usb.o libbackend.a $(LIBUSB) \ $(BACKLIBS) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ usb.o: usb.c usb-darwin.c usb-libusb.c usb-unix.c diff --git a/backend/dnssd.c b/backend/dnssd.c index 849595d..c0d3579 100644 --- a/backend/dnssd.c +++ b/backend/dnssd.c @@ -1,7 +1,7 @@ /* * DNS-SD discovery backend for CUPS. * - * Copyright 2008-2017 by Apple Inc. + * Copyright 2008-2018 by Apple Inc. * * These coded instructions, statements, and computer programs are the * property of Apple Inc. and are protected by Federal copyright @@ -94,7 +94,7 @@ static void browse_callback(DNSServiceRef sdRef, const char *serviceName, const char *regtype, const char *replyDomain, void *context) - __attribute__((nonnull(1,5,6,7,8))); + _CUPS_NONNULL((1,5,6,7,8)); static void browse_local_callback(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, @@ -103,7 +103,7 @@ static void browse_local_callback(DNSServiceRef sdRef, const char *regtype, const char *replyDomain, void *context) - __attribute__((nonnull(1,5,6,7,8))); + _CUPS_NONNULL((1,5,6,7,8)); #endif /* HAVE_DNSSD */ #ifdef HAVE_AVAHI static void browse_callback(AvahiServiceBrowser *browser, @@ -121,12 +121,12 @@ static void client_callback(AvahiClient *client, #endif /* HAVE_AVAHI */ static int compare_devices(cups_device_t *a, cups_device_t *b); -static void exec_backend(char **argv) __attribute__((noreturn)); +static void exec_backend(char **argv) _CUPS_NORETURN; static cups_device_t *get_device(cups_array_t *devices, const char *serviceName, const char *regtype, const char *replyDomain) - __attribute__((nonnull(1,2,3,4))); + _CUPS_NONNULL((1,2,3,4)); #ifdef HAVE_DNSSD static void query_callback(DNSServiceRef sdRef, DNSServiceFlags flags, @@ -136,7 +136,7 @@ static void query_callback(DNSServiceRef sdRef, uint16_t rrclass, uint16_t rdlen, const void *rdata, uint32_t ttl, void *context) - __attribute__((nonnull(1,5,9,11))); + _CUPS_NONNULL((1,5,9,11)); #elif defined(HAVE_AVAHI) static int poll_callback(struct pollfd *pollfds, unsigned int num_pollfds, int timeout, @@ -153,7 +153,7 @@ static void query_callback(AvahiRecordBrowser *browser, #endif /* HAVE_DNSSD */ static void sigterm_handler(int sig); static void unquote(char *dst, const char *src, size_t dstsize) - __attribute__((nonnull(1,2))); + _CUPS_NONNULL((1,2)); /* @@ -1257,6 +1257,13 @@ query_callback( strlcat(make_and_model, " ", sizeof(make_and_model)); strlcat(make_and_model, model, sizeof(make_and_model)); + if (!_cups_strncasecmp(make_and_model, "EPSON EPSON ", 12)) + _cups_strcpy(make_and_model, make_and_model + 6); + else if (!_cups_strncasecmp(make_and_model, "HP HP ", 6)) + _cups_strcpy(make_and_model, make_and_model + 3); + else if (!_cups_strncasecmp(make_and_model, "Lexmark International Lexmark ", 30)) + _cups_strcpy(make_and_model, make_and_model + 22); + device->make_and_model = strdup(make_and_model); } else diff --git a/backend/ipp.c b/backend/ipp.c index 61e706e..f14a44e 100644 --- a/backend/ipp.c +++ b/backend/ipp.c @@ -1,7 +1,7 @@ /* * IPP backend for CUPS. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -426,9 +426,9 @@ main(int argc, /* I - Number of command-line args */ port = IPP_PORT; /* Default to port 631 */ if (!strcmp(scheme, "https") || !strcmp(scheme, "ipps")) - cupsSetEncryption(HTTP_ENCRYPT_ALWAYS); + cupsSetEncryption(HTTP_ENCRYPTION_ALWAYS); else - cupsSetEncryption(HTTP_ENCRYPT_IF_REQUESTED); + cupsSetEncryption(HTTP_ENCRYPTION_IF_REQUESTED); /* * See if there are any options... @@ -515,13 +515,13 @@ main(int argc, /* I - Number of command-line args */ */ if (!_cups_strcasecmp(value, "always")) - cupsSetEncryption(HTTP_ENCRYPT_ALWAYS); + cupsSetEncryption(HTTP_ENCRYPTION_ALWAYS); else if (!_cups_strcasecmp(value, "required")) - cupsSetEncryption(HTTP_ENCRYPT_REQUIRED); + cupsSetEncryption(HTTP_ENCRYPTION_REQUIRED); else if (!_cups_strcasecmp(value, "never")) - cupsSetEncryption(HTTP_ENCRYPT_NEVER); + cupsSetEncryption(HTTP_ENCRYPTION_NEVER); else if (!_cups_strcasecmp(value, "ifrequested")) - cupsSetEncryption(HTTP_ENCRYPT_IF_REQUESTED); + cupsSetEncryption(HTTP_ENCRYPTION_IF_REQUESTED); else { _cupsLangPrintFilter(stderr, "ERROR", @@ -709,11 +709,11 @@ main(int argc, /* I - Number of command-line args */ fprintf(stderr, "DEBUG: Connecting to %s:%d\n", hostname, port); _cupsLangPrintFilter(stderr, "INFO", _("Connecting to printer.")); - if (httpReconnect(http)) + if (httpReconnect2(http, 30000, NULL)) { int error = errno; /* Connection error */ - if (http->status == HTTP_PKI_ERROR) + if (http->status == HTTP_STATUS_CUPS_PKI_ERROR) update_reasons(NULL, "+cups-certificate-error"); if (job_canceled) @@ -916,7 +916,7 @@ main(int argc, /* I - Number of command-line args */ * Build the IPP request... */ - request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES); + request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES); ippSetVersion(request, version / 10, version % 10); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); @@ -931,7 +931,7 @@ main(int argc, /* I - Number of command-line args */ fputs("DEBUG: Getting supported attributes...\n", stderr); - if (http->version < HTTP_1_1) + if (http->version < HTTP_VERSION_1_1) { fprintf(stderr, "DEBUG: Printer responded with HTTP version %d.%d.\n", http->version / 100, http->version % 100); @@ -945,15 +945,15 @@ main(int argc, /* I - Number of command-line args */ fprintf(stderr, "DEBUG: Get-Printer-Attributes: %s (%s)\n", ippErrorString(ipp_status), cupsLastErrorString()); - if (ipp_status <= IPP_OK_CONFLICT) + if (ipp_status <= IPP_STATUS_OK_CONFLICTING) password_tries = 0; else { fprintf(stderr, "DEBUG: Get-Printer-Attributes returned %s.\n", ippErrorString(ipp_status)); - if (ipp_status == IPP_PRINTER_BUSY || - ipp_status == IPP_SERVICE_UNAVAILABLE) + if (ipp_status == IPP_STATUS_ERROR_BUSY || + ipp_status == IPP_STATUS_ERROR_SERVICE_UNAVAILABLE) { if (contimeout && (time(NULL) - start_time) > contimeout) { @@ -970,8 +970,8 @@ main(int argc, /* I - Number of command-line args */ delay = _cupsNextDelay(delay, &prev_delay); } - else if ((ipp_status == IPP_BAD_REQUEST || - ipp_status == IPP_VERSION_NOT_SUPPORTED) && version > 10) + else if ((ipp_status == IPP_STATUS_ERROR_BAD_REQUEST || + ipp_status == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED) && version > 10) { /* * Switch to IPP/1.1 or IPP/1.0... @@ -994,9 +994,9 @@ main(int argc, /* I - Number of command-line args */ version = 10; } - httpReconnect(http); + httpReconnect2(http, 30000, NULL); } - else if (ipp_status == IPP_NOT_FOUND) + else if (ipp_status == IPP_STATUS_ERROR_NOT_FOUND) { _cupsLangPrintFilter(stderr, "ERROR", _("The printer configuration is incorrect or the " @@ -1006,8 +1006,8 @@ main(int argc, /* I - Number of command-line args */ return (CUPS_BACKEND_STOP); } - else if (ipp_status == IPP_FORBIDDEN || - ipp_status == IPP_AUTHENTICATION_CANCELED) + else if (ipp_status == IPP_STATUS_ERROR_FORBIDDEN || + ipp_status == IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED) { const char *www_auth = httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE); /* WWW-Authenticate field value */ @@ -1020,13 +1020,13 @@ main(int argc, /* I - Number of command-line args */ fprintf(stderr, "ATTR: auth-info-required=%s\n", auth_info_required); return (CUPS_BACKEND_AUTH_REQUIRED); } - else if (ipp_status != IPP_NOT_AUTHORIZED) + else if (ipp_status != IPP_STATUS_ERROR_NOT_AUTHORIZED) { _cupsLangPrintFilter(stderr, "ERROR", _("Unable to get printer status.")); sleep(10); - httpReconnect(http); + httpReconnect2(http, 30000, NULL); } ippDelete(supported); @@ -1140,7 +1140,14 @@ main(int argc, /* I - Number of command-line args */ copies_sup = NULL; /* No */ } - cups_version = ippFindAttribute(supported, "cups-version", IPP_TAG_TEXT); + if ((cups_version = ippFindAttribute(supported, "cups-version", IPP_TAG_TEXT)) != NULL) + { + const char *version = ippGetString(cups_version, 0, NULL); + + fprintf(stderr, "DEBUG: cups-version = \"%s\"\n", version); + if (!strcmp(version, "cups-version")) + cups_version = NULL; /* Bogus cups-version value returned by buggy printers! */ + } encryption_sup = ippFindAttribute(supported, "job-password-encryption-supported", IPP_TAG_KEYWORD); @@ -1176,7 +1183,7 @@ main(int argc, /* I - Number of command-line args */ ippOpString(operations_sup->values[i].integer)); for (i = 0; i < operations_sup->num_values; i ++) - if (operations_sup->values[i].integer == IPP_PRINT_JOB) + if (operations_sup->values[i].integer == IPP_OP_PRINT_JOB) break; if (i >= operations_sup->num_values) @@ -1184,7 +1191,7 @@ main(int argc, /* I - Number of command-line args */ "cups-ipp-missing-print-job"); for (i = 0; i < operations_sup->num_values; i ++) - if (operations_sup->values[i].integer == IPP_CANCEL_JOB) + if (operations_sup->values[i].integer == IPP_OP_CANCEL_JOB) break; if (i >= operations_sup->num_values) @@ -1192,7 +1199,7 @@ main(int argc, /* I - Number of command-line args */ "cups-ipp-missing-cancel-job"); for (i = 0; i < operations_sup->num_values; i ++) - if (operations_sup->values[i].integer == IPP_GET_JOB_ATTRIBUTES) + if (operations_sup->values[i].integer == IPP_OP_GET_JOB_ATTRIBUTES) break; if (i >= operations_sup->num_values) @@ -1200,7 +1207,7 @@ main(int argc, /* I - Number of command-line args */ "cups-ipp-missing-get-job-attributes"); for (i = 0; i < operations_sup->num_values; i ++) - if (operations_sup->values[i].integer == IPP_GET_PRINTER_ATTRIBUTES) + if (operations_sup->values[i].integer == IPP_OP_GET_PRINTER_ATTRIBUTES) break; if (i >= operations_sup->num_values) @@ -1209,13 +1216,13 @@ main(int argc, /* I - Number of command-line args */ for (i = 0; i < operations_sup->num_values; i ++) { - if (operations_sup->values[i].integer == IPP_VALIDATE_JOB) + if (operations_sup->values[i].integer == IPP_OP_VALIDATE_JOB) validate_job = 1; - else if (operations_sup->values[i].integer == IPP_CREATE_JOB) + else if (operations_sup->values[i].integer == IPP_OP_CREATE_JOB) create_job = 1; - else if (operations_sup->values[i].integer == IPP_SEND_DOCUMENT) + else if (operations_sup->values[i].integer == IPP_OP_SEND_DOCUMENT) send_document = 1; - else if (operations_sup->values[i].integer == IPP_GET_JOB_ATTRIBUTES) + else if (operations_sup->values[i].integer == IPP_OP_GET_JOB_ATTRIBUTES) get_job_attrs = 1; } @@ -1243,7 +1250,7 @@ main(int argc, /* I - Number of command-line args */ report_printer_state(supported); } - while (!job_canceled && ipp_status > IPP_OK_CONFLICT); + while (!job_canceled && ipp_status > IPP_STATUS_OK_CONFLICTING); if (job_canceled) return (CUPS_BACKEND_OK); @@ -1261,7 +1268,7 @@ main(int argc, /* I - Number of command-line args */ IPP_TAG_BOOLEAN); if (printer_state == NULL || - (printer_state->values[0].integer > IPP_PRINTER_PROCESSING && + (printer_state->values[0].integer > IPP_PSTATE_PROCESSING && waitprinter) || printer_accepting == NULL || !printer_accepting->values[0].boolean) @@ -1387,7 +1394,7 @@ main(int argc, /* I - Number of command-line args */ * (I hate compatibility hacks!) */ - if (http->version < HTTP_1_1 && num_files == 0) + if (http->version < HTTP_VERSION_1_1 && num_files == 0) { if ((fd = cupsTempFd(tmpfilename, sizeof(tmpfilename))) < 0) { @@ -1415,7 +1422,7 @@ main(int argc, /* I - Number of command-line args */ files = &compatfile; num_files = 1; } - else if (http->version < HTTP_1_1 && num_files == 1) + else if (http->version < HTTP_VERSION_1_1 && num_files == 1) { struct stat fileinfo; /* File information */ @@ -1448,8 +1455,8 @@ main(int argc, /* I - Number of command-line args */ monitor.create_job = create_job; monitor.get_job_attrs = get_job_attrs; monitor.encryption = cupsEncryption(); - monitor.job_state = IPP_JOB_PENDING; - monitor.printer_state = IPP_PRINTER_IDLE; + monitor.job_state = IPP_JSTATE_PENDING; + monitor.printer_state = IPP_PSTATE_IDLE; monitor.retryable = argc == 6 && document_format && strcmp(document_format, "image/pwg-raster") && strcmp(document_format, "image/urf"); if (create_job) @@ -1532,10 +1539,10 @@ main(int argc, /* I - Number of command-line args */ "cups-ipp-missing-validate-job"); break; } - else if (ipp_status < IPP_REDIRECTION_OTHER_SITE || - ipp_status == IPP_BAD_REQUEST) + else if (ipp_status < IPP_STATUS_REDIRECTION_OTHER_SITE || + ipp_status == IPP_STATUS_ERROR_BAD_REQUEST) break; - else if (job_auth == NULL && ipp_status > IPP_BAD_REQUEST) + else if (job_auth == NULL && ipp_status > IPP_STATUS_ERROR_BAD_REQUEST) goto cleanup; } @@ -1560,8 +1567,8 @@ main(int argc, /* I - Number of command-line args */ if (job_canceled) break; - request = new_request((num_files > 1 || create_job) ? IPP_CREATE_JOB : - IPP_PRINT_JOB, + request = new_request((num_files > 1 || create_job) ? IPP_OP_CREATE_JOB : + IPP_OP_PRINT_JOB, version, uri, argv[2], monitor.job_name, num_options, options, compression, copies_sup ? copies : 1, document_format, pc, ppd, media_col_sup, @@ -1586,7 +1593,7 @@ main(int argc, /* I - Number of command-line args */ fputs("DEBUG: Sending file using HTTP/1.1 chunking...\n", stderr); http_status = cupsSendRequest(http, request, resource, length); - if (http_status == HTTP_CONTINUE && request->state == IPP_DATA) + if (http_status == HTTP_STATUS_CONTINUE && request->state == IPP_STATE_DATA) { if (compression && strcmp(compression, "none")) httpSetField(http, HTTP_FIELD_CONTENT_ENCODING, compression); @@ -1605,7 +1612,7 @@ main(int argc, /* I - Number of command-line args */ http_status = cupsWriteRequestData(http, buffer, (size_t)bytes); } - while (http_status == HTTP_CONTINUE && + while (http_status == HTTP_STATUS_CONTINUE && (!job_canceled || compatsize > 0)) { /* @@ -1630,7 +1637,7 @@ main(int argc, /* I - Number of command-line args */ fprintf(stderr, "DEBUG: Read %d bytes...\n", (int)bytes); if ((http_status = cupsWriteRequestData(http, buffer, (size_t)bytes)) - != HTTP_CONTINUE) + != HTTP_STATUS_CONTINUE) break; } else if (bytes == 0 || (errno != EINTR && errno != EAGAIN)) @@ -1638,7 +1645,7 @@ main(int argc, /* I - Number of command-line args */ } } - if (http_status == HTTP_ERROR) + if (http_status == HTTP_STATUS_ERROR) fprintf(stderr, "DEBUG: Error writing document data for " "Print-Job: %s\n", strerror(httpError(http))); @@ -1657,7 +1664,7 @@ main(int argc, /* I - Number of command-line args */ ippErrorString(ipp_status), cupsLastErrorString()); debug_attributes(response); - if (ipp_status > IPP_OK_CONFLICT) + if (ipp_status > IPP_STATUS_OK_CONFLICTING) { job_id = 0; @@ -1709,7 +1716,7 @@ main(int argc, /* I - Number of command-line args */ else if (www_auth[0]) auth_info_required = "username,password"; } - else if (ipp_status == IPP_REQUEST_VALUE) + else if (ipp_status == IPP_STATUS_ERROR_REQUEST_VALUE) { /* * Print file is too large, abort this job... @@ -1765,7 +1772,7 @@ main(int argc, /* I - Number of command-line args */ * Send the next file in the job... */ - request = ippNewRequest(IPP_SEND_DOCUMENT); + request = ippNewRequest(IPP_OP_SEND_DOCUMENT); ippSetVersion(request, version / 10, version % 10); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", @@ -1794,7 +1801,7 @@ main(int argc, /* I - Number of command-line args */ debug_attributes(request); http_status = cupsSendRequest(http, request, resource, 0); - if (http_status == HTTP_CONTINUE && request->state == IPP_DATA) + if (http_status == HTTP_STATUS_CONTINUE && request->state == IPP_STATE_DATA) { if (compression && strcmp(compression, "none")) httpSetField(http, HTTP_FIELD_CONTENT_ENCODING, compression); @@ -1818,11 +1825,11 @@ main(int argc, /* I - Number of command-line args */ if (fd >= 0) { - while (!job_canceled && http_status == HTTP_CONTINUE && + while (!job_canceled && http_status == HTTP_STATUS_CONTINUE && (bytes = read(fd, buffer, sizeof(buffer))) > 0) { if ((http_status = cupsWriteRequestData(http, buffer, (size_t)bytes)) - != HTTP_CONTINUE) + != HTTP_STATUS_CONTINUE) break; else { @@ -1838,7 +1845,7 @@ main(int argc, /* I - Number of command-line args */ close(fd); } - if (http_status == HTTP_ERROR) + if (http_status == HTTP_STATUS_ERROR) fprintf(stderr, "DEBUG: Error writing document data for " "Send-Document: %s\n", strerror(httpError(http))); @@ -1850,7 +1857,7 @@ main(int argc, /* I - Number of command-line args */ debug_attributes(response); ippDelete(response); - if (cupsLastError() > IPP_OK_CONFLICT && !job_canceled) + if (cupsLastError() > IPP_STATUS_OK_CONFLICTING && !job_canceled) { ipp_status = cupsLastError(); @@ -1871,12 +1878,12 @@ main(int argc, /* I - Number of command-line args */ if (job_canceled) break; - if (ipp_status <= IPP_OK_CONFLICT && argc > 6) + if (ipp_status <= IPP_STATUS_OK_CONFLICTING && argc > 6) { fprintf(stderr, "PAGE: 1 %d\n", copies_sup ? atoi(argv[4]) : 1); copies_remaining --; } - else if ((ipp_status == IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR || ipp_status == IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE) && + else if ((ipp_status == IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED || ipp_status == IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE) && argc == 6 && document_format && strcmp(document_format, "image/pwg-raster") && strcmp(document_format, "image/urf")) { @@ -1890,9 +1897,9 @@ main(int argc, /* I - Number of command-line args */ goto cleanup; } - else if (ipp_status == IPP_SERVICE_UNAVAILABLE || - ipp_status == IPP_NOT_POSSIBLE || - ipp_status == IPP_PRINTER_BUSY) + else if (ipp_status == IPP_STATUS_ERROR_SERVICE_UNAVAILABLE || + ipp_status == IPP_STATUS_ERROR_NOT_POSSIBLE || + ipp_status == IPP_STATUS_ERROR_BUSY) { if (argc == 6) { @@ -1908,14 +1915,14 @@ main(int argc, /* I - Number of command-line args */ } continue; } - else if (ipp_status == IPP_REQUEST_VALUE || - ipp_status == IPP_ERROR_JOB_CANCELED || - ipp_status == IPP_NOT_AUTHORIZED || + else if (ipp_status == IPP_STATUS_ERROR_REQUEST_VALUE || + ipp_status == IPP_STATUS_ERROR_JOB_CANCELED || + ipp_status == IPP_STATUS_ERROR_NOT_AUTHORIZED || ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED || ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED || ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED || ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED || - ipp_status == IPP_INTERNAL_ERROR) + ipp_status == IPP_STATUS_ERROR_INTERNAL) { /* * Print file is too large, job was canceled, we need new @@ -1945,7 +1952,7 @@ main(int argc, /* I - Number of command-line args */ goto cleanup; } - else if (ipp_status == IPP_NOT_FOUND) + else if (ipp_status == IPP_STATUS_ERROR_NOT_FOUND) { /* * Printer does not actually implement support for Create-Job/ @@ -1959,7 +1966,7 @@ main(int argc, /* I - Number of command-line args */ update_reasons(NULL, "+cups-ipp-conformance-failure-report," "cups-ipp-missing-send-document"); - ipp_status = IPP_INTERNAL_ERROR; /* Force queue to stop */ + ipp_status = IPP_STATUS_ERROR_INTERNAL; /* Force queue to stop */ goto cleanup; } @@ -1991,14 +1998,14 @@ main(int argc, /* I - Number of command-line args */ check_printer_state(http, uri, resource, argv[2], version); - if (cupsLastError() <= IPP_OK_CONFLICT) + if (cupsLastError() <= IPP_STATUS_OK_CONFLICTING) password_tries = 0; /* - * Build an IPP_GET_JOB_ATTRIBUTES request... + * Build an IPP_OP_GET_JOB_ATTRIBUTES request... */ - request = ippNewRequest(IPP_GET_JOB_ATTRIBUTES); + request = ippNewRequest(IPP_OP_GET_JOB_ATTRIBUTES); ippSetVersion(request, version / 10, version % 10); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", @@ -2022,11 +2029,11 @@ main(int argc, /* I - Number of command-line args */ * Do the request... */ - httpReconnect(http); + httpReconnect2(http, 30000, NULL); response = cupsDoRequest(http, request, resource); ipp_status = cupsLastError(); - if (ipp_status == IPP_NOT_FOUND || ipp_status == IPP_NOT_POSSIBLE) + if (ipp_status == IPP_STATUS_ERROR_NOT_FOUND || ipp_status == IPP_STATUS_ERROR_NOT_POSSIBLE) { /* * Job has gone away and/or the server has no job history... @@ -2036,7 +2043,7 @@ main(int argc, /* I - Number of command-line args */ "cups-ipp-missing-job-history"); ippDelete(response); - ipp_status = IPP_OK; + ipp_status = IPP_STATUS_OK; break; } @@ -2044,25 +2051,25 @@ main(int argc, /* I - Number of command-line args */ ippErrorString(ipp_status), cupsLastErrorString()); debug_attributes(response); - if (ipp_status <= IPP_OK_CONFLICT) + if (ipp_status <= IPP_STATUS_OK_CONFLICTING) password_tries = 0; else { - if (ipp_status != IPP_SERVICE_UNAVAILABLE && - ipp_status != IPP_PRINTER_BUSY) + if (ipp_status != IPP_STATUS_ERROR_SERVICE_UNAVAILABLE && + ipp_status != IPP_STATUS_ERROR_BUSY) { ippDelete(response); - ipp_status = IPP_OK; + ipp_status = IPP_STATUS_OK; break; } - else if (ipp_status == IPP_INTERNAL_ERROR) + else if (ipp_status == IPP_STATUS_ERROR_INTERNAL) { waitjob_tries ++; if (waitjob_tries > 4) { ippDelete(response); - ipp_status = IPP_OK; + ipp_status = IPP_STATUS_OK; break; } } @@ -2078,11 +2085,11 @@ main(int argc, /* I - Number of command-line args */ */ if (cups_version && - job_state->values[0].integer >= IPP_JOB_PENDING && - job_state->values[0].integer <= IPP_JOB_COMPLETED) + job_state->values[0].integer >= IPP_JSTATE_PENDING && + job_state->values[0].integer <= IPP_JSTATE_COMPLETED) update_reasons(NULL, remote_job_states[job_state->values[0].integer - - IPP_JOB_PENDING]); + IPP_JSTATE_PENDING]); if ((job_sheets = ippFindAttribute(response, "job-impressions-completed", IPP_TAG_INTEGER)) == NULL) job_sheets = ippFindAttribute(response, "job-media-sheets-completed", IPP_TAG_INTEGER); @@ -2102,9 +2109,9 @@ main(int argc, /* I - Number of command-line args */ break; } } - else if (ipp_status != IPP_SERVICE_UNAVAILABLE && - ipp_status != IPP_NOT_POSSIBLE && - ipp_status != IPP_PRINTER_BUSY) + else if (ipp_status != IPP_STATUS_ERROR_SERVICE_UNAVAILABLE && + ipp_status != IPP_STATUS_ERROR_NOT_POSSIBLE && + ipp_status != IPP_STATUS_ERROR_BUSY) { /* * If the printer does not return a job-state attribute, it does not @@ -2114,7 +2121,7 @@ main(int argc, /* I - Number of command-line args */ update_reasons(NULL, "+cups-ipp-conformance-failure-report," "cups-ipp-missing-job-state"); - ipp_status = IPP_INTERNAL_ERROR; + ipp_status = IPP_STATUS_ERROR_INTERNAL; break; } } @@ -2139,7 +2146,7 @@ main(int argc, /* I - Number of command-line args */ { cancel_job(http, uri, job_id, resource, argv[2], version); - if (cupsLastError() > IPP_OK_CONFLICT) + if (cupsLastError() > IPP_STATUS_OK_CONFLICTING) _cupsLangPrintFilter(stderr, "ERROR", _("Unable to cancel print job.")); } @@ -2149,7 +2156,7 @@ main(int argc, /* I - Number of command-line args */ check_printer_state(http, uri, resource, argv[2], version); - if (cupsLastError() <= IPP_OK_CONFLICT) + if (cupsLastError() <= IPP_STATUS_OK_CONFLICTING) password_tries = 0; /* @@ -2196,9 +2203,9 @@ main(int argc, /* I - Number of command-line args */ * Return the queue status... */ - if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN || - ipp_status == IPP_AUTHENTICATION_CANCELED || - ipp_status <= IPP_OK_CONFLICT) + if (ipp_status == IPP_STATUS_ERROR_NOT_AUTHORIZED || ipp_status == IPP_STATUS_ERROR_FORBIDDEN || + ipp_status == IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED || + ipp_status <= IPP_STATUS_OK_CONFLICTING) fprintf(stderr, "ATTR: auth-info-required=%s\n", auth_info_required); if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED) @@ -2210,25 +2217,25 @@ main(int argc, /* I - Number of command-line args */ else if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED) fputs("JOBSTATE: account-authorization-failed\n", stderr); - if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN || - ipp_status == IPP_AUTHENTICATION_CANCELED) + if (ipp_status == IPP_STATUS_ERROR_NOT_AUTHORIZED || ipp_status == IPP_STATUS_ERROR_FORBIDDEN || + ipp_status == IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED) return (CUPS_BACKEND_AUTH_REQUIRED); else if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED || ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED || ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED || ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED) return (CUPS_BACKEND_HOLD); - else if (ipp_status == IPP_INTERNAL_ERROR) + else if (ipp_status == IPP_STATUS_ERROR_INTERNAL) return (CUPS_BACKEND_STOP); - else if (ipp_status == IPP_CONFLICT || ipp_status == IPP_STATUS_ERROR_REQUEST_ENTITY || ipp_status == IPP_STATUS_ERROR_REQUEST_VALUE) + else if (ipp_status == IPP_STATUS_ERROR_CONFLICTING || ipp_status == IPP_STATUS_ERROR_REQUEST_ENTITY || ipp_status == IPP_STATUS_ERROR_REQUEST_VALUE) return (CUPS_BACKEND_FAILED); - else if (ipp_status == IPP_REQUEST_VALUE || + else if (ipp_status == IPP_STATUS_ERROR_REQUEST_VALUE || ipp_status == IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES || - ipp_status == IPP_DOCUMENT_FORMAT || job_canceled < 0) + ipp_status == IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED || job_canceled < 0) { - if (ipp_status == IPP_REQUEST_VALUE) + if (ipp_status == IPP_STATUS_ERROR_REQUEST_VALUE) _cupsLangPrintFilter(stderr, "ERROR", _("Print job too large.")); - else if (ipp_status == IPP_DOCUMENT_FORMAT) + else if (ipp_status == IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED) _cupsLangPrintFilter(stderr, "ERROR", _("Printer cannot print supplied content.")); else if (ipp_status == IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES) @@ -2239,7 +2246,7 @@ main(int argc, /* I - Number of command-line args */ return (CUPS_BACKEND_CANCEL); } - else if (ipp_status > IPP_OK_CONFLICT && ipp_status != IPP_ERROR_JOB_CANCELED) + else if (ipp_status > IPP_STATUS_OK_CONFLICTING && ipp_status != IPP_STATUS_ERROR_JOB_CANCELED) return (CUPS_BACKEND_RETRY_CURRENT); else return (CUPS_BACKEND_OK); @@ -2263,7 +2270,7 @@ cancel_job(http_t *http, /* I - HTTP connection */ _cupsLangPrintFilter(stderr, "INFO", _("Canceling print job.")); - request = ippNewRequest(IPP_CANCEL_JOB); + request = ippNewRequest(IPP_OP_CANCEL_JOB); ippSetVersion(request, version / 10, version % 10); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", @@ -2297,7 +2304,7 @@ check_printer_state( ipp_t *request, /* IPP request */ *response; /* IPP response */ ipp_attribute_t *attr; /* Attribute in response */ - ipp_pstate_t printer_state = IPP_PRINTER_STOPPED; + ipp_pstate_t printer_state = IPP_PSTATE_STOPPED; /* Current printer-state */ @@ -2305,7 +2312,7 @@ check_printer_state( * Send a Get-Printer-Attributes request and log the results... */ - request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES); + request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES); ippSetVersion(request, version / 10, version % 10); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", @@ -2431,14 +2438,14 @@ monitor_printer( monitor->job_reasons = 0; - while (monitor->job_state < IPP_JOB_CANCELED && !job_canceled) + while (monitor->job_state < IPP_JSTATE_CANCELED && !job_canceled) { /* * Reconnect to the printer as needed... */ if (httpGetFd(http) < 0) - httpReconnect(http); + httpReconnect2(http, 30000, NULL); if (httpGetFd(http) >= 0) { @@ -2450,7 +2457,7 @@ monitor_printer( monitor->resource, monitor->user, monitor->version); - if (cupsLastError() <= IPP_OK_CONFLICT) + if (cupsLastError() <= IPP_STATUS_OK_CONFLICTING) password_tries = 0; if (monitor->job_id == 0 && monitor->create_job) @@ -2467,13 +2474,13 @@ monitor_printer( */ job_op = (monitor->job_id > 0 && monitor->get_job_attrs) ? - IPP_GET_JOB_ATTRIBUTES : IPP_GET_JOBS; + IPP_OP_GET_JOB_ATTRIBUTES : IPP_OP_GET_JOBS; request = ippNewRequest(job_op); ippSetVersion(request, monitor->version / 10, monitor->version % 10); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, monitor->uri); - if (job_op == IPP_GET_JOB_ATTRIBUTES) + if (job_op == IPP_OP_GET_JOB_ATTRIBUTES) ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER, "job-id", monitor->job_id); @@ -2494,16 +2501,16 @@ monitor_printer( fprintf(stderr, "DEBUG: (monitor) %s: %s (%s)\n", ippOpString(job_op), ippErrorString(cupsLastError()), cupsLastErrorString()); - if (cupsLastError() <= IPP_OK_CONFLICT) + if (cupsLastError() <= IPP_STATUS_OK_CONFLICTING) password_tries = 0; - if (job_op == IPP_GET_JOB_ATTRIBUTES) + if (job_op == IPP_OP_GET_JOB_ATTRIBUTES) { if ((attr = ippFindAttribute(response, "job-state", IPP_TAG_ENUM)) != NULL) monitor->job_state = (ipp_jstate_t)attr->values[0].integer; else - monitor->job_state = IPP_JOB_COMPLETED; + monitor->job_state = IPP_JSTATE_COMPLETED; } else if (response) { @@ -2511,7 +2518,7 @@ monitor_printer( { job_id = 0; job_name = NULL; - job_state = IPP_JOB_PENDING; + job_state = IPP_JSTATE_PENDING; job_user = NULL; while (attr && attr->group_tag != IPP_TAG_JOB) @@ -2557,8 +2564,8 @@ monitor_printer( ippEnumString("job-state", monitor->job_state)); if (!job_canceled && - (monitor->job_state == IPP_JOB_CANCELED || - monitor->job_state == IPP_JOB_ABORTED)) + (monitor->job_state == IPP_JSTATE_CANCELED || + monitor->job_state == IPP_JSTATE_ABORTED)) { job_canceled = -1; fprintf(stderr, "DEBUG: (monitor) job_canceled = -1\n"); @@ -2639,8 +2646,8 @@ monitor_printer( ippEnumString("job-state", monitor->job_state)); if (!job_canceled && - (monitor->job_state == IPP_JOB_CANCELED || - monitor->job_state == IPP_JOB_ABORTED)) + (monitor->job_state == IPP_JSTATE_CANCELED || + monitor->job_state == IPP_JSTATE_ABORTED)) job_canceled = -1; } @@ -2662,14 +2669,14 @@ monitor_printer( if (job_canceled > 0 && monitor->job_id > 0) { if (httpGetFd(http) < 0) - httpReconnect(http); + httpReconnect2(http, 30000, NULL); if (httpGetFd(http) >= 0) { cancel_job(http, monitor->uri, monitor->job_id, monitor->resource, monitor->user, monitor->version); - if (cupsLastError() > IPP_OK_CONFLICT) + if (cupsLastError() > IPP_STATUS_OK_CONFLICTING) { fprintf(stderr, "DEBUG: (monitor) cancel_job() = %s\n", cupsLastErrorString()); _cupsLangPrintFilter(stderr, "ERROR", _("Unable to cancel print job.")); @@ -2745,7 +2752,7 @@ new_request( fprintf(stderr, "DEBUG: job-name=\"%s\"\n", title); } - if (format && op != IPP_CREATE_JOB) + if (format && op != IPP_OP_CREATE_JOB) { ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format", NULL, format); fprintf(stderr, "DEBUG: document-format=\"%s\"\n", format); @@ -3586,6 +3593,8 @@ update_reasons(ipp_attribute_t *attr, /* I - printer-state-reasons or NULL */ } } + cupsArrayDelete(new_reasons); + _cupsMutexUnlock(&report_mutex); /* diff --git a/backend/lpd.c b/backend/lpd.c index 4325b7c..d8c2e6b 100644 --- a/backend/lpd.c +++ b/backend/lpd.c @@ -24,14 +24,14 @@ #include <sys/stat.h> #include <stdio.h> -#ifdef WIN32 +#ifdef _WIN32 # include <winsock.h> #else # include <sys/socket.h> # include <netinet/in.h> # include <arpa/inet.h> # include <netdb.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #ifdef __APPLE__ # include <CoreFoundation/CFNumber.h> # include <CoreFoundation/CFPreferences.h> @@ -623,11 +623,11 @@ cups_rresvport(int *port, /* IO - Port number to bind to */ * -1... */ -#ifdef WIN32 +#ifdef _WIN32 closesocket(fd); #else close(fd); -#endif /* WIN32 */ +#endif /* _WIN32 */ return (-1); } @@ -735,11 +735,11 @@ lpd_queue(const char *hostname, /* I - Host to connect to */ ssize_t nbytes; /* Number of bytes written */ off_t tbytes; /* Total bytes written */ char buffer[32768]; /* Output buffer */ -#ifdef WIN32 +#ifdef _WIN32 DWORD tv; /* Timeout in milliseconds */ #else struct timeval tv; /* Timeout in secs and usecs */ -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -922,7 +922,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */ * Set the timeout... */ -#ifdef WIN32 +#ifdef _WIN32 tv = (DWORD)(timeout * 1000); setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(tv)); @@ -933,7 +933,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */ setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)); -#endif /* WIN32 */ +#endif /* _WIN32 */ fputs("STATE: -connecting-to-device\n", stderr); _cupsLangPrintFilter(stderr, "INFO", _("Connected to printer.")); diff --git a/backend/org.cups.usb-quirks b/backend/org.cups.usb-quirks index 1f1feff..fd3df82 100644 --- a/backend/org.cups.usb-quirks +++ b/backend/org.cups.usb-quirks @@ -284,3 +284,6 @@ # HP LaserJet P1102 (Issue #5310) 0x03F0 0x002A no-reattach + +# Lexmark MS317dn +0x043d 0x0226 no-reattach diff --git a/backend/socket.c b/backend/socket.c index c16a1a0..6cfe381 100644 --- a/backend/socket.c +++ b/backend/socket.c @@ -1,7 +1,7 @@ /* * AppSocket backend for CUPS. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -23,7 +23,7 @@ #include <sys/types.h> #include <sys/stat.h> -#ifdef WIN32 +#ifdef _WIN32 # include <winsock.h> #else # include <unistd.h> @@ -32,7 +32,7 @@ # include <netinet/in.h> # include <arpa/inet.h> # include <netdb.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -402,8 +402,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ lseek(print_fd, 0, SEEK_SET); } - tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addrlist->addr), 1, - 0, backendNetworkSideCB); + if ((bytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addrlist->addr), 1, 0, backendNetworkSideCB)) < 0) + tbytes = -1; + else + tbytes = bytes; if (print_fd != 0 && tbytes >= 0) _cupsLangPrintFilter(stderr, "INFO", _("Print file sent.")); @@ -411,7 +413,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ fputs("STATE: +cups-waiting-for-job-completed\n", stderr); - if (waiteof) + if (waiteof && tbytes >= 0) { /* * Shutdown the socket and wait for the other end to finish... @@ -448,7 +450,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ if (print_fd != 0) close(print_fd); - return (CUPS_BACKEND_OK); + return (tbytes >= 0 ? CUPS_BACKEND_OK : CUPS_BACKEND_FAILED); } diff --git a/backend/test1284.c b/backend/test1284.c index 85ac8b5..b55bb8e 100644 --- a/backend/test1284.c +++ b/backend/test1284.c @@ -18,12 +18,12 @@ */ #include <cups/string-private.h> -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> #else # include <unistd.h> # include <fcntl.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #include "ieee1284.c" diff --git a/backend/testbackend.c b/backend/testbackend.c index 969083a..39689b0 100644 --- a/backend/testbackend.c +++ b/backend/testbackend.c @@ -1,7 +1,7 @@ /* * Backend test program for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2005 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -38,7 +38,7 @@ static int job_canceled = 0; */ static void sigterm_handler(int sig); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; static void walk_cb(const char *oid, const char *data, int datalen, void *context); diff --git a/backend/usb-darwin.c b/backend/usb-darwin.c index 4f31d03..4a85b47 100644 --- a/backend/usb-darwin.c +++ b/backend/usb-darwin.c @@ -290,10 +290,10 @@ static void status_timer_cb(CFRunLoopTimerRef timer, void *info); #if defined(__i386__) || defined(__x86_64__) static pid_t child_pid; /* Child PID */ -static void run_legacy_backend(int argc, char *argv[], int fd) __attribute__((noreturn)); /* Starts child backend process running as a ppc executable */ +static void run_legacy_backend(int argc, char *argv[], int fd) _CUPS_NORETURN; /* Starts child backend process running as a ppc executable */ #endif /* __i386__ || __x86_64__ */ static void sigterm_handler(int sig); /* SIGTERM handler */ -static void sigquit_handler(int sig, siginfo_t *si, void *unused) __attribute__((noreturn)); +static void sigquit_handler(int sig, siginfo_t *si, void *unused) _CUPS_NORETURN; #ifdef PARSE_PS_ERRORS static const char *next_line (const char *buffer); diff --git a/backend/usb.c b/backend/usb.c index a3b6fba..b71f21d 100644 --- a/backend/usb.c +++ b/backend/usb.c @@ -24,13 +24,13 @@ #include "backend-private.h" -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> #else # include <unistd.h> # include <fcntl.h> # include <termios.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ /* diff --git a/berkeley/Makefile b/berkeley/Makefile index 0a17b53..ffa27b9 100644 --- a/berkeley/Makefile +++ b/berkeley/Makefile @@ -125,6 +125,7 @@ uninstall: lpc: lpc.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpc lpc.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -134,6 +135,7 @@ lpc: lpc.o ../cups/$(LIBCUPS) lpq: lpq.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpq lpq.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -143,6 +145,7 @@ lpq: lpq.o ../cups/$(LIBCUPS) lpr: lpr.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpr lpr.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -152,6 +155,7 @@ lpr: lpr.o ../cups/$(LIBCUPS) lprm: lprm.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lprm lprm.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/berkeley/lpq.c b/berkeley/lpq.c index fb6d121..9e30506 100644 --- a/berkeley/lpq.c +++ b/berkeley/lpq.c @@ -1,7 +1,7 @@ /* * "lpq" command for CUPS. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -26,7 +26,7 @@ static http_t *connect_server(const char *, http_t *); static int show_jobs(const char *, http_t *, const char *, const char *, const int, const int); static void show_printer(const char *, http_t *, const char *); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; /* diff --git a/cgi-bin/Makefile b/cgi-bin/Makefile index ae96307..24fdd1a 100644 --- a/cgi-bin/Makefile +++ b/cgi-bin/Makefile @@ -1,7 +1,7 @@ # # CGI makefile for CUPS. # -# Copyright 2007-2017 by Apple Inc. +# Copyright 2007-2018 by Apple Inc. # Copyright 1997-2006 by Easy Software Products. # # These coded instructions, statements, and computer programs are the @@ -26,7 +26,6 @@ OBJS = \ classes.o \ help.o \ jobs.o \ - makedocset.o \ printers.o \ testcgi.o \ testhi.o \ @@ -38,8 +37,7 @@ CGIS = \ jobs.cgi \ printers.cgi LIBTARGETS = \ - libcupscgi.a \ - $(LIBCUPSCGI) + libcupscgi.a UNITTARGETS = \ testcgi \ @@ -77,8 +75,7 @@ unittests: $(UNITTARGETS) # clean: - $(RM) $(OBJS) $(TARGETS) $(UNITTARGETS) makedocset - $(RM) libcupscgi.so libcupscgi.dylib + $(RM) $(OBJS) $(TARGETS) $(UNITTARGETS) # @@ -126,42 +123,13 @@ install-exec: # install-headers: - if test "x$(privateinclude)" != x; then \ - echo Installing private header files into $(PRIVATEINCLUDE)...; \ - $(INSTALL_DIR) -m 755 $(PRIVATEINCLUDE); \ - for file in cgi.h help-index.h; do \ - $(INSTALL_DATA) $$file $(PRIVATEINCLUDE); \ - done; \ - fi # # Install libraries... # -install-libs: $(INSTALLSTATIC) - echo Installing libraries in $(LIBDIR)... - $(INSTALL_DIR) -m 755 $(LIBDIR) - $(INSTALL_LIB) $(LIBCUPSCGI) $(LIBDIR) - if test $(LIBCUPSCGI) = "libcupscgi.so.1"; then \ - $(RM) $(LIBDIR)/`basename $(LIBCUPSCGI) .1`; \ - $(LN) $(LIBCUPSCGI) $(LIBDIR)/`basename $(LIBCUPSCGI) .1`; \ - fi - if test $(LIBCUPSCGI) = "libcupscgi.1.dylib"; then \ - $(RM) $(LIBDIR)/libcupscgi.dylib; \ - $(LN) $(LIBCUPSCGI) $(LIBDIR)/libcupscgi.dylib; \ - fi - if test "x$(SYMROOT)" != "x"; then \ - $(INSTALL_DIR) $(SYMROOT); \ - cp $(LIBCUPSCGI) $(SYMROOT); \ - dsymutil $(SYMROOT)/$(LIBCUPSCGI); \ - fi - -installstatic: - $(INSTALL_DIR) -m 755 $(LIBDIR) - $(INSTALL_LIB) -m 755 libcupscgi.a $(LIBDIR) - $(RANLIB) $(LIBDIR)/libcupscgi.a - $(CHMOD) 555 $(LIBDIR)/libcupscgi.a +install-libs: # @@ -173,54 +141,6 @@ uninstall: $(RM) $(SERVERBIN)/cgi-bin/$$file; \ done -$(RMDIR) $(SERVERBIN)/cgi-bin - $(RM) $(LIBDIR)/libcupscgi.1.dylib - $(RM) $(LIBDIR)/libcupscgi.a - $(RM) $(LIBDIR)/libcupscgi.dylib - $(RM) $(LIBDIR)/libcupscgi.so - $(RM) $(LIBDIR)/libcupscgi.so.1 - -$(RMDIR) $(LIBDIR) - -if test "x$(privateinclude)" != x; then \ - $(RM) $(PRIVATEINCLUDE)/cgi.h; \ - $(RM) $(PRIVATEINCLUDE)/help-index.h; \ - $(RMDIR) $(PRIVATEINCLUDE); \ - fi - - -# -# libcupscgi.so.1 -# - -libcupscgi.so.1: $(LIBOBJS) - echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS) - $(RM) `basename $@ .1` - $(LN) $@ `basename $@ .1` - - -# -# libcupscgi.1.dylib -# - -libcupscgi.1.dylib: $(LIBOBJS) libcupscgi.exp - echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \ - -install_name $(libdir)/$@ \ - -current_version 1.0.0 \ - -compatibility_version 1.0.0 \ - -exported_symbols_list libcupscgi.exp \ - $(LIBOBJS) $(LIBS) - $(RM) libcupscgi.dylib - $(LN) $@ libcupscgi.dylib - - -# -# libcupscgi.la -# - -libcupscgi.la: $(LIBOBJS) - echo Linking $@... - $(LD_CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \ - -version-info 1:0 $(LIBS) # @@ -238,56 +158,50 @@ libcupscgi.a: $(LIBOBJS) # admin.cgi # -admin.cgi: admin.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI) +admin.cgi: admin.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a echo Linking $@... - $(LD_CC) $(LDFLAGS) -o $@ admin.o -lcupscgi $(LIBS) + $(LD_CC) $(LDFLAGS) -o $@ admin.o libcupscgi.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # classes.cgi # -classes.cgi: classes.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI) +classes.cgi: classes.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a echo Linking $@... - $(LD_CC) $(LDFLAGS) -o $@ classes.o -lcupscgi $(LIBS) + $(LD_CC) $(LDFLAGS) -o $@ classes.o libcupscgi.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # help.cgi # -help.cgi: help.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI) +help.cgi: help.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a echo Linking $@... - $(LD_CC) $(LDFLAGS) -o $@ help.o -lcupscgi $(LIBS) + $(LD_CC) $(LDFLAGS) -o $@ help.o libcupscgi.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # jobs.cgi # -jobs.cgi: jobs.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI) +jobs.cgi: jobs.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a echo Linking $@... - $(LD_CC) $(LDFLAGS) -o $@ jobs.o -lcupscgi $(LIBS) - - -# -# makedocset -# - -makedocset: makedocset.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC) - echo Linking $@... - $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ makedocset.o libcupscgi.a \ - ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \ - $(LIBZ) $(LIBGSSAPI) + $(LD_CC) $(LDFLAGS) -o $@ jobs.o libcupscgi.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # printers.cgi # -printers.cgi: printers.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI) +printers.cgi: printers.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a echo Linking $@... - $(LD_CC) $(LDFLAGS) -o $@ printers.o -L. -lcupscgi $(LIBS) + $(LD_CC) $(LDFLAGS) -o $@ printers.o -L. libcupscgi.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -299,6 +213,7 @@ testcgi: testcgi.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC) $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testcgi.o libcupscgi.a \ ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \ $(LIBZ) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Testing CGI API... ./testcgi @@ -312,6 +227,7 @@ testhi: testhi.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC) $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testhi.o libcupscgi.a \ ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \ $(LIBZ) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Testing help index API... ./testhi @@ -324,6 +240,7 @@ testtemplate: testtemplate.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ testtemplate.o libcupscgi.a ../cups/$(LIBCUPSSTATIC) \ $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) $(LIBZ) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c index 576fac0..ce92977 100644 --- a/cgi-bin/admin.c +++ b/cgi-bin/admin.c @@ -1,7 +1,7 @@ /* * Administration CGI for CUPS. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -1137,6 +1137,8 @@ do_am_printer(http_t *http, /* I - HTTP connection */ else if (!file && (!cgiGetVariable("PPD_NAME") || cgiGetVariable("SELECT_MAKE"))) { + int ipp_everywhere = !strncmp(var, "ipp://", 6) || !strncmp(var, "ipps://", 7) || (!strncmp(var, "dnssd://", 8) && (strstr(var, "_ipp._tcp") || strstr(var, "_ipps._tcp"))); + if (modify && !cgiGetVariable("SELECT_MAKE")) { /* @@ -1282,9 +1284,8 @@ do_am_printer(http_t *http, /* I - HTTP connection */ cgiStartHTML(title); if (!cgiGetVariable("PPD_MAKE")) cgiSetVariable("PPD_MAKE", cgiGetVariable("CURRENT_MAKE")); - if (!modify) - cgiSetVariable("CURRENT_MAKE_AND_MODEL", - cgiGetArray("PPD_MAKE_AND_MODEL", 0)); + if (ipp_everywhere) + cgiSetVariable("SHOW_IPP_EVERYWHERE", "1"); cgiCopyTemplateLang("choose-model.tmpl"); cgiEndHTML(); } diff --git a/cgi-bin/cgi.h b/cgi-bin/cgi.h index 0c360cb..c2e5789 100644 --- a/cgi-bin/cgi.h +++ b/cgi-bin/cgi.h @@ -19,12 +19,12 @@ # include <time.h> # include <sys/stat.h> -# ifdef WIN32 +# ifdef _WIN32 # include <direct.h> # include <io.h> # else # include <unistd.h> -# endif /* WIN32 */ +# endif /* _WIN32 */ # include <cups/cups.h> # include <cups/array.h> diff --git a/cgi-bin/help-index.c b/cgi-bin/help-index.c index cb27164..6a6fcf4 100644 --- a/cgi-bin/help-index.c +++ b/cgi-bin/help-index.c @@ -1,7 +1,7 @@ /* * Online help index routines for CUPS. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -138,11 +138,7 @@ static int help_load_file(help_index_t *hi, const char *filename, const char *relative, time_t mtime); -static help_node_t *help_new_node(const char *filename, const char *anchor, - const char *section, const char *text, - time_t mtime, off_t offset, - size_t length) - __attribute__((nonnull(1,3,4))); +static help_node_t *help_new_node(const char *filename, const char *anchor, const char *section, const char *text, time_t mtime, off_t offset, size_t length) _CUPS_NONNULL((1, 3, 4)); static int help_sort_by_name(help_node_t *p1, help_node_t *p2); static int help_sort_by_score(help_node_t *p1, help_node_t *p2); static int help_sort_words(help_word_t *w1, help_word_t *w2); diff --git a/cgi-bin/makedocset.c b/cgi-bin/makedocset.c deleted file mode 100644 index 5a72177..0000000 --- a/cgi-bin/makedocset.c +++ /dev/null @@ -1,469 +0,0 @@ -/* - * Xcode documentation set generator. - * - * Copyright 2007-2012 by Apple Inc. - * Copyright 1997-2007 by Easy Software Products. - * - * These coded instructions, statements, and computer programs are the - * property of Apple Inc. and are protected by Federal copyright - * law. Distribution and use rights are outlined in the file "LICENSE.txt" - * which should have been included with this file. If this file is - * missing or damaged, see the license at "http://www.cups.org/". - * - * Usage: - * - * makedocset directory *.tokens - */ - -/* - * Include necessary headers... - */ - -#include "cgi-private.h" -#include <errno.h> - - -/* - * Local structures... - */ - -typedef struct _cups_html_s /**** Help file ****/ -{ - char *path; /* Path to help file */ - char *title; /* Title of help file */ -} _cups_html_t; - -typedef struct _cups_section_s /**** Help section ****/ -{ - char *name; /* Section name */ - cups_array_t *files; /* Files in this section */ -} _cups_section_t; - - -/* - * Local functions... - */ - -static int compare_html(_cups_html_t *a, _cups_html_t *b); -static int compare_sections(_cups_section_t *a, _cups_section_t *b); -static int compare_sections_files(_cups_section_t *a, _cups_section_t *b); -static void write_index(const char *path, help_index_t *hi); -static void write_info(const char *path, const char *revision); -static void write_nodes(const char *path, help_index_t *hi); - - -/* - * 'main()' - Test the help index code. - */ - -int /* O - Exit status */ -main(int argc, /* I - Number of command-line args */ - char *argv[]) /* I - Command-line arguments */ -{ - int i; /* Looping var */ - char path[1024], /* Path to documentation */ - line[1024]; /* Line from file */ - help_index_t *hi; /* Help index */ - cups_file_t *tokens, /* Tokens.xml file */ - *fp; /* Current file */ - - - if (argc < 4) - { - puts("Usage: makedocset directory revision *.tokens"); - return (1); - } - - /* - * Index the help documents... - */ - - snprintf(path, sizeof(path), "%s/Contents/Resources/Documentation", argv[1]); - if ((hi = helpLoadIndex(NULL, path)) == NULL) - { - fputs("makedocset: Unable to index help files!\n", stderr); - return (1); - } - - snprintf(path, sizeof(path), "%s/Contents/Resources/Documentation/index.html", - argv[1]); - write_index(path, hi); - - snprintf(path, sizeof(path), "%s/Contents/Resources/Nodes.xml", argv[1]); - write_nodes(path, hi); - - /* - * Write the Info.plist file... - */ - - snprintf(path, sizeof(path), "%s/Contents/Info.plist", argv[1]); - write_info(path, argv[2]); - - /* - * Merge the Tokens.xml files... - */ - - snprintf(path, sizeof(path), "%s/Contents/Resources/Tokens.xml", argv[1]); - if ((tokens = cupsFileOpen(path, "w")) == NULL) - { - fprintf(stderr, "makedocset: Unable to create \"%s\": %s\n", path, - strerror(errno)); - return (1); - } - - cupsFilePuts(tokens, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); - cupsFilePuts(tokens, "<Tokens version=\"1.0\">\n"); - - for (i = 3; i < argc; i ++) - { - if ((fp = cupsFileOpen(argv[i], "r")) == NULL) - { - fprintf(stderr, "makedocset: Unable to open \"%s\": %s\n", argv[i], - strerror(errno)); - return (1); - } - - if (!cupsFileGets(fp, line, sizeof(line)) || strncmp(line, "<?xml ", 6) || - !cupsFileGets(fp, line, sizeof(line)) || strncmp(line, "<Tokens ", 8)) - { - fprintf(stderr, "makedocset: Bad Tokens.xml file \"%s\"!\n", argv[i]); - return (1); - } - - while (cupsFileGets(fp, line, sizeof(line))) - { - if (strcmp(line, "</Tokens>")) - cupsFilePrintf(tokens, "%s\n", line); - } - - cupsFileClose(fp); - } - - cupsFilePuts(tokens, "</Tokens>\n"); - - cupsFileClose(tokens); - - /* - * Return with no errors... - */ - - return (0); -} - - -/* - * 'compare_html()' - Compare the titles of two HTML files. - */ - -static int /* O - Result of comparison */ -compare_html(_cups_html_t *a, /* I - First file */ - _cups_html_t *b) /* I - Second file */ -{ - return (_cups_strcasecmp(a->title, b->title)); -} - - -/* - * 'compare_sections()' - Compare the names of two help sections. - */ - -static int /* O - Result of comparison */ -compare_sections(_cups_section_t *a, /* I - First section */ - _cups_section_t *b) /* I - Second section */ -{ - return (_cups_strcasecmp(a->name, b->name)); -} - - -/* - * 'compare_sections_files()' - Compare the number of files and section names. - */ - -static int /* O - Result of comparison */ -compare_sections_files( - _cups_section_t *a, /* I - First section */ - _cups_section_t *b) /* I - Second section */ -{ - int ret = cupsArrayCount(b->files) - cupsArrayCount(a->files); - - if (ret) - return (ret); - else - return (_cups_strcasecmp(a->name, b->name)); -} - - -/* - * 'write_index()' - Write an index file for the CUPS help. - */ - -static void -write_index(const char *path, /* I - File to write */ - help_index_t *hi) /* I - Index of files */ -{ - cups_file_t *fp; /* Output file */ - help_node_t *node; /* Current help node */ - _cups_section_t *section, /* Current section */ - key; /* Section search key */ - _cups_html_t *html; /* Current HTML file */ - cups_array_t *sections, /* Sections in index */ - *sections_files,/* Sections sorted by size */ - *columns[3]; /* Columns in final HTML file */ - int column, /* Current column */ - lines[3], /* Number of lines in each column */ - min_column, /* Smallest column */ - min_lines; /* Smallest number of lines */ - - - /* - * Build an array of sections and their files. - */ - - sections = cupsArrayNew((cups_array_func_t)compare_sections, NULL); - - for (node = (help_node_t *)cupsArrayFirst(hi->nodes); - node; - node = (help_node_t *)cupsArrayNext(hi->nodes)) - { - if (node->anchor) - continue; - - key.name = node->section ? node->section : "Miscellaneous"; - if ((section = (_cups_section_t *)cupsArrayFind(sections, &key)) == NULL) - { - section = (_cups_section_t *)calloc(1, sizeof(_cups_section_t)); - section->name = key.name; - section->files = cupsArrayNew((cups_array_func_t)compare_html, NULL); - - cupsArrayAdd(sections, section); - } - - html = (_cups_html_t *)calloc(1, sizeof(_cups_html_t)); - html->path = node->filename; - html->title = node->text; - - cupsArrayAdd(section->files, html); - } - - /* - * Build a sorted list of sections based on the number of files in each section - * and the section name... - */ - - sections_files = cupsArrayNew((cups_array_func_t)compare_sections_files, - NULL); - for (section = (_cups_section_t *)cupsArrayFirst(sections); - section; - section = (_cups_section_t *)cupsArrayNext(sections)) - cupsArrayAdd(sections_files, section); - - /* - * Then build three columns to hold everything, trying to balance the number of - * lines in each column... - */ - - for (column = 0; column < 3; column ++) - { - columns[column] = cupsArrayNew((cups_array_func_t)compare_sections, NULL); - lines[column] = 0; - } - - for (section = (_cups_section_t *)cupsArrayFirst(sections_files); - section; - section = (_cups_section_t *)cupsArrayNext(sections_files)) - { - for (min_column = 0, min_lines = lines[0], column = 1; - column < 3; - column ++) - { - if (lines[column] < min_lines) - { - min_column = column; - min_lines = lines[column]; - } - } - - cupsArrayAdd(columns[min_column], section); - lines[min_column] += cupsArrayCount(section->files) + 2; - } - - /* - * Write the HTML file... - */ - - if ((fp = cupsFileOpen(path, "w")) == NULL) - { - fprintf(stderr, "makedocset: Unable to create %s: %s\n", path, - strerror(errno)); - exit(1); - } - - cupsFilePuts(fp, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 " - "Transitional//EN\" " - "\"http://www.w3.org/TR/html4/loose.dtd\">\n" - "<html>\n" - "<head>\n" - "<title>CUPS Documentation</title>\n" - "<link rel='stylesheet' type='text/css' " - "href='cups-printable.css'>\n" - "</head>\n" - "<body>\n" - "<h1 class='title'>CUPS Documentation</h1>\n" - "<table width='100%' summary=''>\n" - "<tr>\n"); - - for (column = 0; column < 3; column ++) - { - if (column) - cupsFilePuts(fp, "<td> </td>\n"); - - cupsFilePuts(fp, "<td valign='top' width='33%'>"); - for (section = (_cups_section_t *)cupsArrayFirst(columns[column]); - section; - section = (_cups_section_t *)cupsArrayNext(columns[column])) - { - cupsFilePrintf(fp, "<h2 class='title'>%s</h2>\n", section->name); - for (html = (_cups_html_t *)cupsArrayFirst(section->files); - html; - html = (_cups_html_t *)cupsArrayNext(section->files)) - cupsFilePrintf(fp, "<p class='compact'><a href='%s'>%s</a></p>\n", - html->path, html->title); - } - cupsFilePuts(fp, "</td>\n"); - } - cupsFilePuts(fp, "</tr>\n" - "</table>\n" - "</body>\n" - "</html>\n"); - cupsFileClose(fp); -} - - -/* - * 'write_info()' - Write the Info.plist file. - */ - -static void -write_info(const char *path, /* I - File to write */ - const char *revision) /* I - Subversion revision number */ -{ - cups_file_t *fp; /* File */ - - - if ((fp = cupsFileOpen(path, "w")) == NULL) - { - fprintf(stderr, "makedocset: Unable to create %s: %s\n", path, - strerror(errno)); - exit(1); - } - - cupsFilePrintf(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" - "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" " - "\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n" - "<plist version=\"1.0\">\n" - "<dict>\n" - "\t<key>CFBundleIdentifier</key>\n" - "\t<string>org.cups.docset</string>\n" - "\t<key>CFBundleName</key>\n" - "\t<string>CUPS Documentation</string>\n" - "\t<key>CFBundleVersion</key>\n" - "\t<string>%d.%d.%s</string>\n" - "\t<key>CFBundleShortVersionString</key>\n" - "\t<string>%d.%d.%d</string>\n" - "\t<key>DocSetFeedName</key>\n" - "\t<string>cups.org</string>\n" - "\t<key>DocSetFeedURL</key>\n" - "\t<string>http://www.cups.org/org.cups.docset.atom" - "</string>\n" - "\t<key>DocSetPublisherIdentifier</key>\n" - "\t<string>org.cups</string>\n" - "\t<key>DocSetPublisherName</key>\n" - "\t<string>CUPS</string>\n" - "</dict>\n" - "</plist>\n", - CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, revision, - CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, CUPS_VERSION_PATCH); - - cupsFileClose(fp); -} - - -/* - * 'write_nodes()' - Write the Nodes.xml file. - */ - -static void -write_nodes(const char *path, /* I - File to write */ - help_index_t *hi) /* I - Index of files */ -{ - cups_file_t *fp; /* Output file */ - int id; /* Current node ID */ - help_node_t *node; /* Current help node */ - int subnodes; /* Currently in Subnodes for file? */ - int needclose; /* Need to close the current node? */ - - - if ((fp = cupsFileOpen(path, "w")) == NULL) - { - fprintf(stderr, "makedocset: Unable to create %s: %s\n", path, - strerror(errno)); - exit(1); - } - - cupsFilePuts(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" - "<DocSetNodes version=\"1.0\">\n" - "<TOC>\n" - "<Node id=\"0\">\n" - "<Name>CUPS Documentation</Name>\n" - "<Path>Documentation/index.html</Path>\n" - "</Node>\n"); - - for (node = (help_node_t *)cupsArrayFirst(hi->nodes), id = 1, subnodes = 0, - needclose = 0; - node; - node = (help_node_t *)cupsArrayNext(hi->nodes), id ++) - { - if (node->anchor) - { - if (!subnodes) - { - cupsFilePuts(fp, "<Subnodes>\n"); - subnodes = 1; - } - - cupsFilePrintf(fp, "<Node id=\"%d\">\n" - "<Path>Documentation/%s</Path>\n" - "<Anchor>%s</Anchor>\n" - "<Name>%s</Name>\n" - "</Node>\n", id, node->filename, node->anchor, - node->text); - } - else - { - if (subnodes) - { - cupsFilePuts(fp, "</Subnodes>\n"); - subnodes = 0; - } - - if (needclose) - cupsFilePuts(fp, "</Node>\n"); - - cupsFilePrintf(fp, "<Node id=\"%d\">\n" - "<Path>Documentation/%s</Path>\n" - "<Name>%s</Name>\n", id, node->filename, node->text); - needclose = 1; - } - } - - if (subnodes) - cupsFilePuts(fp, "</Subnodes>\n"); - - if (needclose) - cupsFilePuts(fp, "</Node>\n"); - - cupsFilePuts(fp, "</TOC>\n" - "</DocSetNodes>\n"); - - cupsFileClose(fp); -} diff --git a/cgi-bin/search.c b/cgi-bin/search.c index 3d1a18d..399331d 100644 --- a/cgi-bin/search.c +++ b/cgi-bin/search.c @@ -1,7 +1,7 @@ /* * Search routines for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -365,4 +365,5 @@ void cgiFreeSearch(void *search) /* I - Search context */ { regfree((regex_t *)search); + free(search); } diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4 index 4996393..7bde566 100644 --- a/config-scripts/cups-compiler.m4 +++ b/config-scripts/cups-compiler.m4 @@ -1,7 +1,7 @@ dnl dnl Compiler stuff for CUPS. dnl -dnl Copyright 2007-2017 by Apple Inc. +dnl Copyright 2007-2018 by Apple Inc. dnl Copyright 1997-2007 by Easy Software Products, all rights reserved. dnl dnl These coded instructions, statements, and computer programs are the @@ -156,46 +156,19 @@ if test -n "$GCC"; then if test "x$with_optim" = x; then # Add useful warning options for tracking down problems... - OPTIM="-Wall -Wno-format-y2k -Wunused $OPTIM" - - AC_MSG_CHECKING(whether compiler supports -Wno-unused-result) - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -Wno-unused-result" - AC_TRY_COMPILE(,, - [OPTIM="$OPTIM -Wno-unused-result" - AC_MSG_RESULT(yes)], - AC_MSG_RESULT(no)) - CFLAGS="$OLDCFLAGS" - - AC_MSG_CHECKING(whether compiler supports -Wsign-conversion) - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -Wsign-conversion" - AC_TRY_COMPILE(,, - [OPTIM="$OPTIM -Wsign-conversion" - AC_MSG_RESULT(yes)], - AC_MSG_RESULT(no)) - CFLAGS="$OLDCFLAGS" - - AC_MSG_CHECKING(whether compiler supports -Wno-tautological-compare) - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -Wno-tautological-compare" - AC_TRY_COMPILE(,, - [OPTIM="$OPTIM -Wno-tautological-compare" - AC_MSG_RESULT(yes)], - AC_MSG_RESULT(no)) - CFLAGS="$OLDCFLAGS" - - AC_MSG_CHECKING(whether compiler supports -Wno-format-truncation) - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -Wno-format-truncation" - AC_TRY_COMPILE(,, - [OPTIM="$OPTIM -Wno-format-truncation" - AC_MSG_RESULT(yes)], - AC_MSG_RESULT(no)) - CFLAGS="$OLDCFLAGS" + OPTIM="-Wall -Wno-format-y2k -Wunused -Wno-unused-result -Wsign-conversion $OPTIM" + + # Test GCC version for certain warning flags since -Werror + # doesn't trigger... + gccversion=`$CC --version | head -1 | awk '{print $NF}'` + case "$gccversion" in + 7.*) + OPTIM="$OPTIM -Wno-format-truncation -Wno-tautological-compare" + ;; + esac # Additional warning options for development testing... - if test -d .svn; then + if test -d .git; then OPTIM="-Werror $OPTIM" fi fi diff --git a/config-scripts/cups-opsys.m4 b/config-scripts/cups-opsys.m4 index d854547..a478543 100644 --- a/config-scripts/cups-opsys.m4 +++ b/config-scripts/cups-opsys.m4 @@ -1,7 +1,7 @@ dnl dnl Operating system stuff for CUPS. dnl -dnl Copyright 2007-2017 by Apple Inc. +dnl Copyright 2007-2018 by Apple Inc. dnl Copyright 1997-2006 by Easy Software Products, all rights reserved. dnl dnl These coded instructions, statements, and computer programs are the @@ -35,3 +35,5 @@ else LOCALTARGET="" fi AC_SUBST(LOCALTARGET) + +AC_PATH_PROGS(CODE_SIGN, codesign true) diff --git a/config-scripts/cups-sharedlibs.m4 b/config-scripts/cups-sharedlibs.m4 index 6e6b582..bf68e4f 100644 --- a/config-scripts/cups-sharedlibs.m4 +++ b/config-scripts/cups-sharedlibs.m4 @@ -1,7 +1,7 @@ dnl dnl Shared library support for CUPS. dnl -dnl Copyright 2007-2017 by Apple Inc. +dnl Copyright 2007-2018 by Apple Inc. dnl Copyright 1997-2005 by Easy Software Products, all rights reserved. dnl dnl These coded instructions, statements, and computer programs are the @@ -24,30 +24,21 @@ if test x$enable_shared != xno; then case "$host_os_name" in sunos*) LIBCUPS="lib$cupsbase.so.2" - LIBCUPSCGI="libcupscgi.so.1" LIBCUPSIMAGE="libcupsimage.so.2" - LIBCUPSMIME="libcupsmime.so.1" - LIBCUPSPPDC="libcupsppdc.so.1" DSO="\$(CC)" DSOXX="\$(CXX)" DSOFLAGS="$DSOFLAGS -Wl,-h\`basename \$@\` -G \$(OPTIM)" ;; linux* | gnu* | *bsd*) LIBCUPS="lib$cupsbase.so.2" - LIBCUPSCGI="libcupscgi.so.1" LIBCUPSIMAGE="libcupsimage.so.2" - LIBCUPSMIME="libcupsmime.so.1" - LIBCUPSPPDC="libcupsppdc.so.1" DSO="\$(CC)" DSOXX="\$(CXX)" DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)" ;; darwin*) LIBCUPS="lib$cupsbase.2.dylib" - LIBCUPSCGI="libcupscgi.1.dylib" LIBCUPSIMAGE="libcupsimage.2.dylib" - LIBCUPSMIME="libcupsmime.1.dylib" - LIBCUPSPPDC="libcupsppdc.1.dylib" DSO="\$(CC)" DSOXX="\$(CXX)" DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc" @@ -56,10 +47,7 @@ if test x$enable_shared != xno; then echo "Warning: shared libraries may not be supported. Trying -shared" echo " option with compiler." LIBCUPS="lib$cupsbase.so.2" - LIBCUPSCGI="libcupscgi.so.1" LIBCUPSIMAGE="libcupsimage.so.2" - LIBCUPSMIME="libcupsmime.so.1" - LIBCUPSPPDC="libcupsppdc.so.1" DSO="\$(CC)" DSOXX="\$(CXX)" DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)" @@ -68,10 +56,7 @@ if test x$enable_shared != xno; then else PICFLAG=0 LIBCUPS="lib$cupsbase.a" - LIBCUPSCGI="libcupscgi.a" LIBCUPSIMAGE="libcupsimage.a" - LIBCUPSMIME="libcupsmime.a" - LIBCUPSPPDC="libcupsppdc.a" DSO=":" DSOXX=":" fi @@ -81,10 +66,7 @@ AC_SUBST(DSOXX) AC_SUBST(DSOFLAGS) AC_SUBST(LIBCUPS) AC_SUBST(LIBCUPSBASE) -AC_SUBST(LIBCUPSCGI) AC_SUBST(LIBCUPSIMAGE) -AC_SUBST(LIBCUPSMIME) -AC_SUBST(LIBCUPSPPDC) AC_SUBST(LIBCUPSSTATIC) if test x$enable_shared = xno; then @@ -1,11 +1,13 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for CUPS 2.2.8. +# Generated by GNU Autoconf 2.68 for CUPS 2.2.9. # # Report bugs to <https://github.com/apple/cups/issues>. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,31 +136,6 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -192,8 +169,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" +test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -238,25 +214,21 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -359,14 +331,6 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -488,10 +452,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -526,16 +486,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -547,8 +507,28 @@ else as_mkdir_p=false fi -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -580,8 +560,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='CUPS' PACKAGE_TARNAME='cups' -PACKAGE_VERSION='2.2.8' -PACKAGE_STRING='CUPS 2.2.8' +PACKAGE_VERSION='2.2.9' +PACKAGE_STRING='CUPS 2.2.9' PACKAGE_BUGREPORT='https://github.com/apple/cups/issues' PACKAGE_URL='https://www.cups.org/' @@ -712,10 +692,7 @@ LINKCUPS EXTLINKCUPSIMAGE EXTLINKCUPS LIBCUPSSTATIC -LIBCUPSPPDC -LIBCUPSMIME LIBCUPSIMAGE -LIBCUPSCGI LIBCUPSBASE LIBCUPS DSOFLAGS @@ -794,6 +771,7 @@ AWK CUPS_BUILD CUPS_REVISION CUPS_VERSION +CODE_SIGN LOCALTARGET host_os host_vendor @@ -1397,6 +1375,8 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1482,7 +1462,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures CUPS 2.2.8 to adapt to many kinds of systems. +\`configure' configures CUPS 2.2.9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1547,7 +1527,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of CUPS 2.2.8:";; + short | recursive ) echo "Configuration of CUPS 2.2.9:";; esac cat <<\_ACEOF @@ -1728,10 +1708,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -CUPS configure 2.2.8 -generated by GNU Autoconf 2.69 +CUPS configure 2.2.9 +generated by GNU Autoconf 2.68 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1882,7 +1862,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - test -x conftest$ac_exeext + $as_test_x conftest$ac_exeext }; then : ac_retval=0 else @@ -2192,8 +2172,8 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by CUPS $as_me 2.2.8, which was -generated by GNU Autoconf 2.69. Invocation command line was +It was created by CUPS $as_me 2.2.9, which was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2663,11 +2643,57 @@ else fi +for ac_prog in codesign true +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_CODE_SIGN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $CODE_SIGN in + [\\/]* | ?:[\\/]*) + ac_cv_path_CODE_SIGN="$CODE_SIGN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_CODE_SIGN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +CODE_SIGN=$ac_cv_path_CODE_SIGN +if test -n "$CODE_SIGN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CODE_SIGN" >&5 +$as_echo "$CODE_SIGN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CODE_SIGN" && break +done + + ac_config_headers="$ac_config_headers config.h" -CUPS_VERSION="2.2.8" +CUPS_VERSION="2.2.9" CUPS_REVISION="" CUPS_BUILD="cups-$CUPS_VERSION" @@ -2713,7 +2739,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2761,7 +2787,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2805,7 +2831,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3249,7 +3275,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -struct stat; +#include <sys/types.h> +#include <sys/stat.h> /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3499,7 +3526,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3543,7 +3570,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3745,7 +3772,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3785,7 +3812,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3838,7 +3865,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3878,7 +3905,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3918,7 +3945,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3958,7 +3985,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3998,7 +4025,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4038,7 +4065,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4078,7 +4105,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4118,7 +4145,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4158,7 +4185,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_RMDIR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4198,7 +4225,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4238,7 +4265,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XDGOPEN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4314,7 +4341,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4357,7 +4384,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4767,7 +4794,7 @@ do for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -4833,7 +4860,7 @@ do for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -6579,30 +6606,21 @@ if test x$enable_shared != xno; then case "$host_os_name" in sunos*) LIBCUPS="lib$cupsbase.so.2" - LIBCUPSCGI="libcupscgi.so.1" LIBCUPSIMAGE="libcupsimage.so.2" - LIBCUPSMIME="libcupsmime.so.1" - LIBCUPSPPDC="libcupsppdc.so.1" DSO="\$(CC)" DSOXX="\$(CXX)" DSOFLAGS="$DSOFLAGS -Wl,-h\`basename \$@\` -G \$(OPTIM)" ;; linux* | gnu* | *bsd*) LIBCUPS="lib$cupsbase.so.2" - LIBCUPSCGI="libcupscgi.so.1" LIBCUPSIMAGE="libcupsimage.so.2" - LIBCUPSMIME="libcupsmime.so.1" - LIBCUPSPPDC="libcupsppdc.so.1" DSO="\$(CC)" DSOXX="\$(CXX)" DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)" ;; darwin*) LIBCUPS="lib$cupsbase.2.dylib" - LIBCUPSCGI="libcupscgi.1.dylib" LIBCUPSIMAGE="libcupsimage.2.dylib" - LIBCUPSMIME="libcupsmime.1.dylib" - LIBCUPSPPDC="libcupsppdc.1.dylib" DSO="\$(CC)" DSOXX="\$(CXX)" DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc" @@ -6611,10 +6629,7 @@ if test x$enable_shared != xno; then echo "Warning: shared libraries may not be supported. Trying -shared" echo " option with compiler." LIBCUPS="lib$cupsbase.so.2" - LIBCUPSCGI="libcupscgi.so.1" LIBCUPSIMAGE="libcupsimage.so.2" - LIBCUPSMIME="libcupsmime.so.1" - LIBCUPSPPDC="libcupsppdc.so.1" DSO="\$(CC)" DSOXX="\$(CXX)" DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)" @@ -6623,10 +6638,7 @@ if test x$enable_shared != xno; then else PICFLAG=0 LIBCUPS="lib$cupsbase.a" - LIBCUPSCGI="libcupscgi.a" LIBCUPSIMAGE="libcupsimage.a" - LIBCUPSMIME="libcupsmime.a" - LIBCUPSPPDC="libcupsppdc.a" DSO=":" DSOXX=":" fi @@ -6639,9 +6651,6 @@ fi - - - if test x$enable_shared = xno; then LINKCUPS="../cups/lib$cupsbase.a" LINKCUPSIMAGE="../filter/libcupsimage.a" @@ -6988,114 +6997,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "x$with_optim" = x; then # Add useful warning options for tracking down problems... - OPTIM="-Wall -Wno-format-y2k -Wunused $OPTIM" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports -Wno-unused-result" >&5 -$as_echo_n "checking whether compiler supports -Wno-unused-result... " >&6; } - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -Wno-unused-result" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - OPTIM="$OPTIM -Wno-unused-result" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$OLDCFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports -Wsign-conversion" >&5 -$as_echo_n "checking whether compiler supports -Wsign-conversion... " >&6; } - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -Wsign-conversion" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - OPTIM="$OPTIM -Wsign-conversion" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$OLDCFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports -Wno-tautological-compare" >&5 -$as_echo_n "checking whether compiler supports -Wno-tautological-compare... " >&6; } - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -Wno-tautological-compare" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - OPTIM="$OPTIM -Wno-tautological-compare" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$OLDCFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports -Wno-format-truncation" >&5 -$as_echo_n "checking whether compiler supports -Wno-format-truncation... " >&6; } - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -Wno-format-truncation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - OPTIM="$OPTIM -Wno-format-truncation" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$OLDCFLAGS" + OPTIM="-Wall -Wno-format-y2k -Wunused -Wno-unused-result -Wsign-conversion $OPTIM" + + # Test GCC version for certain warning flags since -Werror + # doesn't trigger... + gccversion=`$CC --version | head -1 | awk '{print $NF}'` + case "$gccversion" in + 7.*) + OPTIM="$OPTIM -Wno-format-truncation -Wno-tautological-compare" + ;; + esac # Additional warning options for development testing... - if test -d .svn; then + if test -d .git; then OPTIM="-Werror $OPTIM" fi fi @@ -7851,7 +7765,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_KRB5CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7894,7 +7808,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_KRB5CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8446,7 +8360,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LIBGNUTLSCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8489,7 +8403,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_LIBGNUTLSCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9048,8 +8962,6 @@ _ACEOF esac rm -rf conftest* fi - - fi @@ -10091,7 +10003,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_JAVA="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10156,7 +10068,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10221,7 +10133,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PHPCGI="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10262,7 +10174,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PHP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10332,7 +10244,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -10802,16 +10714,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -10871,16 +10783,28 @@ else as_mkdir_p=false fi - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -10901,8 +10825,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by CUPS $as_me 2.2.8, which was -generated by GNU Autoconf 2.69. Invocation command line was +This file was extended by CUPS $as_me 2.2.9, which was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -10964,11 +10888,11 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -CUPS config.status 2.2.8 -configured by $0, generated by GNU Autoconf 2.69, +CUPS config.status 2.2.9 +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -11057,7 +10981,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' diff --git a/configure.ac b/configure.ac index 438e56c..046356c 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl We need at least autoconf 2.60... AC_PREREQ(2.60) dnl Package name and version... -AC_INIT([CUPS], [2.2.8], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/]) +AC_INIT([CUPS], [2.2.9], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/]) sinclude(config-scripts/cups-opsys.m4) sinclude(config-scripts/cups-common.m4) diff --git a/cups/Makefile b/cups/Makefile index f292ff0..f83c937 100644 --- a/cups/Makefile +++ b/cups/Makefile @@ -312,8 +312,9 @@ uninstall: libcups.so.2: $(LIBOBJS) echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBGSSAPI) \ + $(DSO) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBGSSAPI) \ $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ $(RM) `basename $@ .2` $(LN) $@ `basename $@ .2` @@ -329,13 +330,14 @@ libcups.2.dylib: $(LIBOBJS) $(LIBCUPSORDER) grep -v -E -e '^(_cupsConnect|_cupsCharset|_cupsEncodingName|_cupsSetDefaults|_cupsSetHTTPError|_cupsUserDefault)$$' | \ sort >t.exp echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \ + $(DSO) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ \ -install_name $(libdir)/$@ \ -current_version 2.13.0 \ -compatibility_version 2.0.0 \ -exported_symbols_list t.exp \ $(LIBOBJS) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \ $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ $(RM) libcups.dylib t.exp $(LN) $@ libcups.dylib @@ -346,7 +348,7 @@ libcups.2.dylib: $(LIBOBJS) $(LIBCUPSORDER) libcups.la: $(LIBOBJS) echo Linking $@... - $(LD_CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) \ + $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) \ -rpath $(LIBDIR) -version-info 2:13 $(LIBGSSAPI) $(SSLLIBS) \ $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) @@ -374,7 +376,7 @@ libcups2.def: $(LIBOBJS) Makefile (nm $(LIBOBJS) 2>/dev/null | grep "T _" | awk '{print $$3}'; \ echo __cups_strcpy; echo __cups_strlcat; echo __cups_strlcpy) | \ grep -v -E \ - -e 'cups_debug|Apple|BackChannel|Backend|FileCheck|Filter|GSSService|SetNegotiate|SideChannel' \ + -e 'cups_debug|Apple|BackChannel|Backend|FileCheck|Filter|GSSService|SetNegotiate|SideChannel|SNMP' \ -e 'Block$$' | \ sed -e '1,$$s/^_//' | sort >>libcups2.def @@ -387,6 +389,7 @@ testadmin: testadmin.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ testadmin.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -397,6 +400,7 @@ testarray: testarray.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testarray.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running array API tests... ./testarray @@ -409,6 +413,7 @@ testcache: testcache.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ testcache.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -419,6 +424,7 @@ testconflicts: testconflicts.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ testconflicts.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -429,6 +435,7 @@ testcreds: testcreds.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testcreds.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -439,6 +446,7 @@ testcups: testcups.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ testcups.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -449,6 +457,7 @@ testdest: testdest.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ testdest.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -459,6 +468,7 @@ testfile: testfile.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testfile.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running file API tests... ./testfile @@ -471,6 +481,7 @@ testgetdests: testgetdests.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ testgetdests.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -481,6 +492,7 @@ testhttp: testhttp.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testhttp.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running HTTP API tests... ./testhttp @@ -493,6 +505,7 @@ testipp: testipp.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testipp.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running IPP API tests... ./testipp @@ -505,6 +518,7 @@ testi18n: testi18n.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testi18n.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running internationalization API tests... ./testi18n @@ -517,6 +531,7 @@ testlang: testlang.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testlang.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Creating locale directory structure... $(RM) -r locale $(MKDIR) locale/en @@ -541,6 +556,7 @@ testoptions: testoptions.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testoptions.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running option API tests... ./testoptions @@ -553,6 +569,7 @@ testppd: testppd.o $(LIBCUPSSTATIC) test.ppd test2.ppd echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testppd.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running PPD API tests... ./testppd @@ -565,6 +582,7 @@ testpwg: testpwg.o $(LIBCUPSSTATIC) test.ppd echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testpwg.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running PWG API tests... ./testpwg test.ppd @@ -577,6 +595,7 @@ testsnmp: testsnmp.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ testsnmp.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -587,6 +606,7 @@ tlscheck: tlscheck.o $(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ tlscheck.o $(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/cups/adminutil.c b/cups/adminutil.c index adb1f7a..375b905 100644 --- a/cups/adminutil.c +++ b/cups/adminutil.c @@ -22,11 +22,11 @@ #include "adminutil.h" #include <fcntl.h> #include <sys/stat.h> -#ifdef WIN32 +#ifdef _WIN32 #else # include <unistd.h> # include <sys/wait.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -2087,7 +2087,7 @@ do_samba_command(const char *command, /* I - Command to run */ const char *authfile, /* I - Samba authentication file */ FILE *logfile) /* I - Optional log file */ { -#ifdef WIN32 +#ifdef _WIN32 return (1); /* Always fail on Windows... */ #else @@ -2154,7 +2154,7 @@ do_samba_command(const char *command, /* I - Command to run */ return (WEXITSTATUS(status)); else return (-WTERMSIG(status)); -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -2172,9 +2172,9 @@ get_cupsd_conf( int *remote) /* O - Remote file? */ { int fd; /* Temporary file descriptor */ -#ifndef WIN32 +#ifndef _WIN32 struct stat info; /* cupsd.conf file information */ -#endif /* WIN32 */ +#endif /* _WIN32 */ http_status_t status; /* Status of getting cupsd.conf */ char host[HTTP_MAX_HOST]; /* Hostname for connection */ @@ -2191,7 +2191,7 @@ get_cupsd_conf( snprintf(name, namesize, "%s/cupsd.conf", cg->cups_serverroot); *remote = 0; -#ifndef WIN32 +#ifndef _WIN32 if (!_cups_strcasecmp(host, "localhost") && !access(name, R_OK)) { /* @@ -2218,7 +2218,7 @@ get_cupsd_conf( status = HTTP_STATUS_OK; } else -#endif /* !WIN32 */ +#endif /* !_WIN32 */ { /* * Read cupsd.conf via a HTTP GET request... diff --git a/cups/api-ppd.shtml b/cups/api-ppd.shtml index 50c4850..4940946 100644 --- a/cups/api-ppd.shtml +++ b/cups/api-ppd.shtml @@ -1,7 +1,7 @@ <!-- PPD API introduction for CUPS. - Copyright 2007-2012 by Apple Inc. + Copyright 2007-2018 by Apple Inc. Copyright 1997-2006 by Easy Software Products, all rights reserved. These coded instructions, statements, and computer programs are the @@ -13,7 +13,7 @@ <h2 class='title'><a name='OVERVIEW'>Overview</a></h2> -<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote> +<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote> <p>The CUPS PPD API provides read-only access the data in PostScript Printer Description ("PPD") files which are used for all printers with a driver. With diff --git a/cups/auth.c b/cups/auth.c index 740b079..a1f5042 100644 --- a/cups/auth.c +++ b/cups/auth.c @@ -23,11 +23,11 @@ #include "cups-private.h" #include <fcntl.h> #include <sys/stat.h> -#if defined(WIN32) || defined(__EMX__) +#if defined(_WIN32) || defined(__EMX__) # include <io.h> #else # include <unistd.h> -#endif /* WIN32 || __EMX__ */ +#endif /* _WIN32 || __EMX__ */ #if HAVE_AUTHORIZATION_H # include <Security/Authorization.h> @@ -119,9 +119,7 @@ cupsDoAuthentication( *www_auth, /* WWW-Authenticate header */ *schemedata; /* Scheme-specific data */ char scheme[256], /* Scheme name */ - prompt[1024], /* Prompt for user */ - realm[HTTP_MAX_VALUE], /* realm="xyz" string */ - nonce[HTTP_MAX_VALUE]; /* nonce="xyz" string */ + prompt[1024]; /* Prompt for user */ int localauth; /* Local authentication result */ _cups_globals_t *cg; /* Global data */ @@ -259,6 +257,7 @@ cupsDoAuthentication( httpEncode64_2(encode, sizeof(encode), http->userpass, (int)strlen(http->userpass)); httpSetAuthString(http, "Basic", encode); + break; } else if (!_cups_strcasecmp(scheme, "Digest")) { @@ -266,124 +265,15 @@ cupsDoAuthentication( * Digest authentication... */ - int i; /* Looping var */ - char algorithm[65], /* Hashing algorithm */ - opaque[HTTP_MAX_VALUE], - /* Opaque data from server */ - cnonce[65], /* cnonce value */ - kd[65], /* Final MD5/SHA-256 digest */ - ha1[65], /* Hash of username:realm:password */ - ha2[65], /* Hash of method:request-uri */ - hdata[65], /* Hash of auth data */ - temp[1024], /* Temporary string */ - digest[1024]; /* Digest auth data */ - unsigned char hash[32]; /* Hash buffer */ - const char *hashalg; /* Hashing algorithm */ - size_t hashsize; /* Size of hash */ - - if (strcmp(nonce, http->nonce)) - { - strlcpy(http->nonce, nonce, sizeof(http->nonce)); - http->nonce_count = 1; - } - else - http->nonce_count ++; + char nonce[HTTP_MAX_VALUE]; /* nonce="xyz" string */ - cups_auth_param(schemedata, "opaque", opaque, sizeof(opaque)); + cups_auth_param(schemedata, "algorithm", http->algorithm, sizeof(http->algorithm)); + cups_auth_param(schemedata, "opaque", http->opaque, sizeof(http->opaque)); cups_auth_param(schemedata, "nonce", nonce, sizeof(nonce)); - cups_auth_param(schemedata, "realm", realm, sizeof(realm)); - - for (i = 0; i < 64; i ++) - cnonce[i] = "0123456789ABCDEF"[CUPS_RAND() & 15]; - cnonce[64] = '\0'; - - if (cups_auth_param(schemedata, "algorithm", algorithm, sizeof(algorithm))) - { - /* - * Follow RFC 2617/7616... - */ - - if (!_cups_strcasecmp(algorithm, "MD5")) - { - /* - * RFC 2617 Digest with MD5 - */ - - hashalg = "md5"; - } - else if (!_cups_strcasecmp(algorithm, "SHA-256")) - { - /* - * RFC 7616 Digest with SHA-256 - */ - - hashalg = "sha2-256"; - } - else - { - /* - * Some other algorithm we don't support, skip this one... - */ - - continue; - } - - /* - * Calculate digest value... - */ - - /* H(A1) = H(username:realm:password) */ - snprintf(temp, sizeof(temp), "%s:%s:%s", cupsUser(), realm, strchr(http->userpass, ':') + 1); - hashsize = (size_t)cupsHashData(hashalg, (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); - cupsHashString(hash, hashsize, ha1, sizeof(ha1)); - - /* H(A2) = H(method:uri) */ - snprintf(temp, sizeof(temp), "%s:%s", method, resource); - hashsize = (size_t)cupsHashData(hashalg, (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); - cupsHashString(hash, hashsize, ha2, sizeof(ha2)); - - /* H(data) = H(nonce:nc:cnonce:qop:H(A2)) */ - snprintf(temp, sizeof(temp), "%s:%08x:%s:auth:%s", nonce, http->nonce_count, cnonce, ha2); - hashsize = (size_t)cupsHashData(hashalg, (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); - cupsHashString(hash, hashsize, hdata, sizeof(hdata)); - - /* KD = H(H(A1):H(data)) */ - snprintf(temp, sizeof(temp), "%s:%s", ha1, hdata); - hashsize = (size_t)cupsHashData(hashalg, (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); - cupsHashString(hash, hashsize, kd, sizeof(kd)); - - /* Pass the RFC 2617/7616 WWW-Authenticate header */ - if (opaque[0]) - snprintf(digest, sizeof(digest), "username=\"%s\", realm=\"%s\", nonce=\"%s\", algorithm=%s, qop=auth, opaque=\"%s\", cnonce=\"%s\", nc=%08x, uri=\"%s\", response=\"%s\"", cupsUser(), realm, nonce, algorithm, opaque, cnonce, http->nonce_count, resource, kd); - else - snprintf(digest, sizeof(digest), "username=\"%s\", realm=\"%s\", nonce=\"%s\", algorithm=%s, qop=auth, cnonce=\"%s\", nc=%08x, uri=\"%s\", response=\"%s\"", cupsUser(), realm, nonce, algorithm, cnonce, http->nonce_count, resource, kd); - } - else - { - /* - * Use old RFC 2069 Digest method... - */ - - /* H(A1) = H(username:realm:password) */ - snprintf(temp, sizeof(temp), "%s:%s:%s", cupsUser(), realm, strchr(http->userpass, ':') + 1); - hashsize = (size_t)cupsHashData("md5", (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); - cupsHashString(hash, hashsize, ha1, sizeof(ha1)); - - /* H(A2) = H(method:uri) */ - snprintf(temp, sizeof(temp), "%s:%s", method, resource); - hashsize = (size_t)cupsHashData("md5", (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); - cupsHashString(hash, hashsize, ha2, sizeof(ha2)); + cups_auth_param(schemedata, "realm", http->realm, sizeof(http->realm)); - /* KD = H(H(A1):nonce:H(A2)) */ - snprintf(temp, sizeof(temp), "%s:%s:%s", ha1, nonce, ha2); - hashsize = (size_t)cupsHashData("md5", (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); - cupsHashString(hash, hashsize, kd, sizeof(kd)); - - /* Pass the RFC 2069 WWW-Authenticate header */ - snprintf(digest, sizeof(digest), "username=\"%s\", realm=\"%s\", nonce=\"%s\", uri=\"%s\", response=\"%s\"", cupsUser(), realm, nonce, resource, kd); - } - - httpSetAuthString(http, "Digest", digest); + if (_httpSetDigestAuthString(http, nonce, method, resource)) + break; } } @@ -1011,9 +901,9 @@ static int /* O - 0 if available */ /* -1 error */ cups_local_auth(http_t *http) /* I - HTTP connection to server */ { -#if defined(WIN32) || defined(__EMX__) +#if defined(_WIN32) || defined(__EMX__) /* - * Currently WIN32 and OS-2 do not support the CUPS server... + * Currently _WIN32 and OS-2 do not support the CUPS server... */ return (1); @@ -1121,10 +1011,6 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */ if (cups_auth_find(www_auth, "Negotiate")) return (1); # endif /* HAVE_GSSAPI */ -# ifdef HAVE_AUTHORIZATION_H - if (cups_auth_find(www_auth, "AuthRef")) - return (1); -# endif /* HAVE_AUTHORIZATION_H */ # if defined(SO_PEERCRED) && defined(AF_LOCAL) /* @@ -1174,7 +1060,7 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */ * No certificate for this PID; see if we can get the root certificate... */ - DEBUG_printf(("9cups_local_auth: Unable to open file %s: %s", filename, strerror(errno))); + DEBUG_printf(("9cups_local_auth: Unable to open file \"%s\": %s", filename, strerror(errno))); if (!cups_auth_param(schemedata, "trc", trc, sizeof(trc))) { @@ -1186,7 +1072,8 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */ } snprintf(filename, sizeof(filename), "%s/certs/0", cg->cups_statedir); - fp = fopen(filename, "r"); + if ((fp = fopen(filename, "r")) == NULL) + DEBUG_printf(("9cups_local_auth: Unable to open file \"%s\": %s", filename, strerror(errno))); } if (fp) @@ -1217,5 +1104,5 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */ } return (1); -#endif /* WIN32 || __EMX__ */ +#endif /* _WIN32 || __EMX__ */ } diff --git a/cups/backchannel.c b/cups/backchannel.c index e804d45..bca04dc 100644 --- a/cups/backchannel.c +++ b/cups/backchannel.c @@ -19,12 +19,12 @@ #include "cups.h" #include <errno.h> -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> # include <fcntl.h> #else # include <sys/time.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -77,11 +77,11 @@ cupsBackChannelRead(char *buffer, /* I - Buffer to read into */ * Read bytes from the pipe... */ -#ifdef WIN32 +#ifdef _WIN32 return ((ssize_t)_read(3, buffer, (unsigned)bytes)); #else return (read(3, buffer, bytes)); -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -139,11 +139,11 @@ cupsBackChannelWrite( * Write bytes to the pipe... */ -#ifdef WIN32 +#ifdef _WIN32 count = (ssize_t)_write(3, buffer, (unsigned)(bytes - total)); #else count = write(3, buffer, bytes - total); -#endif /* WIN32 */ +#endif /* _WIN32 */ if (count < 0) { diff --git a/cups/cups.h b/cups/cups.h index 92826d7..cf3be12 100644 --- a/cups/cups.h +++ b/cups/cups.h @@ -21,12 +21,12 @@ */ # include <sys/types.h> -# if defined(WIN32) && !defined(__CUPS_SSIZE_T_DEFINED) +# if defined(_WIN32) && !defined(__CUPS_SSIZE_T_DEFINED) # define __CUPS_SSIZE_T_DEFINED # include <stddef.h> /* Windows does not support the ssize_t type, so map it to long... */ typedef long ssize_t; /* @private@ */ -# endif /* WIN32 && !__CUPS_SSIZE_T_DEFINED */ +# endif /* _WIN32 && !__CUPS_SSIZE_T_DEFINED */ # include "file.h" # include "ipp.h" @@ -47,10 +47,10 @@ extern "C" { * Constants... */ -# define CUPS_VERSION 2.0208 +# define CUPS_VERSION 2.0209 # define CUPS_VERSION_MAJOR 2 # define CUPS_VERSION_MINOR 2 -# define CUPS_VERSION_PATCH 8 +# define CUPS_VERSION_PATCH 9 # define CUPS_BC_FD 3 /* Back-channel file descriptor for diff --git a/cups/debug-private.h b/cups/debug-private.h index 23a0ae1..dc9fe4e 100644 --- a/cups/debug-private.h +++ b/cups/debug-private.h @@ -1,7 +1,7 @@ /* * Private debugging macros for CUPS. * - * Copyright 2007-2012 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2005 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -67,20 +67,10 @@ extern "C" { */ # ifdef DEBUG -# ifdef WIN32 -# ifdef LIBCUPS2_EXPORTS -# define DLLExport __declspec(dllexport) -# else -# define DLLExport -# endif /* LIBCUPS2_EXPORTS */ -# else -# define DLLExport -# endif /* WIN32 */ # define DEBUG_puts(x) _cups_debug_puts(x) # define DEBUG_printf(x) _cups_debug_printf x # define DEBUG_set(logfile,level,filter) _cups_debug_set(logfile,level,filter,1) # else -# define DLLExport # define DEBUG_puts(x) # define DEBUG_printf(x) # define DEBUG_set(logfile,level,filter) @@ -93,16 +83,13 @@ extern "C" { extern int _cups_debug_fd; extern int _cups_debug_level; -extern void DLLExport _cups_debug_printf(const char *format, ...) - __attribute__ ((__format__ (__printf__, 1, 2))); -extern void DLLExport _cups_debug_puts(const char *s); -extern void DLLExport _cups_debug_set(const char *logfile, - const char *level, const char *filter, - int force); -# ifdef WIN32 -extern int _cups_gettimeofday(struct timeval *tv, void *tz); +extern void _cups_debug_printf(const char *format, ...) _CUPS_FORMAT(1, 2); +extern void _cups_debug_puts(const char *s); +extern void _cups_debug_set(const char *logfile, const char *level, const char *filter, int force) _CUPS_PRIVATE; +# ifdef _WIN32 +extern int _cups_gettimeofday(struct timeval *tv, void *tz) _CUPS_PRIVATE; # define gettimeofday(a,b) _cups_gettimeofday(a, b) -# endif /* WIN32 */ +# endif /* _WIN32 */ # ifdef __cplusplus } diff --git a/cups/debug.c b/cups/debug.c index bd244fe..b68f5ed 100644 --- a/cups/debug.c +++ b/cups/debug.c @@ -18,7 +18,7 @@ #include "cups-private.h" #include "thread-private.h" -#ifdef WIN32 +#ifdef _WIN32 # include <sys/timeb.h> # include <time.h> # include <io.h> @@ -36,7 +36,7 @@ _cups_gettimeofday(struct timeval *tv, /* I - Timeval struct */ #else # include <sys/time.h> # include <unistd.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #include <regex.h> #include <fcntl.h> @@ -83,7 +83,7 @@ debug_thread_id(void) * '_cups_debug_printf()' - Write a formatted line to the log. */ -void DLLExport +void _cups_debug_printf(const char *format, /* I - Printf-style format string */ ...) /* I - Additional arguments as needed */ { @@ -168,7 +168,7 @@ _cups_debug_printf(const char *format, /* I - Printf-style format string */ * '_cups_debug_puts()' - Write a single line to the log. */ -void DLLExport +void _cups_debug_puts(const char *s) /* I - String to output */ { struct timeval curtime; /* Current time */ @@ -248,7 +248,7 @@ _cups_debug_puts(const char *s) /* I - String to output */ * '_cups_debug_set()' - Enable or disable debug logging. */ -void DLLExport +void _cups_debug_set(const char *logfile, /* I - Log file or NULL */ const char *level, /* I - Log level or NULL */ const char *filter, /* I - Filter string or NULL */ diff --git a/cups/dest.c b/cups/dest.c index 57a8dc9..7ef85a1 100644 --- a/cups/dest.c +++ b/cups/dest.c @@ -2090,9 +2090,9 @@ cupsSetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_ cups_option_t *option; /* Current option */ _ipp_option_t *match; /* Matching attribute for option */ FILE *fp; /* File pointer */ -#ifndef WIN32 +#ifndef _WIN32 const char *home; /* HOME environment variable */ -#endif /* WIN32 */ +#endif /* _WIN32 */ char filename[1024]; /* lpoptions file */ int num_temps; /* Number of temporary destinations */ cups_dest_t *temps = NULL, /* Temporary destinations */ @@ -2126,7 +2126,7 @@ cupsSetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_ snprintf(filename, sizeof(filename), "%s/lpoptions", cg->cups_serverroot); -#ifndef WIN32 +#ifndef _WIN32 if (getuid()) { /* @@ -2152,7 +2152,7 @@ cupsSetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_ snprintf(filename, sizeof(filename), "%s/.cups/lpoptions", home); } } -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* * Try to open the file... @@ -2164,7 +2164,7 @@ cupsSetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_ return (-1); } -#ifndef WIN32 +#ifndef _WIN32 /* * Set the permissions to 0644 when saving to the /etc/cups/lpoptions * file... @@ -2172,7 +2172,7 @@ cupsSetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_ if (!getuid()) fchmod(fileno(fp), 0644); -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* * Write each printer; each line looks like: @@ -26,7 +26,7 @@ * Windows implementation... */ -#ifdef WIN32 +#ifdef _WIN32 # include <windows.h> /* @@ -145,7 +145,7 @@ cupsDirOpen(const char *directory) /* I - Directory name */ cups_dentry_t * /* O - Directory entry or @code NULL@ if there are no more */ cupsDirRead(cups_dir_t *dp) /* I - Directory pointer */ { - WIN32_FIND_DATA entry; /* Directory entry data */ + WIN32_FIND_DATAA entry; /* Directory entry data */ /* @@ -165,11 +165,11 @@ cupsDirRead(cups_dir_t *dp) /* I - Directory pointer */ * No, find the first file... */ - dp->dir = FindFirstFile(dp->directory, &entry); + dp->dir = FindFirstFileA(dp->directory, &entry); if (dp->dir == INVALID_HANDLE_VALUE) return (NULL); } - else if (!FindNextFile(dp->dir, &entry)) + else if (!FindNextFileA(dp->dir, &entry)) return (NULL); /* @@ -422,4 +422,4 @@ cupsDirRewind(cups_dir_t *dp) /* I - Directory pointer */ rewinddir(dp->dir); } -#endif /* WIN32 */ +#endif /* _WIN32 */ diff --git a/cups/file-private.h b/cups/file-private.h index 1f4db79..6789283 100644 --- a/cups/file-private.h +++ b/cups/file-private.h @@ -6,7 +6,7 @@ * our own file functions allows us to provide transparent support of * different line endings, gzip'd print files, PPD files, etc. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -31,13 +31,10 @@ # include <stdarg.h> # include <fcntl.h> -# ifdef HAVE_LIBZ -# include <zlib.h> -# endif /* HAVE_LIBZ */ -# ifdef WIN32 +# ifdef _WIN32 # include <io.h> # include <sys/locking.h> -# endif /* WIN32 */ +# endif /* _WIN32 */ /* @@ -88,30 +85,6 @@ typedef enum /**** _cupsFileCheck file type values ****/ typedef void (*_cups_fc_func_t)(void *context, _cups_fc_result_t result, const char *message); -struct _cups_file_s /**** CUPS file structure... ****/ - -{ - int fd; /* File descriptor */ - char mode, /* Mode ('r' or 'w') */ - compressed, /* Compression used? */ - is_stdio, /* stdin/out/err? */ - eof, /* End of file? */ - buf[4096], /* Buffer */ - *ptr, /* Pointer into buffer */ - *end; /* End of buffer data */ - off_t pos, /* Position in file */ - bufpos; /* File position for start of buffer */ - -#ifdef HAVE_LIBZ - z_stream stream; /* (De)compression stream */ - Bytef cbuf[4096]; /* (De)compression buffer */ - uLong crc; /* (De)compression CRC */ -#endif /* HAVE_LIBZ */ - - char *printf_buffer; /* cupsFilePrintf buffer */ - size_t printf_size; /* Size of cupsFilePrintf buffer */ -}; - /* * Prototypes... @@ -125,6 +98,7 @@ extern _cups_fc_result_t _cupsFileCheck(const char *filename, extern void _cupsFileCheckFilter(void *context, _cups_fc_result_t result, const char *message); +extern int _cupsFilePeekAhead(cups_file_t *fp, int ch); # ifdef __cplusplus } diff --git a/cups/file.c b/cups/file.c index 5d15054..5c9ddf8 100644 --- a/cups/file.c +++ b/cups/file.c @@ -6,7 +6,7 @@ * our own file functions allows us to provide transparent support of * different line endings, gzip'd print files, PPD files, etc. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -26,6 +26,39 @@ #include <sys/stat.h> #include <sys/types.h> +# ifdef HAVE_LIBZ +# include <zlib.h> +# endif /* HAVE_LIBZ */ + + +/* + * Internal structures... + */ + +struct _cups_file_s /**** CUPS file structure... ****/ + +{ + int fd; /* File descriptor */ + char mode, /* Mode ('r' or 'w') */ + compressed, /* Compression used? */ + is_stdio, /* stdin/out/err? */ + eof, /* End of file? */ + buf[4096], /* Buffer */ + *ptr, /* Pointer into buffer */ + *end; /* End of buffer data */ + off_t pos, /* Position in file */ + bufpos; /* File position for start of buffer */ + +#ifdef HAVE_LIBZ + z_stream stream; /* (De)compression stream */ + Bytef cbuf[4096]; /* (De)compression buffer */ + uLong crc; /* (De)compression CRC */ +#endif /* HAVE_LIBZ */ + + char *printf_buffer; /* cupsFilePrintf buffer */ + size_t printf_size; /* Size of cupsFilePrintf buffer */ +}; + /* * Local functions... @@ -40,7 +73,7 @@ static ssize_t cups_read(cups_file_t *fp, char *buf, size_t bytes); static ssize_t cups_write(cups_file_t *fp, const char *buf, size_t bytes); -#ifndef WIN32 +#ifndef _WIN32 /* * '_cupsFileCheck()' - Check the permissions of the given filename. */ @@ -306,7 +339,7 @@ _cupsFileCheckFilter( fprintf(stderr, "%s: %s\n", prefix, message); } -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* @@ -526,22 +559,22 @@ cupsFileFind(const char *filename, /* I - File to find */ while (*path) { -#ifdef WIN32 +#ifdef _WIN32 if (*path == ';' || (*path == ':' && ((bufptr - buffer) > 1 || !isalpha(buffer[0] & 255)))) #else if (*path == ';' || *path == ':') -#endif /* WIN32 */ +#endif /* _WIN32 */ { if (bufptr > buffer && bufptr[-1] != '/' && bufptr < bufend) *bufptr++ = '/'; strlcpy(bufptr, filename, (size_t)(bufend - bufptr)); -#ifdef WIN32 +#ifdef _WIN32 if (!access(buffer, 0)) #else if (!access(buffer, executable ? X_OK : 0)) -#endif /* WIN32 */ +#endif /* _WIN32 */ { DEBUG_printf(("1cupsFileFind: Returning \"%s\"", buffer)); return (buffer); @@ -992,11 +1025,11 @@ cupsFileLock(cups_file_t *fp, /* I - CUPS file */ * Try the lock... */ -#ifdef WIN32 +#ifdef _WIN32 return (_locking(fp->fd, block ? _LK_LOCK : _LK_NBLCK, 0)); #else return (lockf(fp->fd, block ? F_LOCK : F_TLOCK, 0)); -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -1084,11 +1117,11 @@ cupsFileOpen(const char *filename, /* I - Name of file */ } if (fd >= 0) -#ifdef WIN32 +#ifdef _WIN32 _chsize(fd, 0); #else ftruncate(fd, 0); -#endif /* WIN32 */ +#endif /* _WIN32 */ break; case 's' : /* Read/write socket */ @@ -1255,15 +1288,27 @@ cupsFileOpenFd(int fd, /* I - File descriptor */ * Don't pass this file to child processes... */ -#ifndef WIN32 +#ifndef _WIN32 fcntl(fp->fd, F_SETFD, fcntl(fp->fd, F_GETFD) | FD_CLOEXEC); -#endif /* !WIN32 */ +#endif /* !_WIN32 */ return (fp); } /* + * '_cupsFilePeekAhead()' - See if the requested character is buffered up. + */ + +int /* O - 1 if present, 0 otherwise */ +_cupsFilePeekAhead(cups_file_t *fp, /* I - CUPS file */ + int ch) /* I - Character */ +{ + return (fp && fp->ptr && memchr(fp->ptr, ch, (size_t)(fp->end - fp->ptr))); +} + + +/* * 'cupsFilePeekChar()' - Peek at the next character from a file. * * @since CUPS 1.2/macOS 10.5@ @@ -2019,11 +2064,11 @@ cupsFileUnlock(cups_file_t *fp) /* I - CUPS file */ * Unlock... */ -#ifdef WIN32 +#ifdef _WIN32 return (_locking(fp->fd, _LK_UNLCK, 0)); #else return (lockf(fp->fd, F_ULOCK, 0)); -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -2553,9 +2598,9 @@ cups_open(const char *filename, /* I - Filename */ { int fd; /* File descriptor */ struct stat fileinfo; /* File information */ -#ifndef WIN32 +#ifndef _WIN32 struct stat linkinfo; /* Link information */ -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* @@ -2583,18 +2628,18 @@ cups_open(const char *filename, /* I - Filename */ return (-1); } -#ifdef WIN32 +#ifdef _WIN32 if (fileinfo.st_mode & _S_IFDIR) #else if (S_ISDIR(fileinfo.st_mode)) -#endif /* WIN32 */ +#endif /* _WIN32 */ { close(fd); errno = EISDIR; return (-1); } -#ifndef WIN32 +#ifndef _WIN32 /* * Then use lstat to determine whether the filename is a symlink... */ @@ -2622,7 +2667,7 @@ cups_open(const char *filename, /* I - Filename */ errno = EPERM; return (-1); } -#endif /* !WIN32 */ +#endif /* !_WIN32 */ return (fd); } @@ -2648,7 +2693,7 @@ cups_read(cups_file_t *fp, /* I - CUPS file */ for (;;) { -#ifdef WIN32 +#ifdef _WIN32 if (fp->mode == 's') total = (ssize_t)recv(fp->fd, buf, (unsigned)bytes, 0); else @@ -2658,7 +2703,7 @@ cups_read(cups_file_t *fp, /* I - CUPS file */ total = recv(fp->fd, buf, bytes, 0); else total = read(fp->fd, buf, bytes); -#endif /* WIN32 */ +#endif /* _WIN32 */ DEBUG_printf(("9cups_read: total=" CUPS_LLFMT, CUPS_LLCAST total)); @@ -2705,7 +2750,7 @@ cups_write(cups_file_t *fp, /* I - CUPS file */ total = 0; while (bytes > 0) { -#ifdef WIN32 +#ifdef _WIN32 if (fp->mode == 's') count = (ssize_t)send(fp->fd, buf, (unsigned)bytes, 0); else @@ -2715,7 +2760,7 @@ cups_write(cups_file_t *fp, /* I - CUPS file */ count = send(fp->fd, buf, bytes, 0); else count = write(fp->fd, buf, bytes); -#endif /* WIN32 */ +#endif /* _WIN32 */ DEBUG_printf(("9cups_write: count=" CUPS_LLFMT, CUPS_LLCAST count)); diff --git a/cups/file.h b/cups/file.h index 42abe20..0d3a2e5 100644 --- a/cups/file.h +++ b/cups/file.h @@ -6,7 +6,7 @@ * our own file functions allows us to provide transparent support of * different line endings, gzip'd print files, PPD files, etc. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -29,11 +29,11 @@ # include "versioning.h" # include <stddef.h> # include <sys/types.h> -# if defined(WIN32) && !defined(__CUPS_SSIZE_T_DEFINED) +# if defined(_WIN32) && !defined(__CUPS_SSIZE_T_DEFINED) # define __CUPS_SSIZE_T_DEFINED /* Windows does not support the ssize_t type, so map it to off_t... */ typedef off_t ssize_t; /* @private@ */ -# endif /* WIN32 && !__CUPS_SSIZE_T_DEFINED */ +# endif /* _WIN32 && !__CUPS_SSIZE_T_DEFINED */ /* @@ -85,9 +85,7 @@ extern cups_file_t *cupsFileOpen(const char *filename, const char *mode) _CUPS_API_1_2; extern cups_file_t *cupsFileOpenFd(int fd, const char *mode) _CUPS_API_1_2; extern int cupsFilePeekChar(cups_file_t *fp) _CUPS_API_1_2; -extern int cupsFilePrintf(cups_file_t *fp, const char *format, ...) - __attribute__((__format__ (__printf__, 2, 3))) - _CUPS_API_1_2; +extern int cupsFilePrintf(cups_file_t *fp, const char *format, ...) _CUPS_FORMAT(2, 3) _CUPS_API_1_2; extern int cupsFilePutChar(cups_file_t *fp, int c) _CUPS_API_1_2; extern ssize_t cupsFilePutConf(cups_file_t *fp, const char *directive, const char *value) _CUPS_API_1_4; diff --git a/cups/getputfile.c b/cups/getputfile.c index ae33bc5..7749ae0 100644 --- a/cups/getputfile.c +++ b/cups/getputfile.c @@ -1,7 +1,7 @@ /* * Get/put file functions for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -20,11 +20,11 @@ #include "cups-private.h" #include <fcntl.h> #include <sys/stat.h> -#if defined(WIN32) || defined(__EMX__) +#if defined(_WIN32) || defined(__EMX__) # include <io.h> #else # include <unistd.h> -#endif /* WIN32 || __EMX__ */ +#endif /* _WIN32 || __EMX__ */ /* @@ -45,6 +45,8 @@ cupsGetFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA http_status_t status; /* HTTP status from server */ char if_modified_since[HTTP_MAX_VALUE]; /* If-Modified-Since header */ + int new_auth = 0; /* Using new auth information? */ + int digest; /* Are we using Digest authentication? */ /* @@ -85,9 +87,33 @@ cupsGetFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA } httpClearFields(http); - httpSetField(http, HTTP_FIELD_AUTHORIZATION, http->authstring); httpSetField(http, HTTP_FIELD_IF_MODIFIED_SINCE, if_modified_since); + digest = http->authstring && !strncmp(http->authstring, "Digest ", 7); + + if (digest && !new_auth) + { + /* + * Update the Digest authentication string... + */ + + _httpSetDigestAuthString(http, http->nextnonce, "GET", resource); + } + +#ifdef HAVE_GSSAPI + if (http->authstring && !strncmp(http->authstring, "Negotiate", 9) && !new_auth) + { + /* + * Do not use cached Kerberos credentials since they will look like a + * "replay" attack... + */ + + _cupsSetNegotiateAuthString(http, "GET", resource); + } +#endif /* HAVE_GSSAPI */ + + httpSetField(http, HTTP_FIELD_AUTHORIZATION, http->authstring); + if (httpGet(http, resource)) { if (httpReconnect2(http, 30000, NULL)) @@ -102,6 +128,8 @@ cupsGetFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA } } + new_auth = 0; + while ((status = httpUpdate(http)) == HTTP_STATUS_CONTINUE); if (status == HTTP_STATUS_UNAUTHORIZED) @@ -116,6 +144,8 @@ cupsGetFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA * See if we can do authentication... */ + new_auth = 1; + if (cupsDoAuthentication(http, "GET", resource)) { status = HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED; @@ -267,6 +297,8 @@ cupsPutFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA int retries; /* Number of retries */ char buffer[8192]; /* Buffer for file */ http_status_t status; /* HTTP status from server */ + int new_auth = 0; /* Using new auth information? */ + int digest; /* Are we using Digest authentication? */ /* @@ -309,10 +341,34 @@ cupsPutFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA http->authstring)); httpClearFields(http); - httpSetField(http, HTTP_FIELD_AUTHORIZATION, http->authstring); httpSetField(http, HTTP_FIELD_TRANSFER_ENCODING, "chunked"); httpSetExpect(http, HTTP_STATUS_CONTINUE); + digest = http->authstring && !strncmp(http->authstring, "Digest ", 7); + + if (digest && !new_auth) + { + /* + * Update the Digest authentication string... + */ + + _httpSetDigestAuthString(http, http->nextnonce, "PUT", resource); + } + +#ifdef HAVE_GSSAPI + if (http->authstring && !strncmp(http->authstring, "Negotiate", 9) && !new_auth) + { + /* + * Do not use cached Kerberos credentials since they will look like a + * "replay" attack... + */ + + _cupsSetNegotiateAuthString(http, "PUT", resource); + } +#endif /* HAVE_GSSAPI */ + + httpSetField(http, HTTP_FIELD_AUTHORIZATION, http->authstring); + if (httpPut(http, resource)) { if (httpReconnect2(http, 30000, NULL)) @@ -383,6 +439,8 @@ cupsPutFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA DEBUG_printf(("2cupsPutFd: status=%d", status)); + new_auth = 0; + if (status == HTTP_STATUS_UNAUTHORIZED) { /* @@ -395,6 +453,8 @@ cupsPutFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA * See if we can do authentication... */ + new_auth = 1; + if (cupsDoAuthentication(http, "PUT", resource)) { status = HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED; diff --git a/cups/globals.c b/cups/globals.c index 8a05c3e..28c993b 100644 --- a/cups/globals.c +++ b/cups/globals.c @@ -34,23 +34,23 @@ static _cups_threadkey_t cups_globals_key = _CUPS_THREADKEY_INITIALIZER; static pthread_once_t cups_globals_key_once = PTHREAD_ONCE_INIT; /* One-time initialization object */ #endif /* HAVE_PTHREAD_H */ -#if defined(HAVE_PTHREAD_H) || defined(WIN32) +#if defined(HAVE_PTHREAD_H) || defined(_WIN32) static _cups_mutex_t cups_global_mutex = _CUPS_MUTEX_INITIALIZER; /* Global critical section */ -#endif /* HAVE_PTHREAD_H || WIN32 */ +#endif /* HAVE_PTHREAD_H || _WIN32 */ /* * Local functions... */ -#ifdef WIN32 +#ifdef _WIN32 static void cups_fix_path(char *path); -#endif /* WIN32 */ +#endif /* _WIN32 */ static _cups_globals_t *cups_globals_alloc(void); -#if defined(HAVE_PTHREAD_H) || defined(WIN32) +#if defined(HAVE_PTHREAD_H) || defined(_WIN32) static void cups_globals_free(_cups_globals_t *g); -#endif /* HAVE_PTHREAD_H || WIN32 */ +#endif /* HAVE_PTHREAD_H || _WIN32 */ #ifdef HAVE_PTHREAD_H static void cups_globals_init(void); #endif /* HAVE_PTHREAD_H */ @@ -65,7 +65,7 @@ _cupsGlobalLock(void) { #ifdef HAVE_PTHREAD_H pthread_mutex_lock(&cups_global_mutex); -#elif defined(WIN32) +#elif defined(_WIN32) EnterCriticalSection(&cups_global_mutex.m_criticalSection); #endif /* HAVE_PTHREAD_H */ } @@ -120,13 +120,13 @@ _cupsGlobalUnlock(void) { #ifdef HAVE_PTHREAD_H pthread_mutex_unlock(&cups_global_mutex); -#elif defined(WIN32) +#elif defined(_WIN32) LeaveCriticalSection(&cups_global_mutex.m_criticalSection); #endif /* HAVE_PTHREAD_H */ } -#ifdef WIN32 +#ifdef _WIN32 /* * 'DllMain()' - Main entry for library. */ @@ -170,7 +170,7 @@ DllMain(HINSTANCE hinst, /* I - DLL module handle */ return (TRUE); } -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -182,13 +182,13 @@ cups_globals_alloc(void) { _cups_globals_t *cg = malloc(sizeof(_cups_globals_t)); /* Pointer to global data */ -#ifdef WIN32 +#ifdef _WIN32 HKEY key; /* Registry key */ DWORD size; /* Size of string */ static char installdir[1024] = "", /* Install directory */ confdir[1024] = "", /* Server root directory */ localedir[1024] = ""; /* Locale directory */ -#endif /* WIN32 */ +#endif /* _WIN32 */ if (!cg) @@ -219,7 +219,7 @@ cups_globals_alloc(void) * Then set directories as appropriate... */ -#ifdef WIN32 +#ifdef _WIN32 if (!installdir[0]) { /* @@ -315,7 +315,7 @@ cups_globals_alloc(void) if ((cg->localedir = getenv("LOCALEDIR")) == NULL) cg->localedir = CUPS_LOCALEDIR; } -#endif /* WIN32 */ +#endif /* _WIN32 */ return (cg); } @@ -325,7 +325,7 @@ cups_globals_alloc(void) * 'cups_globals_free()' - Free global data. */ -#if defined(HAVE_PTHREAD_H) || defined(WIN32) +#if defined(HAVE_PTHREAD_H) || defined(_WIN32) static void cups_globals_free(_cups_globals_t *cg) /* I - Pointer to global data */ { @@ -360,7 +360,7 @@ cups_globals_free(_cups_globals_t *cg) /* I - Pointer to global data */ free(cg); } -#endif /* HAVE_PTHREAD_H || WIN32 */ +#endif /* HAVE_PTHREAD_H || _WIN32 */ #ifdef HAVE_PTHREAD_H diff --git a/cups/http-addr.c b/cups/http-addr.c index 61c8638..f8b8131 100644 --- a/cups/http-addr.c +++ b/cups/http-addr.c @@ -69,11 +69,11 @@ int /* O - 0 on success, -1 on failure */ httpAddrClose(http_addr_t *addr, /* I - Listen address or @code NULL@ */ int fd) /* I - Socket file descriptor */ { -#ifdef WIN32 +#ifdef _WIN32 if (closesocket(fd)) #else if (close(fd)) -#endif /* WIN32 */ +#endif /* _WIN32 */ return (-1); #ifdef AF_LOCAL @@ -258,9 +258,9 @@ httpAddrListen(http_addr_t *addr, /* I - Address to bind to */ * Close on exec... */ -#ifndef WIN32 +#ifndef _WIN32 fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); -#endif /* !WIN32 */ +#endif /* !_WIN32 */ #ifdef SO_NOSIGPIPE /* diff --git a/cups/http-addrlist.c b/cups/http-addrlist.c index e5fc940..d9a96c4 100644 --- a/cups/http-addrlist.c +++ b/cups/http-addrlist.c @@ -1,7 +1,7 @@ /* * HTTP address list routines for CUPS. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -24,9 +24,9 @@ #ifdef HAVE_POLL # include <poll.h> #endif /* HAVE_POLL */ -#ifndef WIN32 +#ifndef _WIN32 # include <fcntl.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -61,14 +61,14 @@ httpAddrConnect2( int *cancel) /* I - Pointer to "cancel" variable */ { int val; /* Socket option value */ -#ifndef WIN32 - int flags; /* Socket flags */ -#endif /* !WIN32 */ - int remaining; /* Remaining timeout */ +#ifndef _WIN32 int i, j, /* Looping vars */ - nfds, /* Number of file descriptors */ - fds[100], /* Socket file descriptors */ + flags, /* Socket flags */ result; /* Result from select() or poll() */ +#endif /* !_WIN32 */ + int remaining; /* Remaining timeout */ + int nfds, /* Number of file descriptors */ + fds[100]; /* Socket file descriptors */ http_addrlist_t *addrs[100]; /* Addresses */ #ifndef HAVE_POLL int max_fd = -1; /* Highest file descriptor */ @@ -84,8 +84,10 @@ httpAddrConnect2( # endif /* HAVE_POLL */ #endif /* O_NONBLOCK */ #ifdef DEBUG +# ifndef _WIN32 socklen_t len; /* Length of value */ http_addr_t peer; /* Peer address */ +# endif /* !_WIN32 */ char temp[256]; /* Temporary address string */ #endif /* DEBUG */ @@ -213,11 +215,11 @@ httpAddrConnect2( return (addrlist); } -#ifdef WIN32 +#ifdef _WIN32 if (WSAGetLastError() != WSAEINPROGRESS && WSAGetLastError() != WSAEWOULDBLOCK) #else if (errno != EINPROGRESS && errno != EWOULDBLOCK) -#endif /* WIN32 */ +#endif /* _WIN32 */ { DEBUG_printf(("1httpAddrConnect2: Unable to connect to %s:%d: %s", httpAddrString(&(addrlist->addr), temp, sizeof(temp)), httpAddrPort(&(addrlist->addr)), strerror(errno))); httpAddrClose(NULL, fds[nfds]); @@ -225,9 +227,9 @@ httpAddrConnect2( continue; } -#ifndef WIN32 +#ifndef _WIN32 fcntl(fds[nfds], F_SETFL, flags); -#endif /* !WIN32 */ +#endif /* !_WIN32 */ #ifndef HAVE_POLL if (fds[nfds] > max_fd) @@ -296,11 +298,11 @@ httpAddrConnect2( DEBUG_printf(("1httpAddrConnect2: select() returned %d (%d)", result, errno)); # endif /* HAVE_POLL */ } -# ifdef WIN32 +# ifdef _WIN32 while (result < 0 && (WSAGetLastError() == WSAEINTR || WSAGetLastError() == WSAEWOULDBLOCK)); # else while (result < 0 && (errno == EINTR || errno == EAGAIN)); -# endif /* WIN32 */ +# endif /* _WIN32 */ if (result > 0) { @@ -377,11 +379,11 @@ httpAddrConnect2( httpAddrClose(NULL, fds[nfds]); } -#ifdef WIN32 +#ifdef _WIN32 _cupsSetError(IPP_STATUS_ERROR_SERVICE_UNAVAILABLE, "Connection failed", 0); #else _cupsSetError(IPP_STATUS_ERROR_SERVICE_UNAVAILABLE, strerror(errno), 0); -#endif /* WIN32 */ +#endif /* _WIN32 */ return (NULL); } @@ -618,6 +620,7 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p if (!temp) { httpAddrFreeList(first); + freeaddrinfo(results); _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(errno), 0); return (NULL); } @@ -848,11 +851,11 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p temp->addr.ipv6.sin6_family = AF_INET6; temp->addr.ipv6.sin6_port = htons(portnum); -# ifdef WIN32 +# ifdef _WIN32 temp->addr.ipv6.sin6_addr.u.Byte[15] = 1; # else temp->addr.ipv6.sin6_addr.s6_addr32[3] = htonl(1); -# endif /* WIN32 */ +# endif /* _WIN32 */ if (!first) first = temp; diff --git a/cups/http-private.h b/cups/http-private.h index 4f118ba..32cb9ea 100644 --- a/cups/http-private.h +++ b/cups/http-private.h @@ -30,7 +30,7 @@ # endif /* __sun */ # include <limits.h> -# ifdef WIN32 +# ifdef _WIN32 # include <io.h> # include <winsock2.h> # define CUPS_SOCAST (const char *) @@ -39,7 +39,7 @@ # include <fcntl.h> # include <sys/socket.h> # define CUPS_SOCAST -# endif /* WIN32 */ +# endif /* _WIN32 */ # ifdef HAVE_GSSAPI # ifdef HAVE_GSS_GSSAPI_H @@ -140,7 +140,7 @@ extern SecIdentityRef SecIdentityCreate(CFAllocatorRef allocator, SecCertificate # include <sspi.h> # endif /* HAVE_GNUTLS */ -# ifndef WIN32 +# ifndef _WIN32 # include <net/if.h> # include <resolv.h> # ifdef HAVE_GETIFADDRS @@ -151,11 +151,7 @@ extern SecIdentityRef SecIdentityCreate(CFAllocatorRef allocator, SecCertificate # include <sys/sockio.h> # endif /* HAVE_SYS_SOCKIO_H */ # endif /* HAVE_GETIFADDRS */ -# endif /* !WIN32 */ - -# ifdef HAVE_LIBZ -# include <zlib.h> -# endif /* HAVE_LIBZ */ +# endif /* !_WIN32 */ /* @@ -364,9 +360,20 @@ struct _http_s /**** HTTP connection structure ****/ /* Default field values */ # ifdef HAVE_LIBZ _http_coding_t coding; /* _HTTP_CODING_xxx */ - z_stream stream; /* (De)compression stream */ - Bytef *sbuffer; /* (De)compression buffer */ + void *stream; /* (De)compression stream */ + unsigned char *sbuffer; /* (De)compression buffer */ # endif /* HAVE_LIBZ */ + + /**** New in CUPS 2.2.9 ****/ + char *authentication_info, + /* Authentication-Info header */ + algorithm[65], /* Algorithm from WWW-Authenticate */ + nextnonce[HTTP_MAX_VALUE], + /* Next nonce value from Authentication-Info */ + opaque[HTTP_MAX_VALUE], + /* Opaque value from WWW-Authenticate */ + realm[HTTP_MAX_VALUE]; + /* Realm from WWW-Authenticate */ }; # endif /* !_HTTP_NO_PRIVATE */ @@ -385,7 +392,7 @@ extern const char *_cups_hstrerror(int error); * Some OS's don't have getifaddrs() and freeifaddrs()... */ -# if !defined(WIN32) && !defined(HAVE_GETIFADDRS) +# if !defined(_WIN32) && !defined(HAVE_GETIFADDRS) # ifdef ifa_dstaddr # undef ifa_dstaddr # endif /* ifa_dstaddr */ @@ -420,7 +427,7 @@ extern int _cups_getifaddrs(struct ifaddrs **addrs); # define getifaddrs _cups_getifaddrs extern void _cups_freeifaddrs(struct ifaddrs *addrs); # define freeifaddrs _cups_freeifaddrs -# endif /* !WIN32 && !HAVE_GETIFADDRS */ +# endif /* !_WIN32 && !HAVE_GETIFADDRS */ /* @@ -440,6 +447,7 @@ extern const char *_httpResolveURI(const char *uri, char *resolved_uri, size_t resolved_size, int options, int (*cb)(void *context), void *context); +extern int _httpSetDigestAuthString(http_t *http, const char *nonce, const char *method, const char *resource); extern const char *_httpStatus(cups_lang_t *lang, http_status_t status); extern void _httpTLSInitialize(void); extern size_t _httpTLSPending(http_t *http); diff --git a/cups/http-support.c b/cups/http-support.c index 76c1272..767fbf6 100644 --- a/cups/http-support.c +++ b/cups/http-support.c @@ -20,13 +20,13 @@ #include "cups-private.h" #ifdef HAVE_DNSSD # include <dns_sd.h> -# ifdef WIN32 +# ifdef _WIN32 # include <io.h> # elif defined(HAVE_POLL) # include <poll.h> # else # include <sys/select.h> -# endif /* WIN32 */ +# endif /* _WIN32 */ #elif defined(HAVE_AVAHI) # include <avahi-client/client.h> # include <avahi-client/lookup.h> @@ -1303,6 +1303,152 @@ httpSeparateURI( /* + * '_httpSetDigestAuthString()' - Calculate a Digest authentication response + * using the appropriate RFC 2068/2617/7616 + * algorithm. + */ + +int /* O - 1 on success, 0 on failure */ +_httpSetDigestAuthString( + http_t *http, /* I - HTTP connection */ + const char *nonce, /* I - Nonce value */ + const char *method, /* I - HTTP method */ + const char *resource) /* I - HTTP resource path */ +{ + char kd[65], /* Final MD5/SHA-256 digest */ + ha1[65], /* Hash of username:realm:password */ + ha2[65], /* Hash of method:request-uri */ + username[HTTP_MAX_VALUE], + /* username:password */ + *password, /* Pointer to password */ + temp[1024], /* Temporary string */ + digest[1024]; /* Digest auth data */ + unsigned char hash[32]; /* Hash buffer */ + size_t hashsize; /* Size of hash */ + + + DEBUG_printf(("2_httpSetDigestAuthString(http=%p, nonce=\"%s\", method=\"%s\", resource=\"%s\")", http, nonce, method, resource)); + + if (nonce && *nonce && strcmp(nonce, http->nonce)) + { + strlcpy(http->nonce, nonce, sizeof(http->nonce)); + + if (nonce == http->nextnonce) + http->nextnonce[0] = '\0'; + + http->nonce_count = 1; + } + else + http->nonce_count ++; + + strlcpy(username, http->userpass, sizeof(username)); + if ((password = strchr(username, ':')) != NULL) + *password++ = '\0'; + else + return (0); + + if (http->algorithm[0]) + { + /* + * Follow RFC 2617/7616... + */ + + int i; /* Looping var */ + char cnonce[65]; /* cnonce value */ + const char *hashalg; /* Hashing algorithm */ + + for (i = 0; i < 64; i ++) + cnonce[i] = "0123456789ABCDEF"[CUPS_RAND() & 15]; + cnonce[64] = '\0'; + + if (!_cups_strcasecmp(http->algorithm, "MD5")) + { + /* + * RFC 2617 Digest with MD5 + */ + + hashalg = "md5"; + } + else if (!_cups_strcasecmp(http->algorithm, "SHA-256")) + { + /* + * RFC 7616 Digest with SHA-256 + */ + + hashalg = "sha2-256"; + } + else + { + /* + * Some other algorithm we don't support, skip this one... + */ + + return (0); + } + + /* + * Calculate digest value... + */ + + /* H(A1) = H(username:realm:password) */ + snprintf(temp, sizeof(temp), "%s:%s:%s", username, http->realm, password); + hashsize = (size_t)cupsHashData(hashalg, (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); + cupsHashString(hash, hashsize, ha1, sizeof(ha1)); + + /* H(A2) = H(method:uri) */ + snprintf(temp, sizeof(temp), "%s:%s", method, resource); + hashsize = (size_t)cupsHashData(hashalg, (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); + cupsHashString(hash, hashsize, ha2, sizeof(ha2)); + + /* KD = H(H(A1):nonce:nc:cnonce:qop:H(A2)) */ + snprintf(temp, sizeof(temp), "%s:%s:%08x:%s:%s:%s", ha1, http->nonce, http->nonce_count, cnonce, "auth", ha2); + hashsize = (size_t)cupsHashData(hashalg, (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); + cupsHashString(hash, hashsize, kd, sizeof(kd)); + + /* + * Pass the RFC 2617/7616 WWW-Authenticate header... + */ + + if (http->opaque[0]) + snprintf(digest, sizeof(digest), "username=\"%s\", realm=\"%s\", nonce=\"%s\", algorithm=%s, qop=auth, opaque=\"%s\", cnonce=\"%s\", nc=%08x, uri=\"%s\", response=\"%s\"", cupsUser(), http->realm, http->nonce, http->algorithm, http->opaque, cnonce, http->nonce_count, resource, kd); + else + snprintf(digest, sizeof(digest), "username=\"%s\", realm=\"%s\", nonce=\"%s\", algorithm=%s, qop=auth, cnonce=\"%s\", nc=%08x, uri=\"%s\", response=\"%s\"", username, http->realm, http->nonce, http->algorithm, cnonce, http->nonce_count, resource, kd); + } + else + { + /* + * Use old RFC 2069 Digest method... + */ + + /* H(A1) = H(username:realm:password) */ + snprintf(temp, sizeof(temp), "%s:%s:%s", username, http->realm, password); + hashsize = (size_t)cupsHashData("md5", (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); + cupsHashString(hash, hashsize, ha1, sizeof(ha1)); + + /* H(A2) = H(method:uri) */ + snprintf(temp, sizeof(temp), "%s:%s", method, resource); + hashsize = (size_t)cupsHashData("md5", (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); + cupsHashString(hash, hashsize, ha2, sizeof(ha2)); + + /* KD = H(H(A1):nonce:H(A2)) */ + snprintf(temp, sizeof(temp), "%s:%s:%s", ha1, http->nonce, ha2); + hashsize = (size_t)cupsHashData("md5", (unsigned char *)temp, strlen(temp), hash, sizeof(hash)); + cupsHashString(hash, hashsize, kd, sizeof(kd)); + + /* + * Pass the old RFC 2069 WWW-Authenticate header... + */ + + snprintf(digest, sizeof(digest), "username=\"%s\", realm=\"%s\", nonce=\"%s\", uri=\"%s\", response=\"%s\"", username, http->realm, http->nonce, resource, kd); + } + + httpSetAuthString(http, "Digest", digest); + + return (1); +} + + +/* * 'httpStateString()' - Return the string describing a HTTP state value. * * @since CUPS 2.0/OS 10.10@ @@ -1622,9 +1768,6 @@ _httpResolveURI( _http_uribuf_t uribuf; /* URI buffer */ int offline = 0; /* offline-report state set? */ # ifdef HAVE_DNSSD -# ifdef WIN32 -# pragma comment(lib, "dnssd.lib") -# endif /* WIN32 */ DNSServiceRef ref, /* DNS-SD master service reference */ domainref = NULL,/* DNS-SD service reference for domain */ ippref = NULL, /* DNS-SD service reference for network IPP */ @@ -1753,11 +1896,11 @@ _httpResolveURI( FD_ZERO(&input_set); FD_SET(DNSServiceRefSockFD(ref), &input_set); -# ifdef WIN32 +# ifdef _WIN32 stimeout.tv_sec = (long)timeout; # else stimeout.tv_sec = timeout; -# endif /* WIN32 */ +# endif /* _WIN32 */ stimeout.tv_usec = 0; fds = select(DNSServiceRefSockFD(ref)+1, &input_set, NULL, NULL, diff --git a/cups/http.c b/cups/http.c index 34f0822..5c14ef6 100644 --- a/cups/http.c +++ b/cups/http.c @@ -23,16 +23,19 @@ #include "cups-private.h" #include <fcntl.h> #include <math.h> -#ifdef WIN32 +#ifdef _WIN32 # include <tchar.h> #else # include <signal.h> # include <sys/time.h> # include <sys/resource.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #ifdef HAVE_POLL # include <poll.h> #endif /* HAVE_POLL */ +# ifdef HAVE_LIBZ +# include <zlib.h> +# endif /* HAVE_LIBZ */ /* @@ -106,7 +109,8 @@ static const char * const http_fields[] = "WWW-Authenticate", "Accept-Encoding", "Allow", - "Server" + "Server", + "Authentication-Info" }; @@ -326,6 +330,12 @@ httpClearFields(http_t *http) /* I - HTTP connection */ http->server = NULL; } + if (http->authentication_info) + { + _cupsStrFree(http->authentication_info); + http->authentication_info = NULL; + } + http->expect = (http_status_t)0; } } @@ -970,11 +980,14 @@ httpGetField(http_t *http, /* I - HTTP connection */ case HTTP_FIELD_SERVER : return (http->server); + case HTTP_FIELD_AUTHENTICATION_INFO : + return (http->authentication_info); + case HTTP_FIELD_AUTHORIZATION : if (http->field_authorization) { /* - * Special case for WWW-Authenticate: as its contents can be + * Special case for Authorization: as its contents can be * longer than HTTP_MAX_VALUE... */ @@ -1184,11 +1197,11 @@ httpGets(char *line, /* I - Line to read into */ * Pre-load the buffer as needed... */ -#ifdef WIN32 +#ifdef _WIN32 WSASetLastError(0); #else errno = 0; -#endif /* WIN32 */ +#endif /* _WIN32 */ while (http->used == 0) { @@ -1202,11 +1215,11 @@ httpGets(char *line, /* I - Line to read into */ continue; DEBUG_puts("3httpGets: Timed out!"); -#ifdef WIN32 +#ifdef _WIN32 http->error = WSAETIMEDOUT; #else http->error = ETIMEDOUT; -#endif /* WIN32 */ +#endif /* _WIN32 */ return (NULL); } @@ -1220,7 +1233,7 @@ httpGets(char *line, /* I - Line to read into */ * Nope, can't get a line this time... */ -#ifdef WIN32 +#ifdef _WIN32 DEBUG_printf(("3httpGets: recv() error %d!", WSAGetLastError())); if (WSAGetLastError() == WSAEINTR) @@ -1257,7 +1270,7 @@ httpGets(char *line, /* I - Line to read into */ http->error = errno; continue; } -#endif /* WIN32 */ +#endif /* _WIN32 */ return (NULL); } @@ -1524,9 +1537,9 @@ void httpInitialize(void) { static int initialized = 0; /* Have we been called before? */ -#ifdef WIN32 +#ifdef _WIN32 WSADATA winsockdata; /* WinSock data */ -#endif /* WIN32 */ +#endif /* _WIN32 */ _cupsGlobalLock(); @@ -1536,7 +1549,7 @@ httpInitialize(void) return; } -#ifdef WIN32 +#ifdef _WIN32 WSAStartup(MAKEWORD(2,2), &winsockdata); #elif !defined(SO_NOSIGPIPE) @@ -1558,7 +1571,7 @@ httpInitialize(void) # else signal(SIGPIPE, SIG_IGN); # endif /* !SO_NOSIGPIPE */ -#endif /* WIN32 */ +#endif /* _WIN32 */ # ifdef HAVE_SSL _httpTLSInitialize(); @@ -1714,7 +1727,7 @@ httpPeek(http_t *http, /* I - HTTP connection */ #ifdef HAVE_LIBZ if (http->used == 0 && (http->coding == _HTTP_CODING_IDENTITY || - (http->coding >= _HTTP_CODING_GUNZIP && http->stream.avail_in == 0))) + (http->coding >= _HTTP_CODING_GUNZIP && ((z_stream *)http->stream)->avail_in == 0))) #else if (http->used == 0) #endif /* HAVE_LIBZ */ @@ -1763,16 +1776,16 @@ httpPeek(http_t *http, /* I - HTTP connection */ int zerr; /* Decompressor error */ z_stream stream; /* Copy of decompressor stream */ - if (http->used > 0 && http->stream.avail_in < HTTP_MAX_BUFFER) + if (http->used > 0 && ((z_stream *)http->stream)->avail_in < HTTP_MAX_BUFFER) { - size_t buflen = buflen = HTTP_MAX_BUFFER - http->stream.avail_in; + size_t buflen = buflen = HTTP_MAX_BUFFER - ((z_stream *)http->stream)->avail_in; /* Number of bytes to copy */ - if (http->stream.avail_in > 0 && - http->stream.next_in > http->sbuffer) - memmove(http->sbuffer, http->stream.next_in, http->stream.avail_in); + if (((z_stream *)http->stream)->avail_in > 0 && + ((z_stream *)http->stream)->next_in > http->sbuffer) + memmove(http->sbuffer, ((z_stream *)http->stream)->next_in, ((z_stream *)http->stream)->avail_in); - http->stream.next_in = http->sbuffer; + ((z_stream *)http->stream)->next_in = http->sbuffer; if (buflen > (size_t)http->data_remaining) buflen = (size_t)http->data_remaining; @@ -1783,8 +1796,8 @@ httpPeek(http_t *http, /* I - HTTP connection */ DEBUG_printf(("1httpPeek: Copying %d more bytes of data into " "decompression buffer.", (int)buflen)); - memcpy(http->sbuffer + http->stream.avail_in, http->buffer, buflen); - http->stream.avail_in += buflen; + memcpy(http->sbuffer + ((z_stream *)http->stream)->avail_in, http->buffer, buflen); + ((z_stream *)http->stream)->avail_in += buflen; http->used -= (int)buflen; http->data_remaining -= (off_t)buflen; @@ -1793,9 +1806,9 @@ httpPeek(http_t *http, /* I - HTTP connection */ } DEBUG_printf(("2httpPeek: length=%d, avail_in=%d", (int)length, - (int)http->stream.avail_in)); + (int)((z_stream *)http->stream)->avail_in)); - if (inflateCopy(&stream, &(http->stream)) != Z_OK) + if (inflateCopy(&stream, (z_stream *)http->stream) != Z_OK) { DEBUG_puts("2httpPeek: Unable to copy decompressor stream."); http->error = ENOMEM; @@ -1812,14 +1825,14 @@ httpPeek(http_t *http, /* I - HTTP connection */ { DEBUG_printf(("2httpPeek: zerr=%d", zerr)); #ifdef DEBUG - http_debug_hex("2httpPeek", (char *)http->sbuffer, (int)http->stream.avail_in); + http_debug_hex("2httpPeek", (char *)http->sbuffer, (int)((z_stream *)http->stream)->avail_in); #endif /* DEBUG */ http->error = EIO; return (-1); } - bytes = (ssize_t)(length - http->stream.avail_out); + bytes = (ssize_t)(length - ((z_stream *)http->stream)->avail_out); # else DEBUG_puts("2httpPeek: No inflateCopy on this platform, httpPeek does not " @@ -1846,7 +1859,7 @@ httpPeek(http_t *http, /* I - HTTP connection */ if (bytes < 0) { -#ifdef WIN32 +#ifdef _WIN32 if (WSAGetLastError() == WSAEINTR || WSAGetLastError() == WSAEWOULDBLOCK) bytes = 0; else @@ -1856,7 +1869,7 @@ httpPeek(http_t *http, /* I - HTTP connection */ bytes = 0; else http->error = errno; -#endif /* WIN32 */ +#endif /* _WIN32 */ } else if (bytes == 0) { @@ -1986,31 +1999,31 @@ httpRead2(http_t *http, /* I - HTTP connection */ { do { - if (http->stream.avail_in > 0) + if (((z_stream *)http->stream)->avail_in > 0) { int zerr; /* Decompressor error */ DEBUG_printf(("2httpRead2: avail_in=%d, avail_out=%d", - (int)http->stream.avail_in, (int)length)); + (int)((z_stream *)http->stream)->avail_in, (int)length)); - http->stream.next_out = (Bytef *)buffer; - http->stream.avail_out = (uInt)length; + ((z_stream *)http->stream)->next_out = (Bytef *)buffer; + ((z_stream *)http->stream)->avail_out = (uInt)length; - if ((zerr = inflate(&(http->stream), Z_SYNC_FLUSH)) < Z_OK) + if ((zerr = inflate((z_stream *)http->stream, Z_SYNC_FLUSH)) < Z_OK) { DEBUG_printf(("2httpRead2: zerr=%d", zerr)); #ifdef DEBUG - http_debug_hex("2httpRead2", (char *)http->sbuffer, (int)http->stream.avail_in); + http_debug_hex("2httpRead2", (char *)http->sbuffer, (int)((z_stream *)http->stream)->avail_in); #endif /* DEBUG */ http->error = EIO; return (-1); } - bytes = (ssize_t)(length - http->stream.avail_out); + bytes = (ssize_t)(length - ((z_stream *)http->stream)->avail_out); DEBUG_printf(("2httpRead2: avail_in=%d, avail_out=%d, bytes=%d", - http->stream.avail_in, http->stream.avail_out, + ((z_stream *)http->stream)->avail_in, ((z_stream *)http->stream)->avail_out, (int)bytes)); } else @@ -2018,16 +2031,16 @@ httpRead2(http_t *http, /* I - HTTP connection */ if (bytes == 0) { - ssize_t buflen = HTTP_MAX_BUFFER - (ssize_t)http->stream.avail_in; + ssize_t buflen = HTTP_MAX_BUFFER - (ssize_t)((z_stream *)http->stream)->avail_in; /* Additional bytes for buffer */ if (buflen > 0) { - if (http->stream.avail_in > 0 && - http->stream.next_in > http->sbuffer) - memmove(http->sbuffer, http->stream.next_in, http->stream.avail_in); + if (((z_stream *)http->stream)->avail_in > 0 && + ((z_stream *)http->stream)->next_in > http->sbuffer) + memmove(http->sbuffer, ((z_stream *)http->stream)->next_in, ((z_stream *)http->stream)->avail_in); - http->stream.next_in = http->sbuffer; + ((z_stream *)http->stream)->next_in = http->sbuffer; DEBUG_printf(("1httpRead2: Reading up to %d more bytes of data into " "decompression buffer.", (int)buflen)); @@ -2037,10 +2050,10 @@ httpRead2(http_t *http, /* I - HTTP connection */ if (buflen > http->data_remaining) buflen = (ssize_t)http->data_remaining; - bytes = http_read_buffered(http, (char *)http->sbuffer + http->stream.avail_in, (size_t)buflen); + bytes = http_read_buffered(http, (char *)http->sbuffer + ((z_stream *)http->stream)->avail_in, (size_t)buflen); } else if (http->data_encoding == HTTP_ENCODING_CHUNKED) - bytes = http_read_chunk(http, (char *)http->sbuffer + http->stream.avail_in, (size_t)buflen); + bytes = http_read_chunk(http, (char *)http->sbuffer + ((z_stream *)http->stream)->avail_in, (size_t)buflen); else bytes = 0; @@ -2053,7 +2066,7 @@ httpRead2(http_t *http, /* I - HTTP connection */ "decompression buffer.", CUPS_LLCAST bytes)); http->data_remaining -= bytes; - http->stream.avail_in += (uInt)bytes; + ((z_stream *)http->stream)->avail_in += (uInt)bytes; if (http->data_remaining <= 0 && http->data_encoding == HTTP_ENCODING_CHUNKED) @@ -2132,7 +2145,7 @@ httpRead2(http_t *http, /* I - HTTP connection */ if ( #ifdef HAVE_LIBZ (http->coding == _HTTP_CODING_IDENTITY || - (http->coding >= _HTTP_CODING_GUNZIP && http->stream.avail_in == 0)) && + (http->coding >= _HTTP_CODING_GUNZIP && ((z_stream *)http->stream)->avail_in == 0)) && #endif /* HAVE_LIBZ */ ((http->data_remaining <= 0 && http->data_encoding == HTTP_ENCODING_LENGTH) || @@ -2417,11 +2430,11 @@ httpReconnect2(http_t *http, /* I - HTTP connection */ * Unable to connect... */ -#ifdef WIN32 +#ifdef _WIN32 http->error = WSAGetLastError(); #else http->error = errno; -#endif /* WIN32 */ +#endif /* _WIN32 */ http->status = HTTP_STATUS_ERROR; DEBUG_printf(("1httpReconnect2: httpAddrConnect failed: %s", @@ -2758,11 +2771,11 @@ httpShutdown(http_t *http) /* I - HTTP connection */ _httpTLSStop(http); #endif /* HAVE_SSL */ -#ifdef WIN32 +#ifdef _WIN32 shutdown(http->fd, SD_RECEIVE); /* Microsoft-ism... */ #else shutdown(http->fd, SHUT_RD); -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -2938,7 +2951,12 @@ _httpUpdate(http_t *http, /* I - HTTP connection */ httpSetCookie(http, value); } else if ((field = httpFieldValue(line)) != HTTP_FIELD_UNKNOWN) + { http_add_field(http, field, value, 1); + + if (field == HTTP_FIELD_AUTHENTICATION_INFO) + httpGetSubField2(http, HTTP_FIELD_AUTHENTICATION_INFO, "nextnonce", http->nextnonce, (int)sizeof(http->nextnonce)); + } #ifdef DEBUG else DEBUG_printf(("1_httpUpdate: unknown field %s seen!", line)); @@ -3091,12 +3109,12 @@ _httpWait(http_t *http, /* I - HTTP connection */ DEBUG_printf(("6_httpWait: select() returned %d...", nfds)); } -# ifdef WIN32 +# ifdef _WIN32 while (nfds < 0 && (WSAGetLastError() == WSAEINTR || WSAGetLastError() == WSAEWOULDBLOCK)); # else while (nfds < 0 && (errno == EINTR || errno == EAGAIN)); -# endif /* WIN32 */ +# endif /* _WIN32 */ #endif /* HAVE_POLL */ DEBUG_printf(("5_httpWait: returning with nfds=%d, errno=%d...", nfds, @@ -3132,7 +3150,7 @@ httpWait(http_t *http, /* I - HTTP connection */ } #ifdef HAVE_LIBZ - if (http->coding >= _HTTP_CODING_GUNZIP && http->stream.avail_in > 0) + if (http->coding >= _HTTP_CODING_GUNZIP && ((z_stream *)http->stream)->avail_in > 0) { DEBUG_puts("3httpWait: Returning 1 since there is buffered data ready."); return (1); @@ -3228,17 +3246,17 @@ httpWrite2(http_t *http, /* I - HTTP connection */ size_t slen; /* Bytes to write */ ssize_t sret; /* Bytes written */ - http->stream.next_in = (Bytef *)buffer; - http->stream.avail_in = (uInt)length; + ((z_stream *)http->stream)->next_in = (Bytef *)buffer; + ((z_stream *)http->stream)->avail_in = (uInt)length; - while (deflate(&(http->stream), Z_NO_FLUSH) == Z_OK) + while (deflate((z_stream *)http->stream, Z_NO_FLUSH) == Z_OK) { - DEBUG_printf(("1httpWrite2: avail_out=%d", http->stream.avail_out)); + DEBUG_printf(("1httpWrite2: avail_out=%d", ((z_stream *)http->stream)->avail_out)); - if (http->stream.avail_out > 0) + if (((z_stream *)http->stream)->avail_out > 0) continue; - slen = _HTTP_MAX_SBUFFER - http->stream.avail_out; + slen = _HTTP_MAX_SBUFFER - ((z_stream *)http->stream)->avail_out; DEBUG_printf(("1httpWrite2: Writing intermediate chunk, len=%d", (int)slen)); @@ -3255,8 +3273,8 @@ httpWrite2(http_t *http, /* I - HTTP connection */ return (-1); } - http->stream.next_out = (Bytef *)http->sbuffer; - http->stream.avail_out = (uInt)_HTTP_MAX_SBUFFER; + ((z_stream *)http->stream)->next_out = (Bytef *)http->sbuffer; + ((z_stream *)http->stream)->avail_out = (uInt)_HTTP_MAX_SBUFFER; } bytes = (ssize_t)length; @@ -3676,6 +3694,13 @@ http_add_field(http_t *http, /* I - HTTP connection */ http->server = _cupsStrAlloc(value); break; + case HTTP_FIELD_AUTHENTICATION_INFO : + if (http->authentication_info) + _cupsStrFree(http->authentication_info); + + http->authentication_info = _cupsStrAlloc(value); + break; + default : strlcpy(http->fields[field], value, HTTP_MAX_VALUE); break; @@ -3725,13 +3750,13 @@ http_content_coding_finish( { case _HTTP_CODING_DEFLATE : case _HTTP_CODING_GZIP : - http->stream.next_in = dummy; - http->stream.avail_in = 0; + ((z_stream *)http->stream)->next_in = dummy; + ((z_stream *)http->stream)->avail_in = 0; do { - zerr = deflate(&(http->stream), Z_FINISH); - bytes = _HTTP_MAX_SBUFFER - http->stream.avail_out; + zerr = deflate((z_stream *)http->stream, Z_FINISH); + bytes = _HTTP_MAX_SBUFFER - ((z_stream *)http->stream)->avail_out; if (bytes > 0) { @@ -3743,15 +3768,18 @@ http_content_coding_finish( http_write(http, (char *)http->sbuffer, bytes); } - http->stream.next_out = (Bytef *)http->sbuffer; - http->stream.avail_out = (uInt)_HTTP_MAX_SBUFFER; + ((z_stream *)http->stream)->next_out = (Bytef *)http->sbuffer; + ((z_stream *)http->stream)->avail_out = (uInt)_HTTP_MAX_SBUFFER; } while (zerr == Z_OK); - deflateEnd(&(http->stream)); + deflateEnd((z_stream *)http->stream); free(http->sbuffer); + free(http->stream); + http->sbuffer = NULL; + http->stream = NULL; if (http->wused) httpFlushWrite(http); @@ -3759,9 +3787,13 @@ http_content_coding_finish( case _HTTP_CODING_INFLATE : case _HTTP_CODING_GUNZIP : - inflateEnd(&(http->stream)); + inflateEnd((z_stream *)http->stream); + free(http->sbuffer); + free(http->stream); + http->sbuffer = NULL; + http->stream = NULL; break; default : @@ -3831,8 +3863,6 @@ http_content_coding_start( return; } - memset(&(http->stream), 0, sizeof(http->stream)); - switch (coding) { case _HTTP_CODING_DEFLATE : @@ -3853,18 +3883,30 @@ http_content_coding_start( * documentation. */ - if ((zerr = deflateInit2(&(http->stream), Z_DEFAULT_COMPRESSION, - Z_DEFLATED, - coding == _HTTP_CODING_DEFLATE ? -11 : 27, 7, - Z_DEFAULT_STRATEGY)) < Z_OK) + if ((http->stream = calloc(1, sizeof(z_stream))) == NULL) + { + free(http->sbuffer); + + http->sbuffer = NULL; + http->status = HTTP_STATUS_ERROR; + http->error = errno; + return; + } + + if ((zerr = deflateInit2((z_stream *)http->stream, Z_DEFAULT_COMPRESSION, Z_DEFLATED, coding == _HTTP_CODING_DEFLATE ? -11 : 27, 7, Z_DEFAULT_STRATEGY)) < Z_OK) { - http->status = HTTP_STATUS_ERROR; - http->error = zerr == Z_MEM_ERROR ? ENOMEM : EINVAL; + free(http->sbuffer); + free(http->stream); + + http->sbuffer = NULL; + http->stream = NULL; + http->status = HTTP_STATUS_ERROR; + http->error = zerr == Z_MEM_ERROR ? ENOMEM : EINVAL; return; } - http->stream.next_out = (Bytef *)http->sbuffer; - http->stream.avail_out = (uInt)_HTTP_MAX_SBUFFER; + ((z_stream *)http->stream)->next_out = (Bytef *)http->sbuffer; + ((z_stream *)http->stream)->avail_out = (uInt)_HTTP_MAX_SBUFFER; break; case _HTTP_CODING_INFLATE : @@ -3881,19 +3923,30 @@ http_content_coding_start( * -15 is raw inflate, 31 is gunzip, per ZLIB documentation. */ - if ((zerr = inflateInit2(&(http->stream), - coding == _HTTP_CODING_INFLATE ? -15 : 31)) - < Z_OK) + if ((http->stream = calloc(1, sizeof(z_stream))) == NULL) + { + free(http->sbuffer); + + http->sbuffer = NULL; + http->status = HTTP_STATUS_ERROR; + http->error = errno; + return; + } + + if ((zerr = inflateInit2((z_stream *)http->stream, coding == _HTTP_CODING_INFLATE ? -15 : 31)) < Z_OK) { free(http->sbuffer); + free(http->stream); + http->sbuffer = NULL; + http->stream = NULL; http->status = HTTP_STATUS_ERROR; http->error = zerr == Z_MEM_ERROR ? ENOMEM : EINVAL; return; } - http->stream.avail_in = 0; - http->stream.next_in = http->sbuffer; + ((z_stream *)http->stream)->avail_in = 0; + ((z_stream *)http->stream)->next_in = http->sbuffer; break; default : @@ -3959,7 +4012,7 @@ http_create( if ((http = calloc(sizeof(http_t), 1)) == NULL) { _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(errno), 0); - httpAddrFreeList(addrlist); + httpAddrFreeList(myaddrlist); return (NULL); } @@ -4096,7 +4149,7 @@ http_read(http_t *http, /* I - HTTP connection */ if (bytes < 0) { -#ifdef WIN32 +#ifdef _WIN32 if (WSAGetLastError() != WSAEINTR) { http->error = WSAGetLastError(); @@ -4132,7 +4185,7 @@ http_read(http_t *http, /* I - HTTP connection */ http->error = errno; return (-1); } -#endif /* WIN32 */ +#endif /* _WIN32 */ } } while (bytes < 0); @@ -4146,7 +4199,7 @@ http_read(http_t *http, /* I - HTTP connection */ if (bytes < 0) { -#ifdef WIN32 +#ifdef _WIN32 if (WSAGetLastError() == WSAEINTR) bytes = 0; else @@ -4156,7 +4209,7 @@ http_read(http_t *http, /* I - HTTP connection */ bytes = 0; else http->error = errno; -#endif /* WIN32 */ +#endif /* _WIN32 */ } else if (bytes == 0) { @@ -4520,7 +4573,7 @@ static void http_set_timeout(int fd, /* I - File descriptor */ double timeout) /* I - Timeout in seconds */ { -#ifdef WIN32 +#ifdef _WIN32 DWORD tv = (DWORD)(timeout * 1000); /* Timeout in milliseconds */ @@ -4535,7 +4588,7 @@ http_set_timeout(int fd, /* I - File descriptor */ setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, CUPS_SOCAST &tv, sizeof(tv)); setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, CUPS_SOCAST &tv, sizeof(tv)); -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -4697,12 +4750,12 @@ http_write(http_t *http, /* I - HTTP connection */ nfds = select(http->fd + 1, NULL, &output_set, NULL, &timeout); } -# ifdef WIN32 +# ifdef _WIN32 while (nfds < 0 && (WSAGetLastError() == WSAEINTR || WSAGetLastError() == WSAEWOULDBLOCK)); # else while (nfds < 0 && (errno == EINTR || errno == EAGAIN)); -# endif /* WIN32 */ +# endif /* _WIN32 */ #endif /* HAVE_POLL */ if (nfds < 0) @@ -4712,11 +4765,11 @@ http_write(http_t *http, /* I - HTTP connection */ } else if (nfds == 0 && (!http->timeout_cb || !(*http->timeout_cb)(http, http->timeout_data))) { -#ifdef WIN32 +#ifdef _WIN32 http->error = WSAEWOULDBLOCK; #else http->error = EWOULDBLOCK; -#endif /* WIN32 */ +#endif /* _WIN32 */ return (-1); } } @@ -4735,7 +4788,7 @@ http_write(http_t *http, /* I - HTTP connection */ if (bytes < 0) { -#ifdef WIN32 +#ifdef _WIN32 if (WSAGetLastError() == WSAEINTR) continue; else if (WSAGetLastError() == WSAEWOULDBLOCK) @@ -4769,7 +4822,7 @@ http_write(http_t *http, /* I - HTTP connection */ http->error = errno; continue; } -#endif /* WIN32 */ +#endif /* _WIN32 */ DEBUG_printf(("3http_write: error writing data (%s).", strerror(http->error))); diff --git a/cups/http.h b/cups/http.h index 156efea..e94adae 100644 --- a/cups/http.h +++ b/cups/http.h @@ -1,7 +1,7 @@ /* * Hyper-Text Transport Protocol definitions for CUPS. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -25,7 +25,7 @@ # include <string.h> # include <time.h> # include <sys/types.h> -# ifdef WIN32 +# ifdef _WIN32 # ifndef __CUPS_SSIZE_T_DEFINED # define __CUPS_SSIZE_T_DEFINED /* Windows does not support the ssize_t type, so map it to off_t... */ @@ -54,7 +54,7 @@ typedef off_t ssize_t; /* @private@ */ # if defined(LOCAL_PEERCRED) && !defined(SO_PEERCRED) # define SO_PEERCRED LOCAL_PEERCRED # endif /* LOCAL_PEERCRED && !SO_PEERCRED */ -# endif /* WIN32 */ +# endif /* _WIN32 */ /* @@ -85,7 +85,7 @@ extern "C" { # define s6_addr32 _S6_un._S6_u32 # elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)|| defined(__DragonFly__) # define s6_addr32 __u6_addr.__u6_addr32 -# elif defined(WIN32) +# elif defined(_WIN32) /* * Windows only defines byte and 16-bit word members of the union and * requires special casing of all raw address code... @@ -181,6 +181,7 @@ typedef enum http_field_e /**** HTTP field names ****/ HTTP_FIELD_ACCEPT_ENCODING, /* Accepting-Encoding field @since CUPS 1.7/macOS 10.9@ */ HTTP_FIELD_ALLOW, /* Allow field @since CUPS 1.7/macOS 10.9@ */ HTTP_FIELD_SERVER, /* Server field @since CUPS 1.7/macOS 10.9@ */ + HTTP_FIELD_AUTHENTICATION_INFO, /* Authentication-Info field (@since CUPS 2.2.9) */ HTTP_FIELD_MAX /* Maximum field index */ } http_field_t; @@ -479,8 +480,7 @@ extern int httpHead(http_t *http, const char *uri); extern void httpInitialize(void); extern int httpOptions(http_t *http, const char *uri); extern int httpPost(http_t *http, const char *uri); -extern int httpPrintf(http_t *http, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); +extern int httpPrintf(http_t *http, const char *format, ...) _CUPS_FORMAT(2, 3); extern int httpPut(http_t *http, const char *uri); extern int httpRead(http_t *http, char *buffer, int length) _CUPS_DEPRECATED_MSG("Use httpRead2 instead."); extern int httpReconnect(http_t *http) _CUPS_DEPRECATED_1_6_MSG("Use httpReconnect2 instead."); @@ -19,9 +19,9 @@ #include "cups-private.h" #include <regex.h> -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -33,12 +33,8 @@ static ipp_attribute_t *ipp_add_attr(ipp_t *ipp, const char *name, int num_values); static void ipp_free_values(ipp_attribute_t *attr, int element, int count); -static char *ipp_get_code(const char *locale, char *buffer, - size_t bufsize) - __attribute__((nonnull(1,2))); -static char *ipp_lang_code(const char *locale, char *buffer, - size_t bufsize) - __attribute__((nonnull(1,2))); +static char *ipp_get_code(const char *locale, char *buffer, size_t bufsize) _CUPS_NONNULL((1, 2)); +static char *ipp_lang_code(const char *locale, char *buffer, size_t bufsize) _CUPS_NONNULL((1, 2)); static size_t ipp_length(ipp_t *ipp, int collection); static ssize_t ipp_read_http(http_t *http, ipp_uchar_t *buffer, size_t length); @@ -1483,6 +1479,7 @@ ippCopyAttribute( int quickcopy) /* I - 1 for a referenced copy, 0 for normal */ { int i; /* Looping var */ + ipp_tag_t srctag; /* Source value tag */ ipp_attribute_t *dstattr; /* Destination attribute */ _ipp_value_t *srcval, /* Source value */ *dstval; /* Destination value */ @@ -1501,9 +1498,10 @@ ippCopyAttribute( * Copy it... */ - quickcopy = quickcopy ? IPP_TAG_CUPS_CONST : 0; + quickcopy = (quickcopy && (srcattr->value_tag & IPP_TAG_CUPS_CONST)) ? IPP_TAG_CUPS_CONST : 0; + srctag = srcattr->value_tag & IPP_TAG_CUPS_MASK; - switch (srcattr->value_tag & ~IPP_TAG_CUPS_CONST) + switch (srctag) { case IPP_TAG_ZERO : dstattr = ippAddSeparator(dst); @@ -1516,139 +1514,70 @@ ippCopyAttribute( case IPP_TAG_NOTSETTABLE : case IPP_TAG_DELETEATTR : case IPP_TAG_ADMINDEFINE : - dstattr = ippAddOutOfBand(dst, srcattr->group_tag, srcattr->value_tag & ~IPP_TAG_CUPS_CONST, srcattr->name); + dstattr = ippAddOutOfBand(dst, srcattr->group_tag, srctag, srcattr->name); break; case IPP_TAG_INTEGER : case IPP_TAG_ENUM : - dstattr = ippAddIntegers(dst, srcattr->group_tag, srcattr->value_tag, - srcattr->name, srcattr->num_values, NULL); - if (!dstattr) - break; - - for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - dstval->integer = srcval->integer; - break; - case IPP_TAG_BOOLEAN : - dstattr = ippAddBooleans(dst, srcattr->group_tag, srcattr->name, - srcattr->num_values, NULL); - if (!dstattr) - break; - - for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - dstval->boolean = srcval->boolean; + case IPP_TAG_DATE : + case IPP_TAG_RESOLUTION : + case IPP_TAG_RANGE : + if ((dstattr = ipp_add_attr(dst, srcattr->name, srcattr->group_tag, srctag, srcattr->num_values)) != NULL) + memcpy(dstattr->values, srcattr->values, (size_t)srcattr->num_values * sizeof(_ipp_value_t)); break; case IPP_TAG_TEXT : case IPP_TAG_NAME : + case IPP_TAG_RESERVED_STRING : case IPP_TAG_KEYWORD : case IPP_TAG_URI : case IPP_TAG_URISCHEME : case IPP_TAG_CHARSET : case IPP_TAG_LANGUAGE : case IPP_TAG_MIMETYPE : - dstattr = ippAddStrings(dst, srcattr->group_tag, - (ipp_tag_t)(srcattr->value_tag | quickcopy), - srcattr->name, srcattr->num_values, NULL, NULL); - if (!dstattr) + if ((dstattr = ippAddStrings(dst, srcattr->group_tag, (ipp_tag_t)(srctag | quickcopy), srcattr->name, srcattr->num_values, NULL, NULL)) == NULL) break; if (quickcopy) { - for (i = srcattr->num_values, srcval = srcattr->values, - dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - dstval->string.text = srcval->string.text; + /* + * Can safely quick-copy these string values... + */ + + memcpy(dstattr->values, srcattr->values, (size_t)srcattr->num_values * sizeof(_ipp_value_t)); } - else if (srcattr->value_tag & IPP_TAG_CUPS_CONST) - { - for (i = srcattr->num_values, srcval = srcattr->values, - dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - dstval->string.text = _cupsStrAlloc(srcval->string.text); - } else { - for (i = srcattr->num_values, srcval = srcattr->values, - dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - dstval->string.text = _cupsStrRetain(srcval->string.text); - } - break; - - case IPP_TAG_DATE : - if (srcattr->num_values != 1) - return (NULL); - - dstattr = ippAddDate(dst, srcattr->group_tag, srcattr->name, - srcattr->values[0].date); - break; - - case IPP_TAG_RESOLUTION : - dstattr = ippAddResolutions(dst, srcattr->group_tag, srcattr->name, - srcattr->num_values, IPP_RES_PER_INCH, - NULL, NULL); - if (!dstattr) - break; - - for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - { - dstval->resolution.xres = srcval->resolution.xres; - dstval->resolution.yres = srcval->resolution.yres; - dstval->resolution.units = srcval->resolution.units; - } - break; - - case IPP_TAG_RANGE : - dstattr = ippAddRanges(dst, srcattr->group_tag, srcattr->name, - srcattr->num_values, NULL, NULL); - if (!dstattr) - break; + /* + * Otherwise do a normal reference counted copy... + */ - for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - { - dstval->range.lower = srcval->range.lower; - dstval->range.upper = srcval->range.upper; + for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; i > 0; i --, srcval ++, dstval ++) + dstval->string.text = _cupsStrAlloc(srcval->string.text); } break; case IPP_TAG_TEXTLANG : case IPP_TAG_NAMELANG : - dstattr = ippAddStrings(dst, srcattr->group_tag, - (ipp_tag_t)(srcattr->value_tag | quickcopy), - srcattr->name, srcattr->num_values, NULL, NULL); - if (!dstattr) + if ((dstattr = ippAddStrings(dst, srcattr->group_tag, (ipp_tag_t)(srctag | quickcopy), srcattr->name, srcattr->num_values, NULL, NULL)) == NULL) break; if (quickcopy) { - for (i = srcattr->num_values, srcval = srcattr->values, - dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - { - dstval->string.language = srcval->string.language; - dstval->string.text = srcval->string.text; - } + /* + * Can safely quick-copy these string values... + */ + + memcpy(dstattr->values, srcattr->values, (size_t)srcattr->num_values * sizeof(_ipp_value_t)); } else if (srcattr->value_tag & IPP_TAG_CUPS_CONST) { - for (i = srcattr->num_values, srcval = srcattr->values, - dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) + /* + * Otherwise do a normal reference counted copy... + */ + + for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; i > 0; i --, srcval ++, dstval ++) { if (srcval == srcattr->values) dstval->string.language = _cupsStrAlloc(srcval->string.language); @@ -1658,32 +1587,13 @@ ippCopyAttribute( dstval->string.text = _cupsStrAlloc(srcval->string.text); } } - else - { - for (i = srcattr->num_values, srcval = srcattr->values, - dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) - { - if (srcval == srcattr->values) - dstval->string.language = _cupsStrRetain(srcval->string.language); - else - dstval->string.language = dstattr->values[0].string.language; - - dstval->string.text = _cupsStrRetain(srcval->string.text); - } - } break; case IPP_TAG_BEGIN_COLLECTION : - dstattr = ippAddCollections(dst, srcattr->group_tag, srcattr->name, - srcattr->num_values, NULL); - if (!dstattr) + if ((dstattr = ippAddCollections(dst, srcattr->group_tag, srcattr->name, srcattr->num_values, NULL)) == NULL) break; - for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) + for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; i > 0; i --, srcval ++, dstval ++) { dstval->collection = srcval->collection; srcval->collection->use ++; @@ -1692,15 +1602,10 @@ ippCopyAttribute( case IPP_TAG_STRING : default : - /* TODO: Implement quick copy for unknown/octetString values */ - dstattr = ippAddIntegers(dst, srcattr->group_tag, srcattr->value_tag, - srcattr->name, srcattr->num_values, NULL); - if (!dstattr) + if ((dstattr = ipp_add_attr(dst, srcattr->name, srcattr->group_tag, srctag, srcattr->num_values)) == NULL) break; - for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; - i > 0; - i --, srcval ++, dstval ++) + for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values; i > 0; i --, srcval ++, dstval ++) { dstval->unknown.length = srcval->unknown.length; @@ -3393,7 +3298,10 @@ ippReadIO(void *src, /* I - Data source */ value->boolean = (char)buffer[0]; break; - case IPP_TAG_NOVALUE : + case IPP_TAG_UNSUPPORTED_VALUE : + case IPP_TAG_DEFAULT : + case IPP_TAG_UNKNOWN : + case IPP_TAG_NOVALUE : case IPP_TAG_NOTSETTABLE : case IPP_TAG_DELETEATTR : case IPP_TAG_ADMINDEFINE : @@ -3413,6 +3321,7 @@ ippReadIO(void *src, /* I - Data source */ case IPP_TAG_TEXT : case IPP_TAG_NAME : + case IPP_TAG_RESERVED_STRING : case IPP_TAG_KEYWORD : case IPP_TAG_URI : case IPP_TAG_URISCHEME : @@ -4328,7 +4237,7 @@ ippSetString(ipp_t *ipp, /* I - IPP message */ if (!ipp || !attr || !*attr || (value_tag < IPP_TAG_TEXT && value_tag != IPP_TAG_TEXTLANG && value_tag != IPP_TAG_NAMELANG) || value_tag > IPP_TAG_MIMETYPE || - !strvalue) + element < 0 || element > (*attr)->num_values || !strvalue) return (0); /* @@ -5097,16 +5006,19 @@ ippValidateAttribute( break; } - if (*ptr < ' ' || *ptr == 0x7f) - { - ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)."), attr->name, attr->values[i].string.text); - return (0); - } - else if (*ptr) - { - ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."), attr->name, attr->values[i].string.text); - return (0); - } + if (*ptr) + { + if (*ptr < ' ' || *ptr == 0x7f) + { + ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)."), attr->name, attr->values[i].string.text); + return (0); + } + else + { + ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."), attr->name, attr->values[i].string.text); + return (0); + } + } if ((ptr - attr->values[i].string.text) > (IPP_MAX_TEXT - 1)) { @@ -5159,16 +5071,19 @@ ippValidateAttribute( break; } - if (*ptr < ' ' || *ptr == 0x7f) - { - ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)."), attr->name, attr->values[i].string.text); - return (0); - } - else if (*ptr) + if (*ptr) { - ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."), attr->name, attr->values[i].string.text); - return (0); - } + if (*ptr < ' ' || *ptr == 0x7f) + { + ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)."), attr->name, attr->values[i].string.text); + return (0); + } + else + { + ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."), attr->name, attr->values[i].string.text); + return (0); + } + } if ((ptr - attr->values[i].string.text) > (IPP_MAX_NAME - 1)) { @@ -6501,6 +6416,7 @@ ipp_free_values(ipp_attribute_t *attr, /* I - Attribute to free values from */ } break; + case IPP_TAG_UNSUPPORTED_VALUE : case IPP_TAG_DEFAULT : case IPP_TAG_UNKNOWN : case IPP_TAG_NOVALUE : @@ -6842,14 +6758,14 @@ ipp_read_http(http_t *http, /* I - Client connection */ if ((bytes = httpRead2(http, (char *)buffer, length - (size_t)tbytes)) < 0) { -#ifdef WIN32 +#ifdef _WIN32 break; #else if (errno != EAGAIN && errno != EINTR) break; bytes = 0; -#endif /* WIN32 */ +#endif /* _WIN32 */ } else if (bytes == 0) break; @@ -6877,11 +6793,11 @@ ipp_read_file(int *fd, /* I - File descriptor */ ipp_uchar_t *buffer, /* O - Read buffer */ size_t length) /* I - Number of bytes to read */ { -#ifdef WIN32 +#ifdef _WIN32 return ((ssize_t)read(*fd, buffer, (unsigned)length)); #else return (read(*fd, buffer, length)); -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -7049,9 +6965,9 @@ ipp_write_file(int *fd, /* I - File descriptor */ ipp_uchar_t *buffer, /* I - Data to write */ size_t length) /* I - Number of bytes to write */ { -#ifdef WIN32 +#ifdef _WIN32 return ((ssize_t)write(*fd, buffer, (unsigned)length)); #else return (write(*fd, buffer, length)); -#endif /* WIN32 */ +#endif /* _WIN32 */ } diff --git a/cups/language-private.h b/cups/language-private.h index 49e4b71..f447ef9 100644 --- a/cups/language-private.h +++ b/cups/language-private.h @@ -1,7 +1,7 @@ /* * Private localization support for CUPS. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -20,6 +20,7 @@ * Include necessary headers... */ +# include "config.h" # include <stdio.h> # include <cups/transcode.h> # ifdef __APPLE__ @@ -59,16 +60,11 @@ extern const char *_cupsAppleLocale(CFStringRef languageName, char *locale, size # endif /* __APPLE__ */ extern void _cupsCharmapFlush(void); extern const char *_cupsEncodingName(cups_encoding_t encoding); -extern void _cupsLangPrintError(const char *prefix, - const char *message); -extern int _cupsLangPrintFilter(FILE *fp, const char *prefix, - const char *message, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); -extern int _cupsLangPrintf(FILE *fp, const char *message, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); +extern void _cupsLangPrintError(const char *prefix, const char *message); +extern int _cupsLangPrintFilter(FILE *fp, const char *prefix, const char *message, ...) _CUPS_FORMAT(3, 4); +extern int _cupsLangPrintf(FILE *fp, const char *message, ...) _CUPS_FORMAT(2, 3); extern int _cupsLangPuts(FILE *fp, const char *message); -extern const char *_cupsLangString(cups_lang_t *lang, - const char *message); +extern const char *_cupsLangString(cups_lang_t *lang, const char *message); extern void _cupsMessageFree(cups_array_t *a); extern cups_array_t *_cupsMessageLoad(const char *filename, int unquote); extern const char *_cupsMessageLookup(cups_array_t *a, const char *m); diff --git a/cups/language.c b/cups/language.c index e6d2d44..61280c0 100644 --- a/cups/language.c +++ b/cups/language.c @@ -21,11 +21,11 @@ #ifdef HAVE_LANGINFO_H # include <langinfo.h> #endif /* HAVE_LANGINFO_H */ -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> #else # include <unistd.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #ifdef HAVE_COREFOUNDATION_H # include <CoreFoundation/CoreFoundation.h> #endif /* HAVE_COREFOUNDATION_H */ diff --git a/cups/libcups2.def b/cups/libcups2.def index a7be679..fa4aaa3 100644 --- a/cups/libcups2.def +++ b/cups/libcups2.def @@ -1,5 +1,5 @@ LIBRARY libcups2 -VERSION 2.12 +VERSION 2.13 EXPORTS _cupsArrayAddStrings _cupsArrayNewStrings @@ -13,6 +13,7 @@ _cupsConnect _cupsConvertOptions _cupsCreateDest _cupsEncodingName +_cupsFilePeekAhead _cupsGet1284Values _cupsGetDestResource _cupsGetDests @@ -24,9 +25,6 @@ _cupsLangPrintError _cupsLangPrintf _cupsLangPuts _cupsLangString -_cupsMD5Append -_cupsMD5Finish -_cupsMD5Init _cupsMessageFree _cupsMessageLoad _cupsMessageLookup @@ -39,18 +37,6 @@ _cupsRWInit _cupsRWLockRead _cupsRWLockWrite _cupsRWUnlock -_cupsSNMPClose -_cupsSNMPCopyOID -_cupsSNMPDefaultCommunity -_cupsSNMPIsOID -_cupsSNMPIsOIDPrefixed -_cupsSNMPOIDToString -_cupsSNMPOpen -_cupsSNMPRead -_cupsSNMPSetDebug -_cupsSNMPStringToOID -_cupsSNMPWalk -_cupsSNMPWrite _cupsSetDefaults _cupsSetError _cupsSetHTTPError @@ -65,6 +51,7 @@ _cupsStrScand _cupsStrStatistics _cupsThreadCancel _cupsThreadCreate +_cupsThreadDetach _cupsThreadWait _cupsUserDefault _cups_safe_vsnprintf @@ -81,6 +68,7 @@ _httpDisconnect _httpEncodeURI _httpFreeCredentials _httpResolveURI +_httpSetDigestAuthString _httpStatus _httpTLSInitialize _httpTLSPending @@ -124,6 +112,7 @@ _pwgMediaTable _pwgMediaTypeForType _pwgPageSizeForMedia cupsAddDest +cupsAddIntegerOption cupsAddOption cupsAdminCreateWindowsPPD cupsAdminExportSamba @@ -227,6 +216,7 @@ cupsGetDests2 cupsGetDevices cupsGetFd cupsGetFile +cupsGetIntegerOption cupsGetJobs cupsGetJobs2 cupsGetNamedDest @@ -240,6 +230,7 @@ cupsGetPrinters cupsGetResponse cupsGetServerPPD cupsHashData +cupsHashString cupsLangDefault cupsLangEncoding cupsLangFlush diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c index d67a19b..9ed946e 100644 --- a/cups/ppd-cache.c +++ b/cups/ppd-cache.c @@ -3105,8 +3105,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ cupsFilePrintf(fp, "*Manufacturer: \"%s\"\n", make); cupsFilePrintf(fp, "*ModelName: \"%s\"\n", model); cupsFilePrintf(fp, "*Product: \"(%s)\"\n", model); - cupsFilePrintf(fp, "*NickName: \"%s\"\n", model); - cupsFilePrintf(fp, "*ShortNickName: \"%s\"\n", model); + cupsFilePrintf(fp, "*NickName: \"%s - IPP Everywhere\"\n", model); + cupsFilePrintf(fp, "*ShortNickName: \"%s - IPP Everywhere\"\n", model); if ((attr = ippFindAttribute(response, "color-supported", IPP_TAG_BOOLEAN)) != NULL && ippGetBoolean(attr, 0)) cupsFilePuts(fp, "*ColorDevice: True\n"); @@ -3130,22 +3130,22 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ /* Type of password */ if (maxlen > (int)(sizeof(pattern) - 1)) - maxlen = sizeof(pattern) - 1; + maxlen = (int)sizeof(pattern) - 1; if (!repertoire || !strcmp(repertoire, "iana_us-ascii_digits")) - memset(pattern, '1', maxlen); + memset(pattern, '1', (size_t)maxlen); else if (!strcmp(repertoire, "iana_us-ascii_letters")) - memset(pattern, 'A', maxlen); + memset(pattern, 'A', (size_t)maxlen); else if (!strcmp(repertoire, "iana_us-ascii_complex")) - memset(pattern, 'C', maxlen); + memset(pattern, 'C', (size_t)maxlen); else if (!strcmp(repertoire, "iana_us-ascii_any")) - memset(pattern, '.', maxlen); + memset(pattern, '.', (size_t)maxlen); else if (!strcmp(repertoire, "iana_utf-8_digits")) - memset(pattern, 'N', maxlen); + memset(pattern, 'N', (size_t)maxlen); else if (!strcmp(repertoire, "iana_utf-8_letters")) - memset(pattern, 'U', maxlen); + memset(pattern, 'U', (size_t)maxlen); else - memset(pattern, '*', maxlen); + memset(pattern, '*', (size_t)maxlen); pattern[maxlen] = '\0'; @@ -3167,7 +3167,17 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (ippContainsString(attr, "image/png")) cupsFilePuts(fp, "*cupsFilter2: \"image/png image/png 0 -\"\n"); if (is_pdf) - cupsFilePuts(fp, "*cupsFilter2: \"application/vnd.cups-pdf application/pdf 10 -\"\n"); + { + /* + * Don't locally filter PDF content when printing to a CUPS shared + * printer, otherwise the options will be applied twice... + */ + + if (ippContainsString(attr, "application/vnd.cups-pdf")) + cupsFilePuts(fp, "*cupsFilter2: \"application/pdf application/pdf 0 -\"\n"); + else + cupsFilePuts(fp, "*cupsFilter2: \"application/vnd.cups-pdf application/pdf 10 -\"\n"); + } if (is_apple) cupsFilePuts(fp, "*cupsFilter2: \"image/urf image/urf 100 -\"\n"); if (is_pwg) @@ -3443,7 +3453,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ for (j = 0; j < (int)(sizeof(sources) / sizeof(sources[0])); j ++) if (!strcmp(sources[j][0], ppdname)) { - cupsFilePrintf(fp, "*InputSlot %s/%s: \"<</MediaPosition %d>>setpagedevice\"\n", ppdname, _cupsLangString(lang, sources[j][1]), j); + cupsFilePrintf(fp, "*InputSlot %s: \"<</MediaPosition %d>>setpagedevice\"\n", ppdname, j); + cupsFilePrintf(fp, "*%s.InputSlot %s/%s: \"\"\n", lang->language, ppdname, _cupsLangString(lang, sources[j][1])); break; } } @@ -3619,9 +3630,14 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ break; if (j < (int)(sizeof(media_types) / sizeof(media_types[0]))) - cupsFilePrintf(fp, "*MediaType %s/%s: \"<</MediaType(%s)>>setpagedevice\"\n", ppdname, _cupsLangString(lang, media_types[j][1]), ppdname); + { + cupsFilePrintf(fp, "*MediaType %s: \"<</MediaType(%s)>>setpagedevice\"\n", ppdname, ppdname); + cupsFilePrintf(fp, "*%s.MediaType %s/%s: \"\"\n", lang->language, ppdname, _cupsLangString(lang, media_types[j][1])); + } else + { cupsFilePrintf(fp, "*MediaType %s/%s: \"<</MediaType(%s)>>setpagedevice\"\n", ppdname, keyword, ppdname); + } } cupsFilePuts(fp, "*CloseUI: *MediaType\n"); } @@ -3647,10 +3663,11 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (!strcasecmp(keyword, "black_1") || !strcmp(keyword, "bi-level") || !strcmp(keyword, "process-bi-level")) { if (!default_color) - cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n" - "*OrderDependency: 10 AnySetup *ColorModel\n", _cupsLangString(lang, _("Color Mode"))); + cupsFilePrintf(fp, "*OpenUI *ColorModel: PickOne\n" + "*OrderDependency: 10 AnySetup *ColorModel\n" + "*%s.Translation ColorModel/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Color Mode"))); - cupsFilePrintf(fp, "*ColorModel FastGray/%s: \"<</cupsColorSpace 3/cupsBitsPerColor 1/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n", _cupsLangString(lang, _("Fast Grayscale"))); + cupsFilePrintf(fp, "*ColorModel FastGray: \"<</cupsColorSpace 3/cupsBitsPerColor 1/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n*%s.ColorModel FastGray/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Fast Grayscale"))); if (!default_color) default_color = "FastGray"; @@ -3658,10 +3675,11 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ else if (!strcasecmp(keyword, "sgray_8") || !strcmp(keyword, "W8") || !strcmp(keyword, "monochrome") || !strcmp(keyword, "process-monochrome")) { if (!default_color) - cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n" - "*OrderDependency: 10 AnySetup *ColorModel\n", _cupsLangString(lang, _("Color Mode"))); + cupsFilePrintf(fp, "*OpenUI *ColorModel: PickOne\n" + "*OrderDependency: 10 AnySetup *ColorModel\n" + "*%s.Translation ColorModel/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Color Mode"))); - cupsFilePrintf(fp, "*ColorModel Gray/%s: \"<</cupsColorSpace 18/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n", _cupsLangString(lang, _("Grayscale"))); + cupsFilePrintf(fp, "*ColorModel Gray: \"<</cupsColorSpace 18/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n*%s.ColorModel Gray/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Grayscale"))); if (!default_color || !strcmp(default_color, "FastGray")) default_color = "Gray"; @@ -3669,20 +3687,22 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ else if (!strcasecmp(keyword, "srgb_8") || !strcmp(keyword, "SRGB24") || !strcmp(keyword, "color")) { if (!default_color) - cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n" - "*OrderDependency: 10 AnySetup *ColorModel\n", _cupsLangString(lang, _("Color Mode"))); + cupsFilePrintf(fp, "*OpenUI *ColorModel: PickOne\n" + "*OrderDependency: 10 AnySetup *ColorModel\n" + "*%s.Translation ColorModel/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Color Mode"))); - cupsFilePrintf(fp, "*ColorModel RGB/%s: \"<</cupsColorSpace 19/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n", _cupsLangString(lang, _("Color"))); + cupsFilePrintf(fp, "*ColorModel RGB: \"<</cupsColorSpace 19/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n*%s.ColorModel RGB/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Color"))); default_color = "RGB"; } else if (!strcasecmp(keyword, "adobe-rgb_16") || !strcmp(keyword, "ADOBERGB48")) { if (!default_color) - cupsFilePrintf(fp, "*OpenUI *ColorModel/%s: PickOne\n" - "*OrderDependency: 10 AnySetup *ColorModel\n", _cupsLangString(lang, _("Color Mode"))); + cupsFilePrintf(fp, "*OpenUI *ColorModel: PickOne\n" + "*OrderDependency: 10 AnySetup *ColorModel\n" + "*%s.Translation ColorModel/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Color Mode"))); - cupsFilePrintf(fp, "*ColorModel AdobeRGB/%s: \"<</cupsColorSpace 20/cupsBitsPerColor 16/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n", _cupsLangString(lang, _("Deep Color"))); + cupsFilePrintf(fp, "*ColorModel AdobeRGB: \"<</cupsColorSpace 20/cupsBitsPerColor 16/cupsColorOrder 0/cupsCompression 0>>setpagedevice\"\n*%s.ColorModel AdobeRGB/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Deep Color"))); if (!default_color) default_color = "AdobeRGB"; @@ -3702,13 +3722,17 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((attr = ippFindAttribute(response, "sides-supported", IPP_TAG_KEYWORD)) != NULL && ippContainsString(attr, "two-sided-long-edge")) { - cupsFilePrintf(fp, "*OpenUI *Duplex/%s: PickOne\n" + cupsFilePrintf(fp, "*OpenUI *Duplex: PickOne\n" "*OrderDependency: 10 AnySetup *Duplex\n" + "*%s.Translation Duplex/%s: \"\"\n" "*DefaultDuplex: None\n" - "*Duplex None/%s: \"<</Duplex false>>setpagedevice\"\n" - "*Duplex DuplexNoTumble/%s: \"<</Duplex true/Tumble false>>setpagedevice\"\n" - "*Duplex DuplexTumble/%s: \"<</Duplex true/Tumble true>>setpagedevice\"\n" - "*CloseUI: *Duplex\n", _cupsLangString(lang, _("2-Sided Printing")), _cupsLangString(lang, _("Off (1-Sided)")), _cupsLangString(lang, _("Long-Edge (Portrait)")), _cupsLangString(lang, _("Short-Edge (Landscape)"))); + "*Duplex None: \"<</Duplex false>>setpagedevice\"\n" + "*%s.Duplex None/%s: \"\"\n" + "*Duplex DuplexNoTumble: \"<</Duplex true/Tumble false>>setpagedevice\"\n" + "*%s.Duplex DuplexNoTumble/%s: \"\"\n" + "*Duplex DuplexTumble: \"<</Duplex true/Tumble true>>setpagedevice\"\n" + "*%s.Duplex DuplexTumble/%s: \"\"\n" + "*CloseUI: *Duplex\n", lang->language, _cupsLangString(lang, _("2-Sided Printing")), lang->language, _cupsLangString(lang, _("Off (1-Sided)")), lang->language, _cupsLangString(lang, _("Long-Edge (Portrait)")), lang->language, _cupsLangString(lang, _("Short-Edge (Landscape)"))); if ((attr = ippFindAttribute(response, "urf-supported", IPP_TAG_KEYWORD)) != NULL) { @@ -3766,6 +3790,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if ((attr = ippFindAttribute(response, "output-bin-supported", IPP_TAG_ZERO)) != NULL && (count = ippGetCount(attr)) > 1) { + ipp_attribute_t *trays = ippFindAttribute(response, "printer-output-tray", IPP_TAG_STRING); + /* printer-output-tray attribute, if any */ + const char *tray_ptr; /* printer-output-tray value */ + int tray_len; /* Len of printer-output-tray value */ + char tray[IPP_MAX_OCTETSTRING]; + /* printer-output-tray string value */ static const char * const output_bins[][2] = { /* "output-bin" strings */ { "auto", _("Automatic") }, @@ -3816,6 +3846,11 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ cupsFilePrintf(fp, "*OpenUI *OutputBin: PickOne\n" "*OrderDependency: 10 AnySetup *OutputBin\n" "*DefaultOutputBin: %s\n", ppdname); + if (!strcmp(ppdname, "FaceUp")) + cupsFilePuts(fp, "*DefaultOutputOrder: Reverse\n"); + else + cupsFilePuts(fp, "*DefaultOutputOrder: Normal\n"); + for (i = 0; i < (int)(sizeof(output_bins) / sizeof(output_bins[0])); i ++) { if (!ippContainsString(attr, output_bins[i][0])) @@ -3823,7 +3858,26 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ pwg_ppdize_name(output_bins[i][0], ppdname, sizeof(ppdname)); - cupsFilePrintf(fp, "*OutputBin %s/%s: \"\"\n", ppdname, _cupsLangString(lang, output_bins[i][1])); + cupsFilePrintf(fp, "*OutputBin %s: \"\"\n", ppdname); + cupsFilePrintf(fp, "*%s.OutputBin %s/%s: \"\"\n", lang->language, ppdname, _cupsLangString(lang, output_bins[i][1])); + + if ((tray_ptr = ippGetOctetString(trays, i, &tray_len)) != NULL) + { + if (tray_len >= (int)sizeof(tray)) + tray_len = (int)sizeof(tray) - 1; + + memcpy(tray, tray_ptr, (size_t)tray_len); + tray[tray_len] = '\0'; + + if (strstr(tray, "stackingorder=lastToFirst;")) + cupsFilePrintf(fp, "*PageStackOrder %s: Reverse\n", ppdname); + else + cupsFilePrintf(fp, "*PageStackOrder %s: Normal\n", ppdname); + } + else if (!strcmp(ppdname, "FaceUp")) + cupsFilePrintf(fp, "*PageStackOrder %s: Reverse\n", ppdname); + else + cupsFilePrintf(fp, "*PageStackOrder %s: Normal\n", ppdname); } cupsFilePuts(fp, "*CloseUI: *OutputBin\n"); } @@ -3861,10 +3915,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (i < count) { - cupsFilePrintf(fp, "*OpenUI *StapleLocation/%s: PickOne\n", _cupsLangString(lang, _("Staple"))); + cupsFilePuts(fp, "*OpenUI *StapleLocation: PickOne\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *StapleLocation\n"); + cupsFilePrintf(fp, "*%s.Translation StapleLocation/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Staple"))); cupsFilePuts(fp, "*DefaultStapleLocation: None\n"); - cupsFilePrintf(fp, "*StapleLocation None/%s: \"\"\n", _cupsLangString(lang, _("None"))); + cupsFilePuts(fp, "*StapleLocation None: \"\"\n"); + cupsFilePrintf(fp, "*%s.StapleLocation None/%s: \"\"\n", lang->language, _cupsLangString(lang, _("None"))); for (; i < count; i ++) { @@ -3883,7 +3939,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { if (!strcmp(finishings[j][0], name)) { - cupsFilePrintf(fp, "*StapleLocation %s/%s: \"\"\n", name, _cupsLangString(lang, finishings[j][1])); + cupsFilePrintf(fp, "*StapleLocation %s: \"\"\n", name); + cupsFilePrintf(fp, "*%s.StapleLocation %s/%s: \"\"\n", lang->language, name, _cupsLangString(lang, finishings[j][1])); cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*StapleLocation %s\"\n", value, name, name); break; } @@ -3908,10 +3965,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (i < count) { - cupsFilePrintf(fp, "*OpenUI *FoldType/%s: PickOne\n", _cupsLangString(lang, _("Fold"))); + cupsFilePuts(fp, "*OpenUI *FoldType: PickOne\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *FoldType\n"); + cupsFilePrintf(fp, "*%s.Translation FoldType/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Fold"))); cupsFilePuts(fp, "*DefaultFoldType: None\n"); - cupsFilePrintf(fp, "*FoldType None/%s: \"\"\n", _cupsLangString(lang, _("None"))); + cupsFilePuts(fp, "*FoldType None: \"\"\n"); + cupsFilePrintf(fp, "*%s.FoldType None/%s: \"\"\n", lang->language, _cupsLangString(lang, _("None"))); for (; i < count; i ++) { @@ -3930,7 +3989,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { if (!strcmp(finishings[j][0], name)) { - cupsFilePrintf(fp, "*FoldType %s/%s: \"\"\n", name, _cupsLangString(lang, finishings[j][1])); + cupsFilePrintf(fp, "*FoldType %s: \"\"\n", name); + cupsFilePrintf(fp, "*%s.FoldType %s/%s: \"\"\n", lang->language, name, _cupsLangString(lang, finishings[j][1])); cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*FoldType %s\"\n", value, name, name); break; } @@ -3955,10 +4015,12 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (i < count) { - cupsFilePrintf(fp, "*OpenUI *PunchMedia/%s: PickOne\n", _cupsLangString(lang, _("Punch"))); + cupsFilePuts(fp, "*OpenUI *PunchMedia: PickOne\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *PunchMedia\n"); + cupsFilePrintf(fp, "*%s.Translation PunchMedia/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Punch"))); cupsFilePuts(fp, "*DefaultPunchMedia: None\n"); - cupsFilePrintf(fp, "*PunchMedia None/%s: \"\"\n", _cupsLangString(lang, _("None"))); + cupsFilePuts(fp, "*PunchMedia None: \"\"\n"); + cupsFilePrintf(fp, "*%s.PunchMedia None/%s: \"\"\n", lang->language, _cupsLangString(lang, _("None"))); for (i = 0; i < count; i ++) { @@ -3977,7 +4039,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ { if (!strcmp(finishings[j][0], name)) { - cupsFilePrintf(fp, "*PunchMedia %s/%s: \"\"\n", name, _cupsLangString(lang, finishings[j][1])); + cupsFilePrintf(fp, "*PunchMedia %s: \"\"\n", name); + cupsFilePrintf(fp, "*%s.PunchMedia %s/%s: \"\"\n", lang->language, name, _cupsLangString(lang, finishings[j][1])); cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*PunchMedia %s\"\n", value, name, name); break; } @@ -3993,8 +4056,9 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (ippContainsInteger(attr, IPP_FINISHINGS_BOOKLET_MAKER)) { - cupsFilePrintf(fp, "*OpenUI *Booklet/%s: Boolean\n", _cupsLangString(lang, _("Booklet"))); + cupsFilePuts(fp, "*OpenUI *Booklet: Boolean\n"); cupsFilePuts(fp, "*OrderDependency: 10 AnySetup *Booklet\n"); + cupsFilePrintf(fp, "*%s.Translation Booklet/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Booklet"))); cupsFilePuts(fp, "*DefaultBooklet: False\n"); cupsFilePuts(fp, "*Booklet False: \"\"\n"); cupsFilePuts(fp, "*Booklet True: \"\"\n"); @@ -4047,16 +4111,19 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ cupsFilePrintf(fp, "*DefaultResolution: %ddpi\n", lowdpi); - cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality/%s: PickOne\n" - "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" - "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality"))); + cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality: PickOne\n" + "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" + "*%s.Translation cupsPrintQuality/%s: \"\"\n" + "*DefaultcupsPrintQuality: Normal\n", lang->language, _cupsLangString(lang, _("Print Quality"))); if ((lowdpi & 1) == 0) - cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), lowdpi, lowdpi / 2); + cupsFilePrintf(fp, "*cupsPrintQuality Draft: \"<</HWResolution[%d %d]>>setpagedevice\"\n*%s.cupsPrintQuality Draft/%s: \"\"\n", lowdpi, lowdpi / 2, lang->language, _cupsLangString(lang, _("Draft"))); else if (ippContainsInteger(quality, IPP_QUALITY_DRAFT)) - cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), lowdpi, lowdpi); - cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), lowdpi, lowdpi); + cupsFilePrintf(fp, "*cupsPrintQuality Draft: \"<</HWResolution[%d %d]>>setpagedevice\"\n*%s.cupsPrintQuality Draft/%s: \"\"\n", lowdpi, lowdpi, lang->language, _cupsLangString(lang, _("Draft"))); + + cupsFilePrintf(fp, "*cupsPrintQuality Normal: \"<</HWResolution[%d %d]>>setpagedevice\"\n*%s.cupsPrintQuality Normal/%s: \"\"\n", lowdpi, lowdpi, lang->language, _cupsLangString(lang, _("Normal"))); + if (hidpi > lowdpi || ippContainsInteger(quality, IPP_QUALITY_HIGH)) - cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("High")), hidpi, hidpi); + cupsFilePrintf(fp, "*cupsPrintQuality High: \"<</HWResolution[%d %d]>>setpagedevice\"\n*%s.cupsPrintQuality High/%s: \"\"\n", hidpi, hidpi, lang->language, _cupsLangString(lang, _("High"))); cupsFilePuts(fp, "*CloseUI: *cupsPrintQuality\n"); } } @@ -4070,7 +4137,8 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ if (count > (int)(sizeof(resolutions) / sizeof(resolutions[0]))) count = (int)(sizeof(resolutions) / sizeof(resolutions[0])); - for (i = 0; i < count; i ++) + resolutions[0] = 0; /* Not in loop to silence Clang static analyzer... */ + for (i = 1; i < count; i ++) resolutions[i] = i; for (i = 0; i < (count - 1); i ++) @@ -4105,20 +4173,26 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ pwg_ppdize_resolution(attr, resolutions[count / 2], &xres, &yres, ppdname, sizeof(ppdname)); cupsFilePrintf(fp, "*DefaultResolution: %s\n", ppdname); - cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality/%s: PickOne\n" - "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" - "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality"))); + cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality: PickOne\n" + "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" + "*%s.Translation cupsPrintQuality/%s: \"\"\n" + "*DefaultcupsPrintQuality: Normal\n", lang->language, _cupsLangString(lang, _("Print Quality"))); if (count > 2 || ippContainsInteger(quality, IPP_QUALITY_DRAFT)) { pwg_ppdize_resolution(attr, resolutions[0], &xres, &yres, NULL, 0); - cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality Draft: \"<</HWResolution[%d %d]>>setpagedevice\"\n", xres, yres); + cupsFilePrintf(fp, "*%s.cupsPrintQuality Draft/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Draft"))); } + pwg_ppdize_resolution(attr, resolutions[count / 2], &xres, &yres, NULL, 0); - cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality Normal: \"<</HWResolution[%d %d]>>setpagedevice\"\n", xres, yres); + cupsFilePrintf(fp, "*%s.cupsPrintQuality Normal/%s: \"\"\n", lang->language, _cupsLangString(lang, _("Normal"))); + if (count > 1 || ippContainsInteger(quality, IPP_QUALITY_HIGH)) { pwg_ppdize_resolution(attr, resolutions[count - 1], &xres, &yres, NULL, 0); - cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("High")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality High: \"<</HWResolution[%d %d]>>setpagedevice\"\n", xres, yres); + cupsFilePrintf(fp, "*%s.cupsPrintQuality High/%s: \"\"\n", lang->language, _cupsLangString(lang, _("High"))); } cupsFilePuts(fp, "*CloseUI: *cupsPrintQuality\n"); @@ -4139,14 +4213,17 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ cupsFilePrintf(fp, "*DefaultResolution: %s\n", ppdname); - cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality/%s: PickOne\n" + cupsFilePrintf(fp, "*OpenUI *cupsPrintQuality: PickOne\n" "*OrderDependency: 10 AnySetup *cupsPrintQuality\n" - "*DefaultcupsPrintQuality: Normal\n", _cupsLangString(lang, _("Print Quality"))); + "*%s.Translation cupsPrintQuality/%s: \"\"\n" + "*DefaultcupsPrintQuality: Normal\n", lang->language, _cupsLangString(lang, _("Print Quality"))); if (ippContainsInteger(quality, IPP_QUALITY_DRAFT)) - cupsFilePrintf(fp, "*cupsPrintQuality Draft/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Draft")), xres, yres); - cupsFilePrintf(fp, "*cupsPrintQuality Normal/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("Normal")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality Draft: \"<</HWResolution[%d %d]>>setpagedevice\"\n*%s.cupsPrintQuality Draft/%s: \"\"\n", xres, yres, lang->language, _cupsLangString(lang, _("Draft"))); + + cupsFilePrintf(fp, "*cupsPrintQuality Normal: \"<</HWResolution[%d %d]>>setpagedevice\"\n*%s.cupsPrintQuality Normal/%s: \"\"\n", xres, yres, lang->language, _cupsLangString(lang, _("Normal"))); + if (ippContainsInteger(quality, IPP_QUALITY_HIGH)) - cupsFilePrintf(fp, "*cupsPrintQuality High/%s: \"<</HWResolution[%d %d]>>setpagedevice\"\n", _cupsLangString(lang, _("High")), xres, yres); + cupsFilePrintf(fp, "*cupsPrintQuality High: \"<</HWResolution[%d %d]>>setpagedevice\"\n*%s.cupsPrintQuality High/%s: \"\"\n", xres, yres, lang->language, _cupsLangString(lang, _("High"))); cupsFilePuts(fp, "*CloseUI: *cupsPrintQuality\n"); } diff --git a/cups/ppd-emit.c b/cups/ppd-emit.c index 36e5bca..4b153ac 100644 --- a/cups/ppd-emit.c +++ b/cups/ppd-emit.c @@ -21,11 +21,11 @@ #include "cups-private.h" #include "ppd.h" -#if defined(WIN32) || defined(__EMX__) +#if defined(_WIN32) || defined(__EMX__) # include <io.h> #else # include <unistd.h> -#endif /* WIN32 || __EMX__ */ +#endif /* _WIN32 || __EMX__ */ /* @@ -328,11 +328,11 @@ ppdEmitFd(ppd_file_t *ppd, /* I - PPD file record */ while (buflength > 0) { -#ifdef WIN32 +#ifdef _WIN32 if ((bytes = (ssize_t)write(fd, bufptr, (unsigned)buflength)) < 0) #else if ((bytes = write(fd, bufptr, buflength)) < 0) -#endif /* WIN32 */ +#endif /* _WIN32 */ { if (errno == EAGAIN || errno == EINTR) continue; diff --git a/cups/ppd-util.c b/cups/ppd-util.c index 19c60e2..0974bae 100644 --- a/cups/ppd-util.c +++ b/cups/ppd-util.c @@ -21,11 +21,11 @@ #include "ppd-private.h" #include <fcntl.h> #include <sys/stat.h> -#if defined(WIN32) || defined(__EMX__) +#if defined(_WIN32) || defined(__EMX__) # include <io.h> #else # include <unistd.h> -#endif /* WIN32 || __EMX__ */ +#endif /* _WIN32 || __EMX__ */ /* @@ -171,7 +171,7 @@ cupsGetPPD3(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAUL return (HTTP_STATUS_NOT_ACCEPTABLE); } -#ifndef WIN32 +#ifndef _WIN32 /* * See if the PPD file is available locally... */ @@ -298,7 +298,7 @@ cupsGetPPD3(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAUL } } } -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* * Try finding a printer URI for this printer... @@ -1,7 +1,7 @@ /* * PPD file routines for CUPS. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -94,9 +94,9 @@ static ppd_group_t *ppd_get_group(ppd_file_t *ppd, const char *name, cups_encoding_t encoding); static ppd_option_t *ppd_get_option(ppd_group_t *group, const char *name); static _ppd_globals_t *ppd_globals_alloc(void); -#if defined(HAVE_PTHREAD_H) || defined(WIN32) +#if defined(HAVE_PTHREAD_H) || defined(_WIN32) static void ppd_globals_free(_ppd_globals_t *g); -#endif /* HAVE_PTHREAD_H || WIN32 */ +#endif /* HAVE_PTHREAD_H || _WIN32 */ #ifdef HAVE_PTHREAD_H static void ppd_globals_init(void); #endif /* HAVE_PTHREAD_H */ @@ -333,7 +333,9 @@ ppdErrorString(ppd_status_t status) /* I - PPD status */ _("Bad custom parameter"), _("Missing option keyword"), _("Bad value string"), - _("Missing CloseGroup") + _("Missing CloseGroup"), + _("Bad CloseUI/JCLCloseUI"), + _("Missing CloseUI/JCLCloseUI") }; @@ -1542,8 +1544,29 @@ _ppdOpen( choice->code = _cupsStrRetain(custom_attr->value); } } - else if (!strcmp(keyword, "CloseUI") || !strcmp(keyword, "JCLCloseUI")) + else if (!strcmp(keyword, "CloseUI")) { + if ((!option || option->section == PPD_ORDER_JCL) && pg->ppd_conform == PPD_CONFORM_STRICT) + { + pg->ppd_status = PPD_BAD_CLOSE_UI; + + goto error; + } + + option = NULL; + + _cupsStrFree(string); + string = NULL; + } + else if (!strcmp(keyword, "JCLCloseUI")) + { + if ((!option || option->section != PPD_ORDER_JCL) && pg->ppd_conform == PPD_CONFORM_STRICT) + { + pg->ppd_status = PPD_BAD_CLOSE_UI; + + goto error; + } + option = NULL; _cupsStrFree(string); @@ -2007,6 +2030,16 @@ _ppdOpen( } /* + * Check for a missing CloseUI/JCLCloseUI... + */ + + if (option && pg->ppd_conform == PPD_CONFORM_STRICT) + { + pg->ppd_status = PPD_MISSING_CLOSE_UI; + goto error; + } + + /* * Check for a missing CloseGroup... */ @@ -2804,13 +2837,13 @@ ppd_globals_alloc(void) * 'ppd_globals_free()' - Free global data. */ -#if defined(HAVE_PTHREAD_H) || defined(WIN32) +#if defined(HAVE_PTHREAD_H) || defined(_WIN32) static void ppd_globals_free(_ppd_globals_t *pg) /* I - Pointer to global data */ { free(pg); } -#endif /* HAVE_PTHREAD_H || WIN32 */ +#endif /* HAVE_PTHREAD_H || _WIN32 */ #ifdef HAVE_PTHREAD_H @@ -132,6 +132,8 @@ typedef enum ppd_status_e /**** Status Codes @since CUPS 1.1.19/macOS 10.3@ *** PPD_MISSING_OPTION_KEYWORD, /* Missing option keyword */ PPD_BAD_VALUE, /* Bad value string */ PPD_MISSING_CLOSE_GROUP, /* Missing CloseGroup */ + PPD_BAD_CLOSE_UI, /* Bad CloseUI/JCLCloseUI */ + PPD_MISSING_CLOSE_UI, /* Missing CloseUI/JCLCloseUI */ PPD_MAX_STATUS /* @private@ */ } ppd_status_t; diff --git a/cups/raster-private.h b/cups/raster-private.h index 3813581..94dd951 100644 --- a/cups/raster-private.h +++ b/cups/raster-private.h @@ -1,7 +1,7 @@ /* * Private image library definitions for CUPS. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1993-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -24,13 +24,13 @@ # include <cups/cups.h> # include <cups/debug-private.h> # include <cups/string-private.h> -# ifdef WIN32 +# ifdef _WIN32 # include <io.h> # include <winsock2.h> /* for htonl() definition */ # else # include <unistd.h> # include <fcntl.h> -# endif /* WIN32 */ +# endif /* _WIN32 */ /* @@ -49,12 +49,8 @@ * Prototypes... */ -extern int _cupsRasterExecPS(cups_page_header2_t *h, - int *preferred_bits, - const char *code) - __attribute__((nonnull(3))); -extern void _cupsRasterAddError(const char *f, ...) - __attribute__((__format__(__printf__, 1, 2))); +extern int _cupsRasterExecPS(cups_page_header2_t *h, int *preferred_bits, const char *code) _CUPS_NONNULL((3)); +extern void _cupsRasterAddError(const char *f, ...) _CUPS_FORMAT(1,2); extern void _cupsRasterClearError(void); #endif /* !_CUPS_RASTER_PRIVATE_H_ */ diff --git a/cups/request.c b/cups/request.c index efbc06e..a4e4b90 100644 --- a/cups/request.c +++ b/cups/request.c @@ -20,11 +20,11 @@ #include "cups-private.h" #include <fcntl.h> #include <sys/stat.h> -#if defined(WIN32) || defined(__EMX__) +#if defined(_WIN32) || defined(__EMX__) # include <io.h> #else # include <unistd.h> -#endif /* WIN32 || __EMX__ */ +#endif /* _WIN32 || __EMX__ */ #ifndef O_BINARY # define O_BINARY 0 #endif /* O_BINARY */ @@ -156,11 +156,11 @@ cupsDoIORequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP return (NULL); } -#ifdef WIN32 +#ifdef _WIN32 if (fileinfo.st_mode & _S_IFDIR) #else if (S_ISDIR(fileinfo.st_mode)) -#endif /* WIN32 */ +#endif /* _WIN32 */ { /* * Can't send a directory... @@ -172,11 +172,11 @@ cupsDoIORequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP return (NULL); } -#ifndef WIN32 +#ifndef _WIN32 if (!S_ISREG(fileinfo.st_mode)) length = 0; /* Chunk when piping */ else -#endif /* !WIN32 */ +#endif /* !_WIN32 */ length = ippLength(request) + (size_t)fileinfo.st_size; } else @@ -215,9 +215,9 @@ cupsDoIORequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP * Send the file with the request... */ -#ifndef WIN32 +#ifndef _WIN32 if (S_ISREG(fileinfo.st_mode)) -#endif /* WIN32 */ +#endif /* _WIN32 */ lseek(infile, 0, SEEK_SET); while ((bytes = read(infile, buffer, sizeof(buffer))) > 0) @@ -591,7 +591,8 @@ cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP int got_status; /* Did we get the status? */ ipp_state_t state; /* State of IPP processing */ http_status_t expect; /* Expect: header to use */ - char date[256]; /* Date: header value */ + char date[256]; /* Date: header value */ + int digest; /* Are we using Digest authentication? */ DEBUG_printf(("cupsSendRequest(http=%p, request=%p(%s), resource=\"%s\", length=" CUPS_LLFMT ")", (void *)http, (void *)request, request ? ippOpString(request->request.op.operation_id) : "?", resource, CUPS_LLCAST length)); @@ -683,6 +684,17 @@ cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP httpSetField(http, HTTP_FIELD_DATE, httpGetDateString2(time(NULL), date, (int)sizeof(date))); httpSetLength(http, length); + digest = http->authstring && !strncmp(http->authstring, "Digest ", 7); + + if (digest) + { + /* + * Update the Digest authentication string... + */ + + _httpSetDigestAuthString(http, http->nextnonce, "POST", resource); + } + #ifdef HAVE_GSSAPI if (http->authstring && !strncmp(http->authstring, "Negotiate", 9)) { @@ -767,9 +779,9 @@ cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP * Wait up to 1 second to get the 100-continue response as needed... */ - if (!got_status) + if (!got_status || (digest && status == HTTP_STATUS_CONTINUE)) { - if (expect == HTTP_STATUS_CONTINUE) + if (expect == HTTP_STATUS_CONTINUE || digest) { DEBUG_puts("2cupsSendRequest: Waiting for 100-continue..."); @@ -1016,13 +1028,13 @@ _cupsConnect(void) char ch; /* Connection check byte */ ssize_t n; /* Number of bytes */ -#ifdef WIN32 +#ifdef _WIN32 if ((n = recv(cg->http->fd, &ch, 1, MSG_PEEK)) == 0 || (n < 0 && WSAGetLastError() != WSAEWOULDBLOCK)) #else if ((n = recv(cg->http->fd, &ch, 1, MSG_PEEK | MSG_DONTWAIT)) == 0 || (n < 0 && errno != EWOULDBLOCK)) -#endif /* WIN32 */ +#endif /* _WIN32 */ { /* * Nope, close the connection... diff --git a/cups/sidechannel.c b/cups/sidechannel.c index a4cd960..f2dbabd 100644 --- a/cups/sidechannel.c +++ b/cups/sidechannel.c @@ -19,15 +19,15 @@ #include "sidechannel.h" #include "cups-private.h" -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> #else # include <unistd.h> -#endif /* WIN32 */ -#ifndef WIN32 +#endif /* _WIN32 */ +#ifndef _WIN32 # include <sys/select.h> # include <sys/time.h> -#endif /* !WIN32 */ +#endif /* !_WIN32 */ #ifdef HAVE_POLL # include <poll.h> #endif /* HAVE_POLL */ diff --git a/cups/snmp.c b/cups/snmp.c index 7958b93..8437528 100644 --- a/cups/snmp.c +++ b/cups/snmp.c @@ -395,11 +395,11 @@ _cupsSNMPRead(int fd, /* I - SNMP socket file descriptor */ ready = select(fd + 1, &input_set, NULL, NULL, &stimeout); } -# ifdef WIN32 +# ifdef _WIN32 while (ready < 0 && WSAGetLastError() == WSAEINTR); # else while (ready < 0 && (errno == EINTR || errno == EAGAIN)); -# endif /* WIN32 */ +# endif /* _WIN32 */ #endif /* HAVE_POLL */ /* diff --git a/cups/string-private.h b/cups/string-private.h index e8448d1..ced2492 100644 --- a/cups/string-private.h +++ b/cups/string-private.h @@ -1,7 +1,7 @@ /* * Private string definitions for CUPS. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -42,12 +42,12 @@ # include <bstring.h> # endif /* HAVE_BSTRING_H */ -# if defined(WIN32) && !defined(__CUPS_SSIZE_T_DEFINED) +# if defined(_WIN32) && !defined(__CUPS_SSIZE_T_DEFINED) # define __CUPS_SSIZE_T_DEFINED # include <stddef.h> /* Windows does not support the ssize_t type, so map it to long... */ typedef long ssize_t; /* @private@ */ -# endif /* WIN32 && !__CUPS_SSIZE_T_DEFINED */ +# endif /* _WIN32 && !__CUPS_SSIZE_T_DEFINED */ /* @@ -175,8 +175,7 @@ extern size_t _cups_strlcpy(char *, const char *, size_t); # endif /* !HAVE_STRLCPY */ # ifndef HAVE_SNPRINTF -extern int _cups_snprintf(char *, size_t, const char *, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); +extern int _cups_snprintf(char *, size_t, const char *, ...) _CUPS_FORMAT(3, 4); # define snprintf _cups_snprintf # endif /* !HAVE_SNPRINTF */ diff --git a/cups/tempfile.c b/cups/tempfile.c index 1e24869..7b341e1 100644 --- a/cups/tempfile.c +++ b/cups/tempfile.c @@ -21,11 +21,11 @@ #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> -#if defined(WIN32) || defined(__EMX__) +#if defined(_WIN32) || defined(__EMX__) # include <io.h> #else # include <unistd.h> -#endif /* WIN32 || __EMX__ */ +#endif /* _WIN32 || __EMX__ */ /* @@ -42,21 +42,21 @@ cupsTempFd(char *filename, /* I - Pointer to buffer */ int fd; /* File descriptor for temp file */ int tries; /* Number of tries */ const char *tmpdir; /* TMPDIR environment var */ -#if defined(__APPLE__) || defined(WIN32) +#if defined(__APPLE__) || defined(_WIN32) char tmppath[1024]; /* Temporary directory */ -#endif /* __APPLE__ || WIN32 */ -#ifdef WIN32 +#endif /* __APPLE__ || _WIN32 */ +#ifdef _WIN32 DWORD curtime; /* Current time */ #else struct timeval curtime; /* Current time */ -#endif /* WIN32 */ +#endif /* _WIN32 */ /* * See if TMPDIR is defined... */ -#ifdef WIN32 +#ifdef _WIN32 if ((tmpdir = getenv("TEMP")) == NULL) { GetTempPath(sizeof(tmppath), tmppath); @@ -92,7 +92,7 @@ cupsTempFd(char *filename, /* I - Pointer to buffer */ if ((tmpdir = getenv("TMPDIR")) == NULL) tmpdir = "/tmp"; -#endif /* WIN32 */ +#endif /* _WIN32 */ /* * Make the temporary name using the specified directory... @@ -102,7 +102,7 @@ cupsTempFd(char *filename, /* I - Pointer to buffer */ do { -#ifdef WIN32 +#ifdef _WIN32 /* * Get the current time of day... */ @@ -126,21 +126,21 @@ cupsTempFd(char *filename, /* I - Pointer to buffer */ */ snprintf(filename, (size_t)len - 1, "%s/%05x%08x", tmpdir, (unsigned)getpid(), (unsigned)(curtime.tv_sec + curtime.tv_usec + tries)); -#endif /* WIN32 */ +#endif /* _WIN32 */ /* * Open the file in "exclusive" mode, making sure that we don't * stomp on an existing file or someone's symlink crack... */ -#ifdef WIN32 +#ifdef _WIN32 fd = open(filename, _O_CREAT | _O_RDWR | _O_TRUNC | _O_BINARY, _S_IREAD | _S_IWRITE); #elif defined(O_NOFOLLOW) fd = open(filename, O_RDWR | O_CREAT | O_EXCL | O_NOFOLLOW, 0600); #else fd = open(filename, O_RDWR | O_CREAT | O_EXCL, 0600); -#endif /* WIN32 */ +#endif /* _WIN32 */ if (fd < 0 && errno != EEXIST) break; diff --git a/cups/testarray.c b/cups/testarray.c index 6164ffc..892e325 100644 --- a/cups/testarray.c +++ b/cups/testarray.c @@ -494,7 +494,7 @@ main(void) * 'get_seconds()' - Get the current time in seconds... */ -#ifdef WIN32 +#ifdef _WIN32 # include <windows.h> @@ -515,7 +515,7 @@ get_seconds(void) gettimeofday(&curtime, NULL); return (curtime.tv_sec + 0.000001 * curtime.tv_usec); } -#endif /* WIN32 */ +#endif /* _WIN32 */ /* diff --git a/cups/testdest.c b/cups/testdest.c index c5c2052..9eab8d2 100644 --- a/cups/testdest.c +++ b/cups/testdest.c @@ -1,7 +1,7 @@ /* * CUPS destination API test program for CUPS. * - * Copyright 2012-2017 by Apple Inc. + * Copyright 2012-2018 by Apple Inc. * * These coded instructions, statements, and computer programs are the * property of Apple Inc. and are protected by Federal copyright @@ -32,7 +32,7 @@ static void show_conflicts(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, static void show_default(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option); static void show_media(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, unsigned flags, const char *name); static void show_supported(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, const char *option, const char *value); -static void usage(const char *arg) __attribute__((noreturn)); +static void usage(const char *arg) _CUPS_NORETURN; /* diff --git a/cups/testfile.c b/cups/testfile.c index b2ec8cd..1473a4a 100644 --- a/cups/testfile.c +++ b/cups/testfile.c @@ -1,7 +1,7 @@ /* * File test program for CUPS. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -22,14 +22,11 @@ #include "file.h" #include <stdlib.h> #include <time.h> -#ifdef HAVE_LIBZ -# include <zlib.h> -#endif /* HAVE_LIBZ */ -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> #else # include <unistd.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #include <fcntl.h> @@ -53,10 +50,10 @@ main(int argc, /* I - Number of command-line arguments */ int status; /* Exit status */ char filename[1024]; /* Filename buffer */ cups_file_t *fp; /* File pointer */ -#ifndef WIN32 +#ifndef _WIN32 int fds[2]; /* Open file descriptors */ cups_file_t *fdfile; /* File opened with cupsFileOpenFd() */ -#endif /* !WIN32 */ +#endif /* !_WIN32 */ int count; /* Number of lines in file */ @@ -84,7 +81,7 @@ main(int argc, /* I - Number of command-line arguments */ status += random_tests(); -#ifndef WIN32 +#ifndef _WIN32 /* * Test fdopen and close without reading... */ @@ -118,7 +115,7 @@ main(int argc, /* I - Number of command-line arguments */ puts("PASS"); } -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* * Count lines in psglyphs, rewind, then count again. @@ -174,13 +171,13 @@ main(int argc, /* I - Number of command-line arguments */ */ fputs("\ncupsFileFind: ", stdout); -#ifdef WIN32 +#ifdef _WIN32 if (cupsFileFind("notepad.exe", "C:/WINDOWS", 1, filename, sizeof(filename)) && cupsFileFind("notepad.exe", "C:/WINDOWS;C:/WINDOWS/SYSTEM32", 1, filename, sizeof(filename))) #else if (cupsFileFind("cat", "/bin", 1, filename, sizeof(filename)) && cupsFileFind("cat", "/bin:/usr/bin", 1, filename, sizeof(filename))) -#endif /* WIN32 */ +#endif /* _WIN32 */ printf("PASS (%s)\n", filename); else { diff --git a/cups/testhttp.c b/cups/testhttp.c index fa8356c..7d8ec06 100644 --- a/cups/testhttp.c +++ b/cups/testhttp.c @@ -341,6 +341,40 @@ main(int argc, /* I - Number of command-line arguments */ if (!j) puts("PASS"); +#if 0 + /* + * _httpDigest() + */ + + fputs("_httpDigest(MD5): ", stdout); + if (!_httpDigest(buffer, sizeof(buffer), "MD5", "Mufasa", "http-auth@example.org", "Circle of Life", "7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v", 1, "f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ", "auth", "GET", "/dir/index.html")) + { + failures ++; + puts("FAIL (unable to calculate hash)"); + } + else if (strcmp(buffer, "8ca523f5e9506fed4657c9700eebdbec")) + { + failures ++; + printf("FAIL (got \"%s\", expected \"8ca523f5e9506fed4657c9700eebdbec\")\n", buffer); + } + else + puts("PASS"); + + fputs("_httpDigest(SHA-256): ", stdout); + if (!_httpDigest(buffer, sizeof(buffer), "SHA-256", "Mufasa", "http-auth@example.org", "Circle of Life", "7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v", 1, "f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ", "auth", "GET", "/dir/index.html")) + { + failures ++; + puts("FAIL (unable to calculate hash)"); + } + else if (strcmp(buffer, "753927fa0e85d155564e2e272a28d1802ca10daf4496794697cf8db5856cb6c1")) + { + failures ++; + printf("FAIL (got \"%s\", expected \"753927fa0e85d155564e2e272a28d1802ca10daf4496794697cf8db5856cb6c1\")\n", buffer); + } + else + puts("PASS"); +#endif /* 0 */ + /* * httpGetHostname() */ @@ -599,6 +633,8 @@ main(int argc, /* I - Number of command-line arguments */ for (i = 1; i < argc; i ++) { + int new_auth; + if (!strcmp(argv[i], "-o")) { i ++; @@ -682,6 +718,8 @@ main(int argc, /* I - Number of command-line arguments */ printf("Checking file \"%s\"...\n", resource); + new_auth = 0; + do { if (!_cups_strcasecmp(httpGetField(http, HTTP_FIELD_CONNECTION), "close")) @@ -694,9 +732,13 @@ main(int argc, /* I - Number of command-line arguments */ } } + if (http->authstring && !strncmp(http->authstring, "Digest ", 7) && !new_auth) + _httpSetDigestAuthString(http, http->nextnonce, "HEAD", resource); + httpClearFields(http); httpSetField(http, HTTP_FIELD_AUTHORIZATION, httpGetAuthString(http)); httpSetField(http, HTTP_FIELD_ACCEPT_LANGUAGE, "en"); + if (httpHead(http, resource)) { if (httpReconnect2(http, 30000, NULL)) @@ -713,6 +755,8 @@ main(int argc, /* I - Number of command-line arguments */ while ((status = httpUpdate(http)) == HTTP_STATUS_CONTINUE); + new_auth = 0; + if (status == HTTP_STATUS_UNAUTHORIZED) { /* @@ -725,7 +769,9 @@ main(int argc, /* I - Number of command-line arguments */ * See if we can do authentication... */ - if (cupsDoAuthentication(http, "GET", resource)) + new_auth = 1; + + if (cupsDoAuthentication(http, "HEAD", resource)) { status = HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED; break; @@ -773,6 +819,8 @@ main(int argc, /* I - Number of command-line arguments */ printf("Requesting file \"%s\" (Accept-Encoding: %s)...\n", resource, encoding ? encoding : "identity"); + new_auth = 0; + do { if (!_cups_strcasecmp(httpGetField(http, HTTP_FIELD_CONNECTION), "close")) @@ -785,6 +833,9 @@ main(int argc, /* I - Number of command-line arguments */ } } + if (http->authstring && !strncmp(http->authstring, "Digest ", 7) && !new_auth) + _httpSetDigestAuthString(http, http->nextnonce, "GET", resource); + httpClearFields(http); httpSetField(http, HTTP_FIELD_AUTHORIZATION, httpGetAuthString(http)); httpSetField(http, HTTP_FIELD_ACCEPT_LANGUAGE, "en"); @@ -806,6 +857,8 @@ main(int argc, /* I - Number of command-line arguments */ while ((status = httpUpdate(http)) == HTTP_STATUS_CONTINUE); + new_auth = 0; + if (status == HTTP_STATUS_UNAUTHORIZED) { /* @@ -818,6 +871,8 @@ main(int argc, /* I - Number of command-line arguments */ * See if we can do authentication... */ + new_auth = 1; + if (cupsDoAuthentication(http, "GET", resource)) { status = HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED; diff --git a/cups/testipp.c b/cups/testipp.c index ea8f9d7..2ef2496 100644 --- a/cups/testipp.c +++ b/cups/testipp.c @@ -20,12 +20,12 @@ #include "file.h" #include "string-private.h" #include "ipp-private.h" -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> #else # include <unistd.h> # include <fcntl.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ /* diff --git a/cups/testppd.c b/cups/testppd.c index c7187c2..a127a79 100644 --- a/cups/testppd.c +++ b/cups/testppd.c @@ -21,12 +21,12 @@ #include "cups-private.h" #include "ppd-private.h" #include <sys/stat.h> -#ifdef WIN32 +#ifdef _WIN32 # include <io.h> #else # include <unistd.h> # include <fcntl.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #include <math.h> diff --git a/cups/testsnmp.c b/cups/testsnmp.c index 4026a28..9e168ab 100644 --- a/cups/testsnmp.c +++ b/cups/testsnmp.c @@ -1,7 +1,7 @@ /* * SNMP test program for CUPS. * - * Copyright 2008-2014 by Apple Inc. + * Copyright 2008-2018 by Apple Inc. * * These coded instructions, statements, and computer programs are the * property of Apple Inc. and are protected by Federal copyright @@ -27,7 +27,7 @@ static void print_packet(cups_snmp_t *packet, void *data); static int show_oid(int fd, const char *community, http_addr_t *addr, const char *s, int walk); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; /* diff --git a/cups/thread-private.h b/cups/thread-private.h index 79d2438..ae8163d 100644 --- a/cups/thread-private.h +++ b/cups/thread-private.h @@ -46,7 +46,7 @@ typedef pthread_key_t _cups_threadkey_t; # define _cupsThreadGetData(k) pthread_getspecific(k) # define _cupsThreadSetData(k,p) pthread_setspecific(k,p) -# elif defined(WIN32) /* Windows threading */ +# elif defined(_WIN32) /* Windows threading */ # include <winsock2.h> # include <windows.h> typedef void *(__stdcall *_cups_thread_func_t)(void *arg); diff --git a/cups/thread.c b/cups/thread.c index b59918b..7ffc2ec 100644 --- a/cups/thread.c +++ b/cups/thread.c @@ -208,7 +208,7 @@ _cupsThreadWait(_cups_thread_t thread) /* I - Thread ID */ } -#elif defined(WIN32) +#elif defined(_WIN32) # include <process.h> diff --git a/cups/tls-darwin.c b/cups/tls-darwin.c index 9aa316b..c4f0ccb 100644 --- a/cups/tls-darwin.c +++ b/cups/tls-darwin.c @@ -1228,14 +1228,16 @@ _httpTLSStart(http_t *http) /* I - HTTP connection */ kTLSProtocol1, kTLSProtocol11, kTLSProtocol12, - kTLSProtocol12, /* TODO: update to 1.3 when 1.3 is supported */ - kTLSProtocol12 /* TODO: update to 1.3 when 1.3 is supported */ + kTLSProtocol13 }; - error = SSLSetProtocolVersionMin(http->tls, protocols[tls_min_version]); - DEBUG_printf(("4_httpTLSStart: SSLSetProtocolVersionMin(%d), error=%d", protocols[tls_min_version], (int)error)); + if (tls_min_version < _HTTP_TLS_MAX) + { + error = SSLSetProtocolVersionMin(http->tls, protocols[tls_min_version]); + DEBUG_printf(("4_httpTLSStart: SSLSetProtocolVersionMin(%d), error=%d", protocols[tls_min_version], (int)error)); + } - if (!error) + if (!error && tls_max_version < _HTTP_TLS_MAX) { error = SSLSetProtocolVersionMax(http->tls, protocols[tls_max_version]); DEBUG_printf(("4_httpTLSStart: SSLSetProtocolVersionMax(%d), error=%d", protocols[tls_max_version], (int)error)); diff --git a/cups/tls-gnutls.c b/cups/tls-gnutls.c index 68bacc6..606b45a 100644 --- a/cups/tls-gnutls.c +++ b/cups/tls-gnutls.c @@ -399,7 +399,7 @@ httpCredentialsAreValidForName( for (i = 0; i < count; i ++) { rserial_size = sizeof(rserial); - if (!gnutls_x509_crl_get_crt_serial(tls_crl, (unsigned)i, rserial, &rserial_size, NULL) && cserial_size == rserial_size && !memcmp(cserial, rserial, (int)rserial_size)) + if (!gnutls_x509_crl_get_crt_serial(tls_crl, (unsigned)i, rserial, &rserial_size, NULL) && cserial_size == rserial_size && !memcmp(cserial, rserial, rserial_size)) { result = 0; break; @@ -23,13 +23,13 @@ #include "cups-private.h" #include <fcntl.h> #include <math.h> -#ifdef WIN32 +#ifdef _WIN32 # include <tchar.h> #else # include <signal.h> # include <sys/time.h> # include <sys/resource.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #ifdef HAVE_POLL # include <poll.h> #endif /* HAVE_POLL */ diff --git a/cups/tlscheck.c b/cups/tlscheck.c index fa8fdd5..d16bf1e 100644 --- a/cups/tlscheck.c +++ b/cups/tlscheck.c @@ -97,6 +97,21 @@ main(int argc, /* I - Number of command-line arguments */ tls_min_version = _HTTP_TLS_1_0; tls_max_version = _HTTP_TLS_1_0; } + else if (!strcmp(argv[i], "--tls11")) + { + tls_min_version = _HTTP_TLS_1_1; + tls_max_version = _HTTP_TLS_1_1; + } + else if (!strcmp(argv[i], "--tls12")) + { + tls_min_version = _HTTP_TLS_1_2; + tls_max_version = _HTTP_TLS_1_2; + } + else if (!strcmp(argv[i], "--tls13")) + { + tls_min_version = _HTTP_TLS_1_3; + tls_max_version = _HTTP_TLS_1_3; + } else if (!strcmp(argv[i], "--rc4")) { tls_options |= _HTTP_TLS_ALLOW_RC4; @@ -744,6 +759,9 @@ usage(void) puts(" --no-tls10 Disable TLS/1.0"); puts(" --rc4 Allow RC4 encryption"); puts(" --tls10 Only use TLS/1.0"); + puts(" --tls11 Only use TLS/1.1"); + puts(" --tls12 Only use TLS/1.2"); + puts(" --tls13 Only use TLS/1.3"); puts(" --verbose Be verbose"); puts(" -4 Connect using IPv4 addresses only"); puts(" -6 Connect using IPv6 addresses only"); diff --git a/cups/usersys.c b/cups/usersys.c index 99601e4..781f27b 100644 --- a/cups/usersys.c +++ b/cups/usersys.c @@ -20,13 +20,13 @@ #include "cups-private.h" #include <stdlib.h> #include <sys/stat.h> -#ifdef WIN32 +#ifdef _WIN32 # include <windows.h> #else # include <pwd.h> # include <termios.h> # include <sys/utsname.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -490,12 +490,12 @@ cupsSetUserAgent(const char *user_agent)/* I - User-Agent string or @code NULL@ { _cups_globals_t *cg = _cupsGlobals(); /* Thread globals */ -#ifdef WIN32 +#ifdef _WIN32 SYSTEM_INFO sysinfo; /* System information */ OSVERSIONINFO version; /* OS version info */ #else struct utsname name; /* uname info */ -#endif /* WIN32 */ +#endif /* _WIN32 */ if (user_agent) @@ -504,7 +504,7 @@ cupsSetUserAgent(const char *user_agent)/* I - User-Agent string or @code NULL@ return; } -#ifdef WIN32 +#ifdef _WIN32 version.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&version); GetNativeSystemInfo(&sysinfo); @@ -528,7 +528,7 @@ cupsSetUserAgent(const char *user_agent)/* I - User-Agent string or @code NULL@ snprintf(cg->user_agent, sizeof(cg->user_agent), CUPS_MINIMAL " (%s %s; %s) IPP/2.0", name.sysname, name.release, name.machine); -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -580,7 +580,7 @@ cupsUserAgent(void) const char * /* O - Password or @code NULL@ if none */ _cupsGetPassword(const char *prompt) /* I - Prompt string */ { -#ifdef WIN32 +#ifdef _WIN32 HANDLE tty; /* Console handle */ DWORD mode; /* Console mode */ char passch, /* Current key press */ @@ -846,7 +846,7 @@ _cupsGetPassword(const char *prompt) /* I - Prompt string */ memset(cg->password, 0, sizeof(cg->password)); return (NULL); } -#endif /* WIN32 */ +#endif /* _WIN32 */ } @@ -905,7 +905,7 @@ _cupsSetDefaults(void) # ifdef HAVE_GETEUID if ((geteuid() == getuid() || !getuid()) && getegid() == getgid() && (home = getenv("HOME")) != NULL) -# elif !defined(WIN32) +# elif !defined(_WIN32) if (getuid() && (home = getenv("HOME")) != NULL) # else if ((home = getenv("HOME")) != NULL) @@ -1101,7 +1101,7 @@ cups_finalize_client_conf( if (!cc->user[0]) { -#ifdef WIN32 +#ifdef _WIN32 /* * Get the current user name from the OS... */ @@ -1137,7 +1137,7 @@ cups_finalize_client_conf( if (pw) strlcpy(cc->user, pw->pw_name, sizeof(cc->user)); else -#endif /* WIN32 */ +#endif /* _WIN32 */ { /* * Use the default "unknown" user name... diff --git a/cups/util.c b/cups/util.c index e800449..ef1709c 100644 --- a/cups/util.c +++ b/cups/util.c @@ -20,11 +20,11 @@ #include "cups-private.h" #include <fcntl.h> #include <sys/stat.h> -#if defined(WIN32) || defined(__EMX__) +#if defined(_WIN32) || defined(__EMX__) # include <io.h> #else # include <unistd.h> -#endif /* WIN32 || __EMX__ */ +#endif /* _WIN32 || __EMX__ */ /* diff --git a/cups/versioning.h b/cups/versioning.h index 4065832..620396f 100644 --- a/cups/versioning.h +++ b/cups/versioning.h @@ -16,85 +16,41 @@ # define _CUPS_VERSIONING_H_ /* - * This header defines several constants - _CUPS_DEPRECATED, - * _CUPS_DEPRECATED_MSG, _CUPS_INTERNAL_MSG, _CUPS_API_major_minor, and - * _CUPS_API_major_minor_patch - which add compiler-specific attributes that - * flag functions that are deprecated, added in particular releases, or internal - * to CUPS. + * This header defines several macros that add compiler-specific attributes for + * functions: * - * On macOS, the _CUPS_API_* constants are defined based on the values of - * the MAC_OS_X_VERSION_MIN_ALLOWED and MAC_OS_X_VERSION_MAX_ALLOWED constants - * provided by the compiler. + * - _CUPS_API_major_minor[_patch]: Specifies when an API became available by + * CUPS version. + * - _CUPS_DEPRECATED: Function is deprecated with no replacement. + * - _CUPS_DEPRECATED_MSG("message"): Function is deprecated and has a + * replacement. + * - _CUPS_FORMAT(format-index, additional-args-index): Function has a + * printf-style format argument followed by zero or more additional + * arguments. Indices start at 1. + * - _CUPS_INTERNAL: Function is internal with no replacement API. + * - _CUPS_INTERNAL_MSG("msg"): Function is internal - use specified API + * instead. + * - _CUPS_NONNULL((arg list)): Specifies the comma-separated argument indices + * are assumed non-NULL. Indices start at 1. + * - _CUPS_NORETURN: Specifies the function does not return. + * - _CUPS_PRIVATE: Specifies the function is private to CUPS. + * - _CUPS_PUBLIC: Specifies the function is public API. */ -# if defined(__APPLE__) && !defined(_CUPS_SOURCE) && !TARGET_OS_IOS -# include <AvailabilityMacros.h> -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER */ -# ifndef AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER -# define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER __attribute__((unavailable)) -# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER */ -# define _CUPS_API_1_1_19 AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER -# define _CUPS_API_1_1_20 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER -# define _CUPS_API_1_1_21 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER -# define _CUPS_API_1_2 AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER -# define _CUPS_API_1_3 AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER -# define _CUPS_API_1_4 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER -# define _CUPS_API_1_5 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER -# define _CUPS_API_1_6 AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER -# define _CUPS_API_1_7 AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER -# define _CUPS_API_2_0 AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER -# define _CUPS_API_2_2 AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER -# define _CUPS_API_2_2_4 AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER -# define _CUPS_API_2_2_7 -# else -# define _CUPS_API_1_1_19 -# define _CUPS_API_1_1_20 -# define _CUPS_API_1_1_21 -# define _CUPS_API_1_2 -# define _CUPS_API_1_3 -# define _CUPS_API_1_4 -# define _CUPS_API_1_5 -# define _CUPS_API_1_6 -# define _CUPS_API_1_7 -# define _CUPS_API_2_0 -# define _CUPS_API_2_2 -# define _CUPS_API_2_2_4 -# define _CUPS_API_2_2_7 -# endif /* __APPLE__ && !_CUPS_SOURCE */ - /* - * With GCC and Clang we can mark old APIs as "deprecated" or "unavailable" with - * messages so you get warnings/errors are compile-time... + * Determine which compiler is being used and what annotation features are + * available... */ +# ifdef __APPLE__ +# include <os/availability.h> +# endif /* __APPLE__ */ + # ifdef __has_extension /* Clang */ # define _CUPS_HAS_DEPRECATED +# define _CUPS_HAS_FORMAT +# define _CUPS_HAS_NORETURN +# define _CUPS_HAS_VISIBILITY # if __has_extension(attribute_deprecated_with_message) # define _CUPS_HAS_DEPRECATED_WITH_MESSAGE # endif @@ -104,6 +60,9 @@ # elif defined(__GNUC__) /* GCC and compatible */ # if __GNUC__ >= 3 /* GCC 3.0 or higher */ # define _CUPS_HAS_DEPRECATED +# define _CUPS_HAS_FORMAT +# define _CUPS_HAS_NORETURN +# define _CUPS_HAS_VISIBILITY # endif /* __GNUC__ >= 3 */ # if __GNUC__ >= 5 /* GCC 5.x */ # define _CUPS_HAS_DEPRECATED_WITH_MESSAGE @@ -111,61 +70,197 @@ /* GCC 4.5 or higher */ # define _CUPS_HAS_DEPRECATED_WITH_MESSAGE # endif /* __GNUC__ >= 5 */ +# elif defined(_WIN32) +# define __attribute__(...) # endif /* __has_extension */ + +/* + * Define _CUPS_INTERNAL, _CUPS_PRIVATE, and _CUPS_PUBLIC visibilty macros for + * internal/private/public functions... + */ + +# ifdef _CUPS_HAS_VISIBILITY +# define _CUPS_INTERNAL __attribute__ ((visibility("hidden"))) +# define _CUPS_PRIVATE __attribute__ ((visibility("default"))) +# define _CUPS_PUBLIC __attribute__ ((visibility("default"))) +# else +# define _CUPS_INTERNAL +# define _CUPS_PRIVATE +# define _CUPS_PUBLIC +# endif /* _CUPS_HAS_VISIBILITY */ + + +/* + * Define _CUPS_API_major_minor[_patch] availability macros for CUPS. + * + * Note: Using any of the _CUPS_API macros automatically adds _CUPS_PUBLIC. + */ + +# if defined(__APPLE__) && !defined(_CUPS_SOURCE) && !TARGET_OS_IOS +/* + * On Apple operating systems, the _CUPS_API_* constants are defined using the + * API_ macros in <os/availability.h>. + * + * On iOS, we don't actually have libcups available directly, but the supplied + * libcups_static target in the Xcode project supports building on iOS 11.0 and + * later. + */ +# define _CUPS_API_1_1_19 API_AVAILABLE(macos(10.3), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_1_1_20 API_AVAILABLE(macos(10.4), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_1_1_21 API_AVAILABLE(macos(10.4), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_1_2 API_AVAILABLE(macos(10.5), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_1_3 API_AVAILABLE(macos(10.5), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_1_4 API_AVAILABLE(macos(10.6), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_1_5 API_AVAILABLE(macos(10.7), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_1_6 API_AVAILABLE(macos(10.8), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_1_7 API_AVAILABLE(macos(10.9), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_2_0 API_AVAILABLE(macos(10.10), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_2_2 API_AVAILABLE(macos(10.12), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_2_2_4 API_AVAILABLE(macos(10.13), ios(11.0)) _CUPS_PUBLIC +# define _CUPS_API_2_2_7 API_AVAILABLE(macos(10.14), ios(11.0)) _CUPS_PUBLIC +# else +# define _CUPS_API_1_1_19 _CUPS_PUBLIC +# define _CUPS_API_1_1_20 _CUPS_PUBLIC +# define _CUPS_API_1_1_21 _CUPS_PUBLIC +# define _CUPS_API_1_2 _CUPS_PUBLIC +# define _CUPS_API_1_3 _CUPS_PUBLIC +# define _CUPS_API_1_4 _CUPS_PUBLIC +# define _CUPS_API_1_5 _CUPS_PUBLIC +# define _CUPS_API_1_6 _CUPS_PUBLIC +# define _CUPS_API_1_7 _CUPS_PUBLIC +# define _CUPS_API_2_0 _CUPS_PUBLIC +# define _CUPS_API_2_2 _CUPS_PUBLIC +# define _CUPS_API_2_2_4 _CUPS_PUBLIC +# define _CUPS_API_2_2_7 _CUPS_PUBLIC +# endif /* __APPLE__ && !_CUPS_SOURCE */ + + +/* + * Define _CUPS_DEPRECATED and _CUPS_INTERNAL macros to mark old APIs as + * "deprecated" or "unavailable" with messages so you get warnings/errors are + * compile-time... + * + * Note: Using any of the _CUPS_DEPRECATED macros automatically adds + * _CUPS_PUBLIC. + */ + # if !defined(_CUPS_HAS_DEPRECATED) || (defined(_CUPS_SOURCE) && !defined(_CUPS_NO_DEPRECATED)) /* * Don't mark functions deprecated if the compiler doesn't support it * or we are building CUPS source that doesn't care. */ -# define _CUPS_DEPRECATED -# define _CUPS_DEPRECATED_MSG(m) -# define _CUPS_DEPRECATED_1_6_MSG(m) -# define _CUPS_DEPRECATED_1_7_MSG(m) -# define _CUPS_INTERNAL_MSG(m) +# define _CUPS_DEPRECATED _CUPS_PUBLIC +# define _CUPS_DEPRECATED_MSG(m) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_2_MSG(m) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_6_MSG(m) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_7_MSG(m) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_2_2_MSG(m) _CUPS_PUBLIC +# elif defined(__APPLE__) && defined(_CUPS_NO_DEPRECATED) + /* + * Compiler supports the unavailable attribute, so use it when the code + * wants to exclude the use of deprecated API. + */ +# define _CUPS_DEPRECATED __attribute__ ((unavailable)) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_2_MSG(m) API_DEPRECATED(m, macos(10.2,10.5)) API_UNAVAILABLE(ios) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_6_MSG(m) API_DEPRECATED(m, macos(10.2,10.8)) API_UNAVAILABLE(ios) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_7_MSG(m) API_DEPRECATED(m, macos(10.2,10.9)) API_UNAVAILABLE(ios) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_2_2_MSG(m) API_DEPRECATED(m, macos(10.2,10.12)) API_UNAVAILABLE(ios) _CUPS_PUBLIC + +# elif defined(__APPLE__) + /* + * Just mark things as deprecated... + */ +# define _CUPS_DEPRECATED __attribute__ ((deprecated)) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_2_MSG(m) API_DEPRECATED(m, macos(10.2,10.5)) API_UNAVAILABLE(ios) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_6_MSG(m) API_DEPRECATED(m, macos(10.2,10.8)) API_UNAVAILABLE(ios) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_7_MSG(m) API_DEPRECATED(m, macos(10.2,10.9)) API_UNAVAILABLE(ios) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_2_2_MSG(m) API_DEPRECATED(m, macos(10.2,10.12)) API_UNAVAILABLE(ios) _CUPS_PUBLIC + # elif defined(_CUPS_HAS_UNAVAILABLE_WITH_MESSAGE) && defined(_CUPS_NO_DEPRECATED) /* * Compiler supports the unavailable attribute, so use it when the code * wants to exclude the use of deprecated API. */ -# define _CUPS_DEPRECATED __attribute__ ((unavailable)) -# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((unavailable(m))) -# define _CUPS_DEPRECATED_1_6_MSG(m) __attribute__ ((unavailable(m))) -# define _CUPS_DEPRECATED_1_7_MSG(m) __attribute__ ((unavailable(m))) -# define _CUPS_INTERNAL_MSG(m) __attribute__ ((unavailable(m))) +# define _CUPS_DEPRECATED __attribute__ ((unavailable)) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_2_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_6_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_7_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_2_2_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC # else /* * Compiler supports the deprecated attribute, so use it. */ -# define _CUPS_DEPRECATED __attribute__ ((deprecated)) +# define _CUPS_DEPRECATED __attribute__ ((deprecated)) _CUPS_PUBLIC # ifdef _CUPS_HAS_DEPRECATED_WITH_MESSAGE -# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated(m))) +# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_2_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_6_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_7_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_2_2_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC # else -# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated)) +# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_2_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_6_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_1_7_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC +# define _CUPS_DEPRECATED_2_2_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC # endif /* _CUPS_HAS_DEPRECATED_WITH_MESSAGE */ -# if defined(MAC_OS_X_VERSION_10_8) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8 -# define _CUPS_DEPRECATED_1_6_MSG(m) _CUPS_DEPRECATED_MSG(m) -# else -# define _CUPS_DEPRECATED_1_6_MSG(m) -# endif /* MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8 */ -# if defined(MAC_OS_X_VERSION_10_9) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 -# define _CUPS_DEPRECATED_1_7_MSG(m) _CUPS_DEPRECATED_MSG(m) -# else -# define _CUPS_DEPRECATED_1_7_MSG(m) -# endif /* MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_9 */ -# ifdef _CUPS_SOURCE -# define _CUPS_INTERNAL_MSG(m) -# elif defined(_CUPS_HAS_UNAVAILABLE_WITH_MESSAGE) -# define _CUPS_INTERNAL_MSG(m) __attribute__ ((unavailable(m))) -# elif defined(_CUPS_HAS_DEPRECATED_WITH_MESSAGE) -# define _CUPS_INTERNAL_MSG(m) __attribute__ ((deprecated(m))) -# else -# define _CUPS_INTERNAL_MSG(m) __attribute__ ((deprecated)) -# endif /* _CUPS_SOURCE */ # endif /* !_CUPS_HAS_DEPRECATED || (_CUPS_SOURCE && !_CUPS_NO_DEPRECATED) */ -# ifndef __GNUC__ -# define __attribute__(x) -# endif /* !__GNUC__ */ + +/* + * Define _CUPS_FORMAT macro for printf-style functions... + */ + +# ifdef _CUPS_HAS_FORMAT +# define _CUPS_FORMAT(a,b) __attribute__ ((__format__(__printf__, a,b))) +# else +# define _CUPS_FORMAT(a,b) +# endif /* _CUPS_HAS_FORMAT */ + + +/* + * Define _CUPS_INTERNAL_MSG macro for private APIs that have (historical) + * public visibility. + * + * Note: Using the _CUPS_INTERNAL_MSG macro automatically adds _CUPS_PUBLIC. + */ + +# ifdef _CUPS_SOURCE +# define _CUPS_INTERNAL_MSG(m) _CUPS_PUBLIC +# elif defined(_CUPS_HAS_UNAVAILABLE_WITH_MESSAGE) +# define _CUPS_INTERNAL_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC +# elif defined(_CUPS_HAS_DEPRECATED_WITH_MESSAGE) +# define _CUPS_INTERNAL_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC +# else +# define _CUPS_INTERNAL_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC +# endif /* _CUPS_SOURCE */ + + +/* + * Define _CUPS_NONNULL macro for functions that don't expect non-null + * arguments... + */ + +# ifdef _CUPS_HAS_NONNULL +# define _CUPS_NONNULL(...) __attribute__ ((nonnull(__VA_ARGS__))) +# else +# define _CUPS_NONNULL(...) +# endif /* _CUPS_HAS_FORMAT */ + + +/* + * Define _CUPS_NORETURN macro for functions that don't return. + */ + +# ifdef _CUPS_HAS_NORETURN +# define _CUPS_NORETURN __attribute__ ((noreturn)) +# else +# define _CUPS_NORETURN +# endif /* _CUPS_HAS_NORETURN */ + #endif /* !_CUPS_VERSIONING_H_ */ diff --git a/doc/Makefile b/doc/Makefile index 3b1b711..243fc7c 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,7 +1,7 @@ # # Documentation makefile for CUPS. # -# Copyright 2007-2016 by Apple Inc. +# Copyright 2007-2018 by Apple Inc. # Copyright 1997-2007 by Easy Software Products. # # These coded instructions, statements, and computer programs are the @@ -236,13 +236,3 @@ uninstall-languages: done install-langbundle: - - -# -# Install the docset bits locally... -# - -docset: - cp $(HELPFILES) ../org.cups.docset/Contents/Resources/Documentation/help - cp cups-printable.css ../org.cups.docset/Contents/Resources/Documentation - cp $(HELPIMAGES) ../org.cups.docset/Contents/Resources/Documentation/images diff --git a/doc/de/index.html.in b/doc/de/index.html.in index e98aa4a..cbae07b 100644 --- a/doc/de/index.html.in +++ b/doc/de/index.html.in @@ -50,6 +50,6 @@ </div> </div> </div> - <div class="footer">CUPS und das CUPS Logo sind Warenzeichen der <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2017 Apple Inc. Alle Rechte vorbehalten.</div> + <div class="footer">CUPS und das CUPS Logo sind Warenzeichen der <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. Alle Rechte vorbehalten.</div> </body> </html> diff --git a/doc/es/index.html.in b/doc/es/index.html.in index 7dacdad..6c12f4f 100644 --- a/doc/es/index.html.in +++ b/doc/es/index.html.in @@ -50,6 +50,6 @@ </div> </div> </div> - <div class="footer">CUPS y el logo de CUPS son marcas registradas de <a href="http://www.apple.com">Apple Inc.</a> Derechos de autor © 2007-2017 Apple Inc. Todos los derechos reservados.</div> + <div class="footer">CUPS y el logo de CUPS son marcas registradas de <a href="http://www.apple.com">Apple Inc.</a> Derechos de autor © 2007-2018 Apple Inc. Todos los derechos reservados.</div> </body> </html> diff --git a/doc/help/api-ppd.html b/doc/help/api-ppd.html index 7e60ec4..8549ee0 100644 --- a/doc/help/api-ppd.html +++ b/doc/help/api-ppd.html @@ -492,7 +492,7 @@ div.contents ul.subcontents li { <!-- PPD API introduction for CUPS. - Copyright 2007-2012 by Apple Inc. + Copyright 2007-2018 by Apple Inc. Copyright 1997-2006 by Easy Software Products, all rights reserved. These coded instructions, statements, and computer programs are the @@ -504,7 +504,7 @@ div.contents ul.subcontents li { <h2 class='title'><a name='OVERVIEW'>Overview</a></h2> -<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote> +<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote> <p>The CUPS PPD API provides read-only access the data in PostScript Printer Description ("PPD") files which are used for all printers with a driver. With diff --git a/doc/help/cupspm.epub b/doc/help/cupspm.epub Binary files differindex a73e5f6..00b5d10 100644 --- a/doc/help/cupspm.epub +++ b/doc/help/cupspm.epub diff --git a/doc/help/man-cups-files.conf.html b/doc/help/man-cups-files.conf.html index 6dd442e..6144a16 100644 --- a/doc/help/man-cups-files.conf.html +++ b/doc/help/man-cups-files.conf.html @@ -115,6 +115,9 @@ The server name may be included in filenames using the string "%s", for example: </pre> The default is "/var/log/cups/page_log". +<dt><a name="PassEnv"></a><b>PassEnv </b><i>variable </i>[ ... <i>variable </i>] +<dd style="margin-left: 5.0em">Passes the specified environment variable(s) to child processes. +Note: the standard CUPS filter and backend environment variables cannot be overridden using this directive. <dt><a name="RemoteRoot"></a><b>RemoteRoot </b><i>username</i> <dd style="margin-left: 5.0em">Specifies the username that is associated with unauthenticated accesses by clients claiming to be the root user. The default is "remroot". @@ -136,6 +139,9 @@ macOS uses its keychain database to store certificates and keys while other plat <dt><a name="ServerRoot"></a><b>ServerRoot </b><i>directory</i> <dd style="margin-left: 5.0em">Specifies the directory containing the server configuration files. The default is "/etc/cups". +<dt><a name="SetEnv"></a><b>SetEnv </b><i>variable value</i> +<dd style="margin-left: 5.0em">Set the specified environment variable to be passed to child processes. +Note: the standard CUPS filter and backend environment variables cannot be overridden using this directive. <dt><a name="StateDir"></a><b>StateDir </b><i>directory</i> <dd style="margin-left: 5.0em">Specifies the directory to use for PID and local certificate files. The default is "/var/run/cups" or "/etc/cups" depending on the platform. @@ -196,7 +202,7 @@ On macOS the Font Book application manages system-installed fonts. <a href="man-subscriptions.conf.html?TOPIC=Man+Pages"><b>subscriptions.conf</b>(5),</a> CUPS Online Help (<a href="http://localhost:631/help">http://localhost:631/help</a>) <h2 class="title"><a name="COPYRIGHT">Copyright</a></h2> -Copyright © 2007-2017 by Apple Inc. +Copyright © 2007-2018 by Apple Inc. </body> </html> diff --git a/doc/help/man-cupsd.conf.html b/doc/help/man-cupsd.conf.html index 9438953..4ba6ecf 100644 --- a/doc/help/man-cupsd.conf.html +++ b/doc/help/man-cupsd.conf.html @@ -220,8 +220,6 @@ The default is "1048576" (1MB). <dt><a name="MultipleOperationTimeout"></a><b>MultipleOperationTimeout </b><i>seconds</i> <dd style="margin-left: 5.0em">Specifies the maximum amount of time to allow between files in a multiple file print job. The default is "300" (5 minutes). -<dt><a name="PassEnv"></a><b>PassEnv </b><i>variable </i>[ ... <i>variable </i>] -<dd style="margin-left: 5.0em">Passes the specified environment variable(s) to child processes. <dt><a name="Policy"></a><b><Policy </b><i>name</i><b>> </b>... <b></Policy></b> <dd style="margin-left: 5.0em">Specifies access control for the named policy. <dt><a name="Port"></a><b>Port </b><i>number</i> @@ -273,8 +271,6 @@ command. command. "Full" reports "CUPS 2.0.0 (UNAME) IPP/2.0". The default is "Minimal". -<dt><a name="SetEnv"></a><b>SetEnv </b><i>variable value</i> -<dd style="margin-left: 5.0em">Set the specified environment variable to be passed to child processes. <dt><a name="SSLListen"></a><b>SSLListen </b><i>ipv4-address</i><b>:</b><i>port</i> <dd style="margin-left: 5.0em"><dt><b>SSLListen [</b><i>ipv6-address</i><b>]:</b><i>port</i> <dd style="margin-left: 5.0em"><dt><b>SSLListen *:</b><i>port</i> diff --git a/doc/help/man-lpadmin.html b/doc/help/man-lpadmin.html index 58c078e..c3bfa72 100644 --- a/doc/help/man-lpadmin.html +++ b/doc/help/man-lpadmin.html @@ -146,7 +146,8 @@ command to get a list of supported device URIs and schemes. <dt><b>-D "</b><i>info</i><b>"</b> <dd style="margin-left: 5.0em">Provides a textual description of the destination. <dt><b>-E</b> -<dd style="margin-left: 5.0em">Enables the destination and accepts jobs; this is the same as running the +<dd style="margin-left: 5.0em">When specified before the <b>-d</b>, <b>-p</b>, or <b>-x</b> options, forces the use of TLS encryption on the connection to the scheduler. +Otherwise, enables the destination and accepts jobs; this is the same as running the <a href="man-cupsaccept.html?TOPIC=Man+Pages"><b>cupsaccept</b>(8)</a> and <a href="man-cupsenable.html?TOPIC=Man+Pages"><b>cupsenable</b>(8)</a> @@ -161,6 +162,7 @@ Finally, the CUPS version of <b>lpadmin</b> may ask the user for an access passw This differs from the System V version which requires the root user to execute this command. <h2 class="title"><a name="NOTES">Notes</a></h2> The CUPS version of <b>lpadmin</b> does not support all of the System V or Solaris printing system configuration options. +<p>The double meaning of the <b>-E</b> option is an unfortunate historical oddity. <h2 class="title"><a name="EXAMPLE">Example</a></h2> Create an IPP Everywhere print queue: <pre class="man"> @@ -175,7 +177,7 @@ Create an IPP Everywhere print queue: <a href="man-lpoptions.html?TOPIC=Man+Pages"><b>lpoptions</b>(1),</a> CUPS Online Help (<a href="http://localhost:631/help">http://localhost:631/help</a>) <h2 class="title"><a name="COPYRIGHT">Copyright</a></h2> -Copyright © 2007-2017 by Apple Inc. +Copyright © 2007-2018 by Apple Inc. </body> </html> diff --git a/doc/index.html.in b/doc/index.html.in index f14021f..0cb0164 100644 --- a/doc/index.html.in +++ b/doc/index.html.in @@ -50,6 +50,6 @@ </div> </div> </div> - <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2017 Apple Inc. All rights reserved.</div> + <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. All rights reserved.</div> </body> </html> diff --git a/doc/ja/index.html.in b/doc/ja/index.html.in index ad2f960..08549f9 100644 --- a/doc/ja/index.html.in +++ b/doc/ja/index.html.in @@ -50,6 +50,6 @@ </div> </div> </div> - <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2017 Apple Inc. All rights reserved.</div> + <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. All rights reserved.</div> </body> </html> diff --git a/doc/pt_BR/index.html.in b/doc/pt_BR/index.html.in index 0f50244..ace8226 100644 --- a/doc/pt_BR/index.html.in +++ b/doc/pt_BR/index.html.in @@ -14,7 +14,7 @@ <ul> <li><a href="http://www.cups.org/" target="_blank">CUPS.org</a></li> <li><a class="active" href="/">Início</a></li> - <li><a href="/admin">Administrarção</a></li> + <li><a href="/admin">Administração</a></li> <li><a href="/classes/">Classes</a></li> <li><a href="/help/">Ajuda</a></li> <li><a href="/jobs/">Trabalhos</a></li> @@ -51,6 +51,6 @@ </div> </div> </div> - <div class="footer">CUPS e o logo do CUPS são marcas registradas da <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2017 Apple Inc. Todos os direitos reservados.</div> + <div class="footer">CUPS e o logo do CUPS são marcas registradas da <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. Todos os direitos reservados.</div> </body> </html> diff --git a/doc/ru/index.html.in b/doc/ru/index.html.in index e91a8f4..7bfc5a3 100644 --- a/doc/ru/index.html.in +++ b/doc/ru/index.html.in @@ -51,6 +51,6 @@ </div> </div> </div> - <div class="footer">CUPS а также логотип CUPS являются зарегистрированными торговыми марками <A HREF="http://www.apple.com">Apple Inc.</A> Авторские права на CUPS принадлежат (2007-2017) компании Apple Inc. Все права защищены.</div> + <div class="footer">CUPS а также логотип CUPS являются зарегистрированными торговыми марками <A HREF="http://www.apple.com">Apple Inc.</A> Авторские права на CUPS принадлежат (2007-2018) компании Apple Inc. Все права защищены.</div> </body> </html> diff --git a/filter/Makefile b/filter/Makefile index 02aab14..74fd46f 100644 --- a/filter/Makefile +++ b/filter/Makefile @@ -218,6 +218,7 @@ apihelp: commandtops: commandtops.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ commandtops.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -227,6 +228,7 @@ commandtops: commandtops.o ../cups/$(LIBCUPS) gziptoany: gziptoany.o ../Makedefs ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ gziptoany.o $(LIBZ) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -235,8 +237,9 @@ gziptoany: gziptoany.o ../Makedefs ../cups/$(LIBCUPS) libcupsimage.so.2 libcupsimage.sl.2: $(IMAGEOBJS) echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS) $(DSOLIBS) \ + $(DSO) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS) $(DSOLIBS) \ -L../cups $(LINKCUPS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ $(RM) `basename $@ .2` $(LN) $@ `basename $@ .2` @@ -247,34 +250,23 @@ libcupsimage.so.2 libcupsimage.sl.2: $(IMAGEOBJS) libcupsimage.2.dylib: $(IMAGEOBJS) $(LIBCUPSIMAGEORDER) echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \ + $(DSO) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ \ -install_name $(libdir)/$@ \ -current_version 2.3.0 \ -compatibility_version 2.0.0 \ $(IMAGEOBJS) $(DSOLIBS) -L../cups $(LINKCUPS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ $(RM) libcupsimage.dylib $(LN) $@ libcupsimage.dylib # -# libcupsimage_s.a -# - -libcupsimage_s.a: $(IMAGEOBJS) libcupsimage_s.exp - echo Linking $@... - $(DSO) $(DSOFLAGS) -Wl,-berok,-bexport:libcupsimage_s.exp \ - -o libcupsimage_s.o $(IMAGEOBJS) $(DSOLIBS) - $(RM) $@ - $(AR) $(ARFLAGS) $@ libcupsimage_s.o - - -# # libcupsimage.la # libcupsimage.la: $(IMAGEOBJS) echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS:.o=.lo) $(DSOLIBS) \ + $(DSO) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ $(IMAGEOBJS:.o=.lo) $(DSOLIBS) \ -L../cups $(LINKCUPS) \ -rpath $(LIBDIR) -version-info 2:3 @@ -297,6 +289,7 @@ libcupsimage.a: $(IMAGEOBJS) pstops: pstops.o common.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ pstops.o common.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -306,6 +299,7 @@ pstops: pstops.o common.o ../cups/$(LIBCUPS) rastertoepson: rastertoepson.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ rastertoepson.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -315,6 +309,7 @@ rastertoepson: rastertoepson.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) rastertohp: rastertohp.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ rastertohp.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -324,6 +319,7 @@ rastertohp: rastertohp.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) rastertolabel: rastertolabel.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ rastertolabel.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -333,12 +329,14 @@ rastertolabel: rastertolabel.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) rastertopwg: rastertopwg.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ rastertopwg.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ rastertopwg-static: rastertopwg.o ../cups/$(LIBCUPSSTATIC) libcupsimage.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ rastertopwg.o libcupsimage.a \ ../cups/$(LIBCUPSSTATIC) $(IMGLIBS) $(DSOLIBS) $(COMMONLIBS) \ $(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -350,6 +348,7 @@ testclient: testclient.o ../cups/$(LIBCUPSSTATIC) libcupsimage.a $(LD_CC) $(LDFLAGS) -o $@ testclient.o \ libcupsimage.a ../cups/$(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -361,6 +360,7 @@ testraster: testraster.o ../cups/$(LIBCUPSSTATIC) libcupsimage.a $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testraster.o libcupsimage.a \ ../cups/$(LIBCUPSSTATIC) $(IMGLIBS) $(DSOLIBS) $(COMMONLIBS) \ $(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running raster API tests... ./testraster @@ -372,6 +372,7 @@ testraster: testraster.o ../cups/$(LIBCUPSSTATIC) libcupsimage.a rasterbench: rasterbench.o libcupsimage.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ rasterbench.o libcupsimage.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/filter/pstops.c b/filter/pstops.c index 65a9db9..fab60d9 100644 --- a/filter/pstops.c +++ b/filter/pstops.c @@ -162,8 +162,7 @@ static ssize_t copy_trailer(cups_file_t *fp, pstops_doc_t *doc, ssize_t linelen, size_t linesize); static void do_prolog(pstops_doc_t *doc, ppd_file_t *ppd); static void do_setup(pstops_doc_t *doc, ppd_file_t *ppd); -static void doc_printf(pstops_doc_t *doc, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); +static void doc_printf(pstops_doc_t *doc, const char *format, ...) _CUPS_FORMAT(2, 3); static void doc_puts(pstops_doc_t *doc, const char *s); static void doc_write(pstops_doc_t *doc, const char *s, size_t len); static void end_nup(pstops_doc_t *doc, int number); diff --git a/filter/raster.c b/filter/raster.c index edb650d..3ff0300 100644 --- a/filter/raster.c +++ b/filter/raster.c @@ -2132,11 +2132,11 @@ cups_read_fd(void *ctx, /* I - File descriptor as pointer */ ssize_t count; /* Number of bytes read */ -#ifdef WIN32 /* Sigh */ +#ifdef _WIN32 /* Sigh */ while ((count = read(fd, buf, (unsigned)bytes)) < 0) #else while ((count = read(fd, buf, bytes)) < 0) -#endif /* WIN32 */ +#endif /* _WIN32 */ if (errno != EINTR && errno != EAGAIN) { DEBUG_printf(("8cups_read_fd: %s", strerror(errno))); @@ -2213,11 +2213,11 @@ cups_write_fd(void *ctx, /* I - File descriptor pointer */ ssize_t count; /* Number of bytes written */ -#ifdef WIN32 /* Sigh */ +#ifdef _WIN32 /* Sigh */ while ((count = write(fd, buf, (unsigned)bytes)) < 0) #else while ((count = write(fd, buf, bytes)) < 0) -#endif /* WIN32 */ +#endif /* _WIN32 */ if (errno != EINTR && errno != EAGAIN) { DEBUG_printf(("8cups_write_fd: %s", strerror(errno))); diff --git a/filter/rastertoepson.c b/filter/rastertoepson.c index 4efe669..3de491f 100644 --- a/filter/rastertoepson.c +++ b/filter/rastertoepson.c @@ -1,7 +1,7 @@ /* * EPSON ESC/P and ESC/P2 filter for CUPS. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1993-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -307,7 +307,7 @@ StartPage( if (DotBytes) { - if ((LineBuffers[0] = calloc((size_t)DotBytes, header->cupsWidth * (size_t)(Shingling + 1))) == NULL) + if ((LineBuffers[0] = calloc((size_t)DotBytes, (header->cupsWidth + 7) * (size_t)(Shingling + 1))) == NULL) { fputs("ERROR: Unable to allocate memory\n", stderr); exit(1); diff --git a/filter/rastertolabel.c b/filter/rastertolabel.c index 4e49181..6ad6c62 100644 --- a/filter/rastertolabel.c +++ b/filter/rastertolabel.c @@ -305,7 +305,7 @@ StartPage(ppd_file_t *ppd, /* I - PPD file */ header->HWResolution[1], header->cupsHeight, header->NumCopies); printf("PAGE-WIDTH %u\r\n", header->cupsWidth); - printf("PAGE-HEIGHT %u\r\n", header->cupsWidth); + printf("PAGE-HEIGHT %u\r\n", header->cupsHeight); break; case INTELLITECH_PCL : @@ -374,7 +374,7 @@ StartPage(ppd_file_t *ppd, /* I - PPD file */ if (header->cupsCompression != ~0U) /* inPrintDensity */ - printf("\033&d%uA", 30 * header->cupsCompression / 100 - 15); + printf("\033&d%dA", 30 * header->cupsCompression / 100 - 15); if ((choice = ppdFindMarkedChoice(ppd, "inPrintMode")) != NULL) { diff --git a/locale/Makefile b/locale/Makefile index 41cac35..4032776 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -161,6 +161,7 @@ checkpo: checkpo.o ../cups/$(LIBCUPSSTATIC) $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o checkpo checkpo.o \ ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \ $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ checkall: checkpo ./checkpo *.po *.strings @@ -178,6 +179,7 @@ po2strings: po2strings.o ../cups/$(LIBCUPSSTATIC) $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o po2strings po2strings.o \ ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \ $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -190,6 +192,7 @@ po2strings: po2strings.o ../cups/$(LIBCUPSSTATIC) strings2po: strings2po.o echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o strings2po strings2po.o + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/locale/cups.pot b/locale/cups.pot index 9bfe18c..46edb9d 100644 --- a/locale/cups.pot +++ b/locale/cups.pot @@ -26,9 +26,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: CUPS 2.2.8\n" +"Project-Id-Version: CUPS 2.2.9\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -1136,7 +1136,7 @@ msgstr "" msgid " -E Test with encryption using HTTP Upgrade to TLS." msgstr "" -#: scheduler/main.c:2104 +#: scheduler/main.c:2106 msgid " -F Run in the foreground but detach from console." msgstr "" @@ -1220,7 +1220,7 @@ msgstr "" msgid " -c cups-files.conf Set cups-files.conf file to use." msgstr "" -#: scheduler/main.c:2102 +#: scheduler/main.c:2104 msgid " -c cupsd.conf Set cupsd.conf file to use." msgstr "" @@ -1244,7 +1244,7 @@ msgstr "" msgid " -e Use every filter from the PPD file." msgstr "" -#: scheduler/main.c:2103 +#: scheduler/main.c:2105 msgid " -f Run in the foreground." msgstr "" @@ -1252,7 +1252,7 @@ msgstr "" msgid " -f filename Set default request filename." msgstr "" -#: scheduler/main.c:2105 +#: scheduler/main.c:2107 msgid " -h Show this usage message." msgstr "" @@ -1288,7 +1288,7 @@ msgstr "" msgid " -l Produce plain text output." msgstr "" -#: scheduler/main.c:2107 +#: scheduler/main.c:2109 msgid " -l Run cupsd on demand." msgstr "" @@ -1356,7 +1356,7 @@ msgstr "" msgid " -s Print service name if true." msgstr "" -#: scheduler/main.c:2109 +#: scheduler/main.c:2111 msgid " -s cups-files.conf Set cups-files.conf file to use." msgstr "" @@ -1368,7 +1368,7 @@ msgstr "" msgid " -t Test PPDs instead of generating them." msgstr "" -#: scheduler/main.c:2110 +#: scheduler/main.c:2112 msgid " -t Test the configuration file." msgstr "" @@ -1555,182 +1555,182 @@ msgstr "" msgid " PASS" msgstr "" -#: cups/ipp.c:5226 +#: cups/ipp.c:5145 #, c-format msgid "\"%s\": Bad URI value \"%s\" - %s (RFC 8011 section 5.1.6)." msgstr "" -#: cups/ipp.c:5233 +#: cups/ipp.c:5152 #, c-format msgid "\"%s\": Bad URI value \"%s\" - bad length %d (RFC 8011 section 5.1.6)." msgstr "" -#: cups/ipp.c:4850 +#: cups/ipp.c:4763 #, c-format msgid "\"%s\": Bad attribute name - bad length %d (RFC 8011 section 5.1.4)." msgstr "" -#: cups/ipp.c:4842 +#: cups/ipp.c:4755 #, c-format msgid "\"%s\": Bad attribute name - invalid character (RFC 8011 section 5.1.4)." msgstr "" -#: cups/ipp.c:4868 +#: cups/ipp.c:4781 #, c-format msgid "\"%s\": Bad boolen value %d (RFC 8011 section 5.1.21)." msgstr "" -#: cups/ipp.c:5285 +#: cups/ipp.c:5204 #, c-format msgid "\"%s\": Bad charset value \"%s\" - bad characters (RFC 8011 section 5.1.8)." msgstr "" -#: cups/ipp.c:5294 +#: cups/ipp.c:5213 #, c-format msgid "\"%s\": Bad charset value \"%s\" - bad length %d (RFC 8011 section 5.1.8)." msgstr "" -#: cups/ipp.c:4968 +#: cups/ipp.c:4881 #, c-format msgid "\"%s\": Bad dateTime UTC hours %u (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4976 +#: cups/ipp.c:4889 #, c-format msgid "\"%s\": Bad dateTime UTC minutes %u (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4960 +#: cups/ipp.c:4873 #, c-format msgid "\"%s\": Bad dateTime UTC sign '%c' (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4920 +#: cups/ipp.c:4833 #, c-format msgid "\"%s\": Bad dateTime day %u (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4952 +#: cups/ipp.c:4865 #, c-format msgid "\"%s\": Bad dateTime deciseconds %u (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4928 +#: cups/ipp.c:4841 #, c-format msgid "\"%s\": Bad dateTime hours %u (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4936 +#: cups/ipp.c:4849 #, c-format msgid "\"%s\": Bad dateTime minutes %u (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4912 +#: cups/ipp.c:4825 #, c-format msgid "\"%s\": Bad dateTime month %u (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4944 +#: cups/ipp.c:4857 #, c-format msgid "\"%s\": Bad dateTime seconds %u (RFC 8011 section 5.1.15)." msgstr "" -#: cups/ipp.c:4882 +#: cups/ipp.c:4795 #, c-format msgid "\"%s\": Bad enum value %d - out of range (RFC 8011 section 5.1.5)." msgstr "" -#: cups/ipp.c:5205 +#: cups/ipp.c:5124 #, c-format msgid "\"%s\": Bad keyword value \"%s\" - bad length %d (RFC 8011 section 5.1.4)." msgstr "" -#: cups/ipp.c:5196 +#: cups/ipp.c:5115 #, c-format msgid "\"%s\": Bad keyword value \"%s\" - invalid character (RFC 8011 section 5.1.4)." msgstr "" -#: cups/ipp.c:5394 +#: cups/ipp.c:5313 #, c-format msgid "\"%s\": Bad mimeMediaType value \"%s\" - bad characters (RFC 8011 section 5.1.10)." msgstr "" -#: cups/ipp.c:5404 +#: cups/ipp.c:5323 #, c-format msgid "\"%s\": Bad mimeMediaType value \"%s\" - bad length %d (RFC 8011 section 5.1.10)." msgstr "" -#: cups/ipp.c:5169 +#: cups/ipp.c:5087 #, c-format msgid "\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)." msgstr "" -#: cups/ipp.c:5164 +#: cups/ipp.c:5082 #, c-format msgid "\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)." msgstr "" -#: cups/ipp.c:5176 +#: cups/ipp.c:5095 #, c-format msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)." msgstr "" -#: cups/ipp.c:5340 +#: cups/ipp.c:5259 #, c-format msgid "\"%s\": Bad naturalLanguage value \"%s\" - bad characters (RFC 8011 section 5.1.9)." msgstr "" -#: cups/ipp.c:5350 +#: cups/ipp.c:5269 #, c-format msgid "\"%s\": Bad naturalLanguage value \"%s\" - bad length %d (RFC 8011 section 5.1.9)." msgstr "" -#: cups/ipp.c:4896 +#: cups/ipp.c:4809 #, c-format msgid "\"%s\": Bad octetString value - bad length %d (RFC 8011 section 5.1.20)." msgstr "" -#: cups/ipp.c:5039 +#: cups/ipp.c:4952 #, c-format msgid "\"%s\": Bad rangeOfInteger value %d-%d - lower greater than upper (RFC 8011 section 5.1.14)." msgstr "" -#: cups/ipp.c:5020 +#: cups/ipp.c:4933 #, c-format msgid "\"%s\": Bad resolution value %dx%d%s - bad units value (RFC 8011 section 5.1.16)." msgstr "" -#: cups/ipp.c:4989 +#: cups/ipp.c:4902 #, c-format msgid "\"%s\": Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 8011 section 5.1.16)." msgstr "" -#: cups/ipp.c:5004 +#: cups/ipp.c:4917 #, c-format msgid "\"%s\": Bad resolution value %dx%d%s - feed resolution must be positive (RFC 8011 section 5.1.16)." msgstr "" -#: cups/ipp.c:5107 +#: cups/ipp.c:5022 #, c-format msgid "\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)." msgstr "" -#: cups/ipp.c:5102 +#: cups/ipp.c:5017 #, c-format msgid "\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)." msgstr "" -#: cups/ipp.c:5114 +#: cups/ipp.c:5030 #, c-format msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)." msgstr "" -#: cups/ipp.c:5256 +#: cups/ipp.c:5175 #, c-format msgid "\"%s\": Bad uriScheme value \"%s\" - bad characters (RFC 8011 section 5.1.7)." msgstr "" -#: cups/ipp.c:5265 +#: cups/ipp.c:5184 #, c-format msgid "\"%s\": Bad uriScheme value \"%s\" - bad length %d (RFC 8011 section 5.1.7)." msgstr "" @@ -1788,7 +1788,7 @@ msgstr "" msgid "%s accepting requests since %s" msgstr "" -#: scheduler/ipp.c:10357 +#: scheduler/ipp.c:10349 #, c-format msgid "%s cannot be changed." msgstr "" @@ -1845,10 +1845,10 @@ msgid "%s: %-33.33s [job %d localhost]" msgstr "" #. TRANSLATORS: Message is "subject: error" -#: cups/langprintf.c:75 scheduler/cupsfilter.c:724 systemv/lpadmin.c:799 -#: systemv/lpadmin.c:850 systemv/lpadmin.c:900 systemv/lpadmin.c:956 -#: systemv/lpadmin.c:1054 systemv/lpadmin.c:1106 systemv/lpadmin.c:1162 -#: systemv/lpadmin.c:1600 +#: cups/langprintf.c:75 scheduler/cupsfilter.c:724 systemv/lpadmin.c:801 +#: systemv/lpadmin.c:852 systemv/lpadmin.c:902 systemv/lpadmin.c:958 +#: systemv/lpadmin.c:1056 systemv/lpadmin.c:1108 systemv/lpadmin.c:1150 +#: systemv/lpadmin.c:1164 systemv/lpadmin.c:1614 #, c-format msgid "%s: %s" msgstr "" @@ -1858,7 +1858,7 @@ msgstr "" msgid "%s: %s failed: %s" msgstr "" -#: systemv/lpadmin.c:1223 +#: systemv/lpadmin.c:1225 #, c-format msgid "%s: Bad printer URI \"%s\"." msgstr "" @@ -2120,13 +2120,13 @@ msgstr "" #: berkeley/lpq.c:87 berkeley/lpr.c:68 berkeley/lprm.c:65 systemv/cancel.c:79 #: systemv/cupsaccept.c:89 systemv/cupsaddsmb.c:78 systemv/lp.c:99 -#: systemv/lpadmin.c:250 systemv/lpinfo.c:192 systemv/lpmove.c:70 +#: systemv/lpadmin.c:251 systemv/lpinfo.c:192 systemv/lpmove.c:70 #: systemv/lpstat.c:91 test/ipptool.c:285 test/ipptool.c:329 #, c-format msgid "%s: Sorry, no encryption support." msgstr "" -#: systemv/lpadmin.c:1230 +#: systemv/lpadmin.c:1232 #, c-format msgid "%s: Unable to connect to \"%s:%d\": %s" msgstr "" @@ -2142,7 +2142,7 @@ msgstr "" msgid "%s: Unable to contact server." msgstr "" -#: systemv/lpadmin.c:1255 +#: systemv/lpadmin.c:1262 #, c-format msgid "%s: Unable to create PPD file: %s" msgstr "" @@ -2167,12 +2167,17 @@ msgstr "" msgid "%s: Unable to open PPD file: %s on line %d." msgstr "" +#: systemv/lpadmin.c:1247 +#, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + #: scheduler/cupsfilter.c:381 #, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "" -#: systemv/lpadmin.c:1214 +#: systemv/lpadmin.c:1216 #, c-format msgid "%s: Unable to resolve \"%s\"." msgstr "" @@ -2573,7 +2578,7 @@ msgstr "" msgid "2-Hole Punch (Reverse Portrait)" msgstr "" -#: cups/ppd-cache.c:3711 ppdc/sample.c:262 +#: cups/ppd-cache.c:3735 ppdc/sample.c:262 msgid "2-Sided Printing" msgstr "" @@ -3077,11 +3082,11 @@ msgstr "" msgid "?Invalid help command unknown." msgstr "" -#: cgi-bin/admin.c:2352 +#: cgi-bin/admin.c:2353 msgid "A Samba password is required to export printer drivers" msgstr "" -#: cgi-bin/admin.c:2348 +#: cgi-bin/admin.c:2349 msgid "A Samba username is required to export printer drivers" msgstr "" @@ -3235,7 +3240,7 @@ msgstr "" msgid "Accept Jobs" msgstr "" -#: cups/http-support.c:1352 +#: cups/http-support.c:1498 msgid "Accepted" msgstr "" @@ -3260,23 +3265,23 @@ msgstr "" msgid "Address" msgstr "" -#: cgi-bin/admin.c:184 cgi-bin/admin.c:258 cgi-bin/admin.c:2729 +#: cgi-bin/admin.c:184 cgi-bin/admin.c:258 cgi-bin/admin.c:2730 msgid "Administration" msgstr "" -#: cups/ppd-cache.c:3472 +#: cups/ppd-cache.c:3483 msgid "Advanced Photo Paper" msgstr "" -#: cups/ppd-cache.c:3386 +#: cups/ppd-cache.c:3396 msgid "Alternate" msgstr "" -#: cups/ppd-cache.c:3394 +#: cups/ppd-cache.c:3404 msgid "Alternate Roll" msgstr "" -#: cups/ppd-cache.c:3466 +#: cups/ppd-cache.c:3477 msgid "Aluminum" msgstr "" @@ -3292,19 +3297,19 @@ msgstr "" msgid "Applicator" msgstr "" -#: cups/ppd-cache.c:3500 +#: cups/ppd-cache.c:3511 msgid "Archival Envelope" msgstr "" -#: cups/ppd-cache.c:3512 +#: cups/ppd-cache.c:3523 msgid "Archival Fabric" msgstr "" -#: cups/ppd-cache.c:3589 +#: cups/ppd-cache.c:3600 msgid "Archival Paper" msgstr "" -#: cups/ppd-cache.c:3561 +#: cups/ppd-cache.c:3572 msgid "Archival Photo Paper" msgstr "" @@ -3313,12 +3318,12 @@ msgstr "" msgid "Attempt to set %s printer-state to bad value %d." msgstr "" -#: scheduler/ipp.c:5463 scheduler/ipp.c:5489 +#: scheduler/ipp.c:5455 scheduler/ipp.c:5481 #, c-format msgid "Attribute \"%s\" is in the wrong group." msgstr "" -#: scheduler/ipp.c:5465 scheduler/ipp.c:5491 +#: scheduler/ipp.c:5457 scheduler/ipp.c:5483 #, c-format msgid "Attribute \"%s\" is the wrong value type." msgstr "" @@ -3328,7 +3333,7 @@ msgstr "" msgid "Attribute groups are out of order (%x < %x)." msgstr "" -#: cups/ppd-cache.c:3384 cups/ppd-cache.c:3467 cups/ppd-cache.c:3771 +#: cups/ppd-cache.c:3394 cups/ppd-cache.c:3478 cups/ppd-cache.c:3801 msgid "Automatic" msgstr "" @@ -3380,20 +3385,24 @@ msgstr "" msgid "B9" msgstr "" -#: cups/ppd-cache.c:3468 +#: cups/ppd-cache.c:3479 msgid "Back Print Film" msgstr "" -#: scheduler/ipp.c:10366 +#: scheduler/ipp.c:10358 #, c-format msgid "Bad '%s' value." msgstr "" -#: scheduler/ipp.c:11314 +#: scheduler/ipp.c:11306 #, c-format msgid "Bad 'document-format' value \"%s\"." msgstr "" +#: cups/ppd.c:337 +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + #: cups/dest.c:1654 msgid "Bad NULL dests pointer" msgstr "" @@ -3427,7 +3436,7 @@ msgstr "" msgid "Bad PPD file." msgstr "" -#: cups/http-support.c:1370 +#: cups/http-support.c:1516 msgid "Bad Request" msgstr "" @@ -3439,7 +3448,7 @@ msgstr "" msgid "Bad UIConstraints" msgstr "" -#: cups/hash.c:53 cups/http-support.c:1464 +#: cups/hash.c:53 cups/http-support.c:1610 msgid "Bad arguments to function" msgstr "" @@ -3452,7 +3461,7 @@ msgstr "" msgid "Bad custom parameter" msgstr "" -#: cups/http-support.c:1604 scheduler/ipp.c:2378 +#: cups/http-support.c:1750 scheduler/ipp.c:2378 #, c-format msgid "Bad device-uri \"%s\"." msgstr "" @@ -3462,12 +3471,12 @@ msgstr "" msgid "Bad device-uri scheme \"%s\"." msgstr "" -#: scheduler/ipp.c:8512 scheduler/ipp.c:8530 scheduler/ipp.c:9758 +#: scheduler/ipp.c:8504 scheduler/ipp.c:8522 scheduler/ipp.c:9750 #, c-format msgid "Bad document-format \"%s\"." msgstr "" -#: scheduler/ipp.c:9776 +#: scheduler/ipp.c:9768 #, c-format msgid "Bad document-format-default \"%s\"." msgstr "" @@ -3476,7 +3485,7 @@ msgstr "" msgid "Bad filename buffer" msgstr "" -#: cups/http-support.c:1473 +#: cups/http-support.c:1619 msgid "Bad hostname/address in URI" msgstr "" @@ -3489,7 +3498,7 @@ msgstr "" msgid "Bad job-name value: Wrong type or count." msgstr "" -#: scheduler/ipp.c:10404 +#: scheduler/ipp.c:10396 msgid "Bad job-priority value." msgstr "" @@ -3502,29 +3511,29 @@ msgstr "" msgid "Bad job-sheets value type." msgstr "" -#: scheduler/ipp.c:10434 +#: scheduler/ipp.c:10426 msgid "Bad job-state value." msgstr "" -#: scheduler/ipp.c:3014 scheduler/ipp.c:3476 scheduler/ipp.c:6294 -#: scheduler/ipp.c:6441 scheduler/ipp.c:7938 scheduler/ipp.c:8210 -#: scheduler/ipp.c:9076 scheduler/ipp.c:9300 scheduler/ipp.c:9652 -#: scheduler/ipp.c:10265 +#: scheduler/ipp.c:3014 scheduler/ipp.c:3476 scheduler/ipp.c:6286 +#: scheduler/ipp.c:6433 scheduler/ipp.c:7930 scheduler/ipp.c:8202 +#: scheduler/ipp.c:9068 scheduler/ipp.c:9292 scheduler/ipp.c:9644 +#: scheduler/ipp.c:10257 #, c-format msgid "Bad job-uri \"%s\"." msgstr "" -#: scheduler/ipp.c:2064 scheduler/ipp.c:5814 +#: scheduler/ipp.c:2064 scheduler/ipp.c:5806 #, c-format msgid "Bad notify-pull-method \"%s\"." msgstr "" -#: scheduler/ipp.c:2028 scheduler/ipp.c:5778 +#: scheduler/ipp.c:2028 scheduler/ipp.c:5770 #, c-format msgid "Bad notify-recipient-uri \"%s\"." msgstr "" -#: scheduler/ipp.c:5889 +#: scheduler/ipp.c:5881 #, c-format msgid "Bad notify-user-data \"%s\"." msgstr "" @@ -3544,7 +3553,7 @@ msgstr "" msgid "Bad page-ranges values %d-%d." msgstr "" -#: cups/http-support.c:1470 +#: cups/http-support.c:1616 msgid "Bad port number in URI" msgstr "" @@ -3572,19 +3581,19 @@ msgstr "" msgid "Bad request version number %d.%d." msgstr "" -#: cups/http-support.c:1467 +#: cups/http-support.c:1613 msgid "Bad resource in URI" msgstr "" -#: cups/http-support.c:1479 +#: cups/http-support.c:1625 msgid "Bad scheme in URI" msgstr "" -#: cgi-bin/admin.c:1468 +#: cgi-bin/admin.c:1469 msgid "Bad subscription ID" msgstr "" -#: cups/http-support.c:1476 +#: cups/http-support.c:1622 msgid "Bad username in URI" msgstr "" @@ -3592,7 +3601,7 @@ msgstr "" msgid "Bad value string" msgstr "" -#: cups/http-support.c:1482 +#: cups/http-support.c:1628 msgid "Bad/empty URI" msgstr "" @@ -3600,7 +3609,7 @@ msgstr "" msgid "Bale" msgstr "" -#: cgi-bin/admin.c:3274 cgi-bin/admin.c:3520 +#: cgi-bin/admin.c:3275 cgi-bin/admin.c:3521 msgid "Banners" msgstr "" @@ -3624,7 +3633,7 @@ msgstr "" msgid "Bind (Reverse Portrait)" msgstr "" -#: cups/ppd-cache.c:3501 +#: cups/ppd-cache.c:3512 msgid "Bond Envelope" msgstr "" @@ -3632,7 +3641,7 @@ msgstr "" msgid "Bond Paper" msgstr "" -#: cups/ppd-cache.c:3996 +#: cups/ppd-cache.c:4061 msgid "Booklet" msgstr "" @@ -3645,11 +3654,11 @@ msgstr "" msgid "Boolean expected for waiteof option \"%s\"." msgstr "" -#: cups/ppd-cache.c:3397 +#: cups/ppd-cache.c:3407 msgid "Bottom" msgstr "" -#: cups/ppd-cache.c:3772 +#: cups/ppd-cache.c:3802 msgid "Bottom Tray" msgstr "" @@ -3657,7 +3666,7 @@ msgstr "" msgid "Buffer overflow detected, aborting." msgstr "" -#: cups/ppd-cache.c:3471 +#: cups/ppd-cache.c:3482 msgid "CD" msgstr "" @@ -3673,11 +3682,11 @@ msgstr "" msgid "Cancel Jobs" msgstr "" -#: cgi-bin/admin.c:1469 cgi-bin/admin.c:1508 cgi-bin/admin.c:1518 +#: cgi-bin/admin.c:1470 cgi-bin/admin.c:1509 cgi-bin/admin.c:1519 msgid "Cancel RSS Subscription" msgstr "" -#: backend/ipp.c:2264 +#: backend/ipp.c:2271 msgid "Canceling print job." msgstr "" @@ -3689,11 +3698,11 @@ msgstr "" msgid "Cannot share a remote Kerberized printer." msgstr "" -#: cups/ppd-cache.c:3469 +#: cups/ppd-cache.c:3480 msgid "Cardboard" msgstr "" -#: cups/ppd-cache.c:3470 +#: cups/ppd-cache.c:3481 msgid "Cardstock" msgstr "" @@ -3701,20 +3710,20 @@ msgstr "" msgid "Cassette" msgstr "" -#: cups/ppd-cache.c:3401 +#: cups/ppd-cache.c:3411 msgid "Center" msgstr "" -#: cups/ppd-cache.c:3773 +#: cups/ppd-cache.c:3803 msgid "Center Tray" msgstr "" -#: cgi-bin/admin.c:1639 cgi-bin/admin.c:1781 cgi-bin/admin.c:1794 -#: cgi-bin/admin.c:1805 +#: cgi-bin/admin.c:1640 cgi-bin/admin.c:1782 cgi-bin/admin.c:1795 +#: cgi-bin/admin.c:1806 msgid "Change Settings" msgstr "" -#: scheduler/ipp.c:2076 scheduler/ipp.c:5826 +#: scheduler/ipp.c:2076 scheduler/ipp.c:5818 #, c-format msgid "Character set \"%s\" not supported." msgstr "" @@ -3735,24 +3744,24 @@ msgstr "" msgid "Coat" msgstr "" -#: cups/ppd-cache.c:3502 +#: cups/ppd-cache.c:3513 msgid "Coated Envelope" msgstr "" -#: cups/ppd-cache.c:3590 +#: cups/ppd-cache.c:3601 msgid "Coated Paper" msgstr "" -#: cups/ppd-cache.c:3675 ppdc/sample.c:276 +#: cups/ppd-cache.c:3694 ppdc/sample.c:276 msgid "Color" msgstr "" -#: cups/ppd-cache.c:3651 cups/ppd-cache.c:3662 cups/ppd-cache.c:3673 -#: cups/ppd-cache.c:3683 ppdc/sample.c:274 +#: cups/ppd-cache.c:3668 cups/ppd-cache.c:3680 cups/ppd-cache.c:3692 +#: cups/ppd-cache.c:3703 ppdc/sample.c:274 msgid "Color Mode" msgstr "" -#: cups/ppd-cache.c:3537 +#: cups/ppd-cache.c:3548 msgid "Colored Labels" msgstr "" @@ -3775,19 +3784,19 @@ msgstr "" msgid "Connecting to printer." msgstr "" -#: cups/http-support.c:1340 +#: cups/http-support.c:1486 msgid "Continue" msgstr "" -#: cups/ppd-cache.c:3485 ppdc/sample.c:360 +#: cups/ppd-cache.c:3496 ppdc/sample.c:360 msgid "Continuous" msgstr "" -#: cups/ppd-cache.c:3486 +#: cups/ppd-cache.c:3497 msgid "Continuous Long" msgstr "" -#: cups/ppd-cache.c:3487 +#: cups/ppd-cache.c:3498 msgid "Continuous Short" msgstr "" @@ -3795,15 +3804,15 @@ msgstr "" msgid "Control file sent successfully." msgstr "" -#: backend/ipp.c:1398 backend/lpd.c:455 +#: backend/ipp.c:1405 backend/lpd.c:455 msgid "Copying print data." msgstr "" -#: cups/ppd-cache.c:3503 +#: cups/ppd-cache.c:3514 msgid "Cotton Envelope" msgstr "" -#: cups/ppd-cache.c:3591 +#: cups/ppd-cache.c:3602 msgid "Cotton Paper" msgstr "" @@ -3811,7 +3820,7 @@ msgstr "" msgid "Cover" msgstr "" -#: cups/http-support.c:1349 +#: cups/http-support.c:1495 msgid "Created" msgstr "" @@ -3823,7 +3832,7 @@ msgstr "" msgid "Credentials have expired." msgstr "" -#: cups/ppd.c:1152 cups/ppd.c:1192 cups/ppd.c:1437 cups/ppd.c:1540 +#: cups/ppd.c:1154 cups/ppd.c:1194 cups/ppd.c:1439 cups/ppd.c:1542 msgid "Custom" msgstr "" @@ -3847,7 +3856,7 @@ msgstr "" msgid "Cutter" msgstr "" -#: cups/ppd-cache.c:3496 +#: cups/ppd-cache.c:3507 msgid "DVD" msgstr "" @@ -3863,15 +3872,15 @@ msgstr "" msgid "Data file sent successfully." msgstr "" -#: cups/ppd-cache.c:3685 +#: cups/ppd-cache.c:3705 msgid "Deep Color" msgstr "" -#: cgi-bin/admin.c:2078 cgi-bin/admin.c:2089 cgi-bin/admin.c:2134 +#: cgi-bin/admin.c:2079 cgi-bin/admin.c:2090 cgi-bin/admin.c:2135 msgid "Delete Class" msgstr "" -#: cgi-bin/admin.c:2163 cgi-bin/admin.c:2174 cgi-bin/admin.c:2219 +#: cgi-bin/admin.c:2164 cgi-bin/admin.c:2175 cgi-bin/admin.c:2220 msgid "Delete Printer" msgstr "" @@ -3928,11 +3937,11 @@ msgstr "" msgid "Disabled" msgstr "" -#: cups/ppd-cache.c:3390 +#: cups/ppd-cache.c:3400 msgid "Disc" msgstr "" -#: scheduler/ipp.c:6343 +#: scheduler/ipp.c:6335 #, c-format msgid "Document #%d does not exist in job #%d." msgstr "" @@ -3957,16 +3966,16 @@ msgstr "" msgid "Double Staple (Reverse Portrait)" msgstr "" -#: cups/ppd-cache.c:3494 +#: cups/ppd-cache.c:3505 msgid "Double Wall Cardboard" msgstr "" -#: cups/ppd-cache.c:4054 cups/ppd-cache.c:4056 cups/ppd-cache.c:4114 -#: cups/ppd-cache.c:4146 +#: cups/ppd-cache.c:4119 cups/ppd-cache.c:4121 cups/ppd-cache.c:4184 +#: cups/ppd-cache.c:4221 msgid "Draft" msgstr "" -#: cups/ppd-cache.c:3495 +#: cups/ppd-cache.c:3506 msgid "Dry Film" msgstr "" @@ -3986,13 +3995,13 @@ msgstr "" msgid "EPL2 Label Printer" msgstr "" -#: cgi-bin/admin.c:1833 cgi-bin/admin.c:1845 cgi-bin/admin.c:1899 -#: cgi-bin/admin.c:1906 cgi-bin/admin.c:1941 cgi-bin/admin.c:1954 -#: cgi-bin/admin.c:1978 cgi-bin/admin.c:2051 +#: cgi-bin/admin.c:1834 cgi-bin/admin.c:1846 cgi-bin/admin.c:1900 +#: cgi-bin/admin.c:1907 cgi-bin/admin.c:1942 cgi-bin/admin.c:1955 +#: cgi-bin/admin.c:1979 cgi-bin/admin.c:2052 msgid "Edit Configuration File" msgstr "" -#: cups/ppd-cache.c:3497 +#: cups/ppd-cache.c:3508 msgid "Embossing Foil" msgstr "" @@ -4000,16 +4009,16 @@ msgstr "" msgid "Empty PPD file." msgstr "" -#: cups/http.c:4635 +#: cups/http.c:4641 msgid "Encryption is not supported." msgstr "" -#: cups/ppd-cache.c:3498 +#: cups/ppd-cache.c:3509 msgid "End Board" msgstr "" #. TRANSLATORS: Banner/cover sheet after the print job. -#: cgi-bin/admin.c:3545 +#: cgi-bin/admin.c:3546 msgid "Ending Banner" msgstr "" @@ -4025,7 +4034,7 @@ msgstr "" msgid "Enter your username and password or the root username and password to access this page. If you are using Kerberos authentication, make sure you have a valid Kerberos ticket." msgstr "" -#: cups/ppd-cache.c:3389 cups/ppd-cache.c:3499 +#: cups/ppd-cache.c:3399 cups/ppd-cache.c:3510 msgid "Envelope" msgstr "" @@ -4249,7 +4258,7 @@ msgstr "" msgid "Epson" msgstr "" -#: cgi-bin/admin.c:3588 +#: cgi-bin/admin.c:3589 msgid "Error Policy" msgstr "" @@ -4314,11 +4323,11 @@ msgstr "" msgid "Every Label" msgstr "" -#: cups/ppd-cache.c:3477 +#: cups/ppd-cache.c:3488 msgid "Everyday Glossy Photo Paper" msgstr "" -#: cups/ppd-cache.c:3478 +#: cups/ppd-cache.c:3489 msgid "Everyday Matte Paper" msgstr "" @@ -4326,11 +4335,11 @@ msgstr "" msgid "Executive" msgstr "" -#: cups/http-support.c:1398 +#: cups/http-support.c:1544 msgid "Expectation Failed" msgstr "" -#: cgi-bin/admin.c:2340 cgi-bin/admin.c:2359 +#: cgi-bin/admin.c:2341 cgi-bin/admin.c:2360 msgid "Export Printers to Samba" msgstr "" @@ -4338,7 +4347,7 @@ msgstr "" msgid "Expressions:" msgstr "" -#: cups/ppd-cache.c:3479 +#: cups/ppd-cache.c:3490 msgid "Extra Heavyweight Paper" msgstr "" @@ -4352,19 +4361,19 @@ msgstr "" msgid "FAIL" msgstr "" -#: cups/ppd-cache.c:3511 +#: cups/ppd-cache.c:3522 msgid "Fabric" msgstr "" -#: cups/ppd-cache.c:3774 +#: cups/ppd-cache.c:3804 msgid "Face Down" msgstr "" -#: cups/ppd-cache.c:3775 +#: cups/ppd-cache.c:3805 msgid "Face Up" msgstr "" -#: cups/ppd-cache.c:3653 +#: cups/ppd-cache.c:3670 msgid "Fast Grayscale" msgstr "" @@ -4402,11 +4411,11 @@ msgstr "" msgid "File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cups-files.conf\"." msgstr "" -#: cups/ppd-cache.c:3518 +#: cups/ppd-cache.c:3529 msgid "Film" msgstr "" -#: cups/ppd-cache.c:3504 +#: cups/ppd-cache.c:3515 msgid "Fine Envelope" msgstr "" @@ -4416,23 +4425,23 @@ msgstr "" msgid "Finished page %d." msgstr "" -#: cups/ppd-cache.c:3519 +#: cups/ppd-cache.c:3530 msgid "Flexo Base" msgstr "" -#: cups/ppd-cache.c:3520 +#: cups/ppd-cache.c:3531 msgid "Flexo Photo Polymer" msgstr "" -#: cups/ppd-cache.c:3521 +#: cups/ppd-cache.c:3532 msgid "Flute" msgstr "" -#: cups/ppd-cache.c:3522 +#: cups/ppd-cache.c:3533 msgid "Foil" msgstr "" -#: cups/ppd-cache.c:2992 cups/ppd-cache.c:3911 +#: cups/ppd-cache.c:2992 cups/ppd-cache.c:3970 msgid "Fold" msgstr "" @@ -4440,15 +4449,15 @@ msgstr "" msgid "Folio" msgstr "" -#: cups/http-support.c:1377 +#: cups/http-support.c:1523 msgid "Forbidden" msgstr "" -#: cups/http-support.c:1361 +#: cups/http-support.c:1507 msgid "Found" msgstr "" -#: cups/ppd-cache.c:3523 +#: cups/ppd-cache.c:3534 msgid "Full Cut Tabs" msgstr "" @@ -4456,7 +4465,7 @@ msgstr "" msgid "Gate Fold" msgstr "" -#: cups/ppd.c:783 cups/ppd.c:1341 +#: cups/ppd.c:785 cups/ppd.c:1343 msgid "General" msgstr "" @@ -4468,39 +4477,39 @@ msgstr "" msgid "Get-Response-PDU uses indefinite length" msgstr "" -#: cups/ppd-cache.c:3524 +#: cups/ppd-cache.c:3535 msgid "Glass" msgstr "" -#: cups/ppd-cache.c:3525 +#: cups/ppd-cache.c:3536 msgid "Glass Colored" msgstr "" -#: cups/ppd-cache.c:3526 +#: cups/ppd-cache.c:3537 msgid "Glass Opaque" msgstr "" -#: cups/ppd-cache.c:3527 +#: cups/ppd-cache.c:3538 msgid "Glass Surfaced" msgstr "" -#: cups/ppd-cache.c:3528 +#: cups/ppd-cache.c:3539 msgid "Glass Textured" msgstr "" -#: cups/ppd-cache.c:3473 +#: cups/ppd-cache.c:3484 msgid "Glossy Brochure Paper" msgstr "" -#: cups/ppd-cache.c:3513 +#: cups/ppd-cache.c:3524 msgid "Glossy Fabric" msgstr "" -#: cups/ppd-cache.c:3538 +#: cups/ppd-cache.c:3549 msgid "Glossy Labels" msgstr "" -#: cups/ppd-cache.c:3489 +#: cups/ppd-cache.c:3500 msgid "Glossy Optical Disc" msgstr "" @@ -4508,22 +4517,22 @@ msgstr "" msgid "Glossy Paper" msgstr "" -#: cups/ppd-cache.c:3563 +#: cups/ppd-cache.c:3574 msgid "Glossy Photo Paper" msgstr "" #: scheduler/ipp.c:2992 scheduler/ipp.c:3402 scheduler/ipp.c:3940 -#: scheduler/ipp.c:6272 scheduler/ipp.c:6419 scheduler/ipp.c:7915 -#: scheduler/ipp.c:9054 scheduler/ipp.c:9278 scheduler/ipp.c:9630 -#: scheduler/ipp.c:10243 +#: scheduler/ipp.c:6264 scheduler/ipp.c:6411 scheduler/ipp.c:7907 +#: scheduler/ipp.c:9046 scheduler/ipp.c:9270 scheduler/ipp.c:9622 +#: scheduler/ipp.c:10235 msgid "Got a printer-uri attribute but no job-id." msgstr "" -#: cups/ppd-cache.c:3529 +#: cups/ppd-cache.c:3540 msgid "Gravure Cylinder" msgstr "" -#: cups/ppd-cache.c:3664 ppdc/sample.c:275 +#: cups/ppd-cache.c:3682 ppdc/sample.c:275 msgid "Grayscale" msgstr "" @@ -4531,7 +4540,7 @@ msgstr "" msgid "HP" msgstr "" -#: cups/ppd-cache.c:3392 +#: cups/ppd-cache.c:3402 msgid "Hagaki" msgstr "" @@ -4551,15 +4560,15 @@ msgstr "" msgid "Hash buffer too small." msgstr "" -#: cups/ppd-cache.c:3594 +#: cups/ppd-cache.c:3605 msgid "Heavyweight Coated Paper" msgstr "" -#: cups/ppd-cache.c:3505 +#: cups/ppd-cache.c:3516 msgid "Heavyweight Envelope" msgstr "" -#: cups/ppd-cache.c:3593 +#: cups/ppd-cache.c:3604 msgid "Heavyweight Paper" msgstr "" @@ -4567,115 +4576,115 @@ msgstr "" msgid "Help file not in index." msgstr "" -#: cups/ppd-cache.c:4059 cups/ppd-cache.c:4121 cups/ppd-cache.c:4149 +#: cups/ppd-cache.c:4126 cups/ppd-cache.c:4195 cups/ppd-cache.c:4226 msgid "High" msgstr "" -#: cups/ppd-cache.c:3514 +#: cups/ppd-cache.c:3525 msgid "High Gloss Fabric" msgstr "" -#: cups/ppd-cache.c:3539 +#: cups/ppd-cache.c:3550 msgid "High Gloss Labels" msgstr "" -#: cups/ppd-cache.c:3490 +#: cups/ppd-cache.c:3501 msgid "High Gloss Optical Disc" msgstr "" -#: cups/ppd-cache.c:3564 +#: cups/ppd-cache.c:3575 msgid "High Gloss Photo Paper" msgstr "" -#: cups/ipp.c:3188 cups/ipp.c:3215 cups/ipp.c:3238 +#: cups/ipp.c:3097 cups/ipp.c:3124 cups/ipp.c:3147 msgid "IPP 1setOf attribute with incompatible value tags." msgstr "" -#: cups/ipp.c:3151 +#: cups/ipp.c:3060 msgid "IPP attribute has no name." msgstr "" -#: cups/ipp.c:7012 +#: cups/ipp.c:6932 msgid "IPP attribute is not a member of the message." msgstr "" -#: cups/ipp.c:3597 +#: cups/ipp.c:3510 msgid "IPP begCollection value not 0 bytes." msgstr "" -#: cups/ipp.c:3379 +#: cups/ipp.c:3288 msgid "IPP boolean value not 1 byte." msgstr "" -#: cups/ipp.c:3440 +#: cups/ipp.c:3353 msgid "IPP date value not 11 bytes." msgstr "" -#: cups/ipp.c:3618 +#: cups/ipp.c:3531 msgid "IPP endCollection value not 0 bytes." msgstr "" -#: cups/ipp.c:3354 +#: cups/ipp.c:3263 msgid "IPP enum value not 4 bytes." msgstr "" -#: cups/ipp.c:3074 +#: cups/ipp.c:2983 msgid "IPP extension tag larger than 0x7FFFFFFF." msgstr "" -#: cups/ipp.c:3351 +#: cups/ipp.c:3260 msgid "IPP integer value not 4 bytes." msgstr "" -#: cups/ipp.c:3550 +#: cups/ipp.c:3463 msgid "IPP language length overflows value." msgstr "" -#: cups/ipp.c:3559 +#: cups/ipp.c:3472 msgid "IPP language length too large." msgstr "" -#: cups/ipp.c:3265 +#: cups/ipp.c:3174 msgid "IPP member name is not empty." msgstr "" -#: cups/ipp.c:3644 +#: cups/ipp.c:3557 msgid "IPP memberName value is empty." msgstr "" -#: cups/ipp.c:3636 +#: cups/ipp.c:3549 msgid "IPP memberName with no attribute." msgstr "" -#: cups/ipp.c:3134 +#: cups/ipp.c:3043 msgid "IPP name larger than 32767 bytes." msgstr "" -#: cups/ipp.c:3517 +#: cups/ipp.c:3430 msgid "IPP nameWithLanguage value less than minimum 4 bytes." msgstr "" -#: cups/ipp.c:3674 +#: cups/ipp.c:3587 msgid "IPP octetString length too large." msgstr "" -#: cups/ipp.c:3485 +#: cups/ipp.c:3398 msgid "IPP rangeOfInteger value not 8 bytes." msgstr "" -#: cups/ipp.c:3458 +#: cups/ipp.c:3371 msgid "IPP resolution value not 9 bytes." msgstr "" -#: cups/ipp.c:3577 +#: cups/ipp.c:3490 msgid "IPP string length overflows value." msgstr "" -#: cups/ipp.c:3513 +#: cups/ipp.c:3426 msgid "IPP textWithLanguage value less than minimum 4 bytes." msgstr "" -#: cups/ipp.c:3337 +#: cups/ipp.c:3246 msgid "IPP value larger than 32767 bytes." msgstr "" @@ -4703,23 +4712,23 @@ msgstr "" msgid "Illegal whitespace character" msgstr "" -#: cups/ppd-cache.c:3530 +#: cups/ppd-cache.c:3541 msgid "Image Setter Paper" msgstr "" -#: cups/ppd-cache.c:3531 +#: cups/ppd-cache.c:3542 msgid "Imaging Cylinder" msgstr "" -#: cups/ppd-cache.c:3506 +#: cups/ppd-cache.c:3517 msgid "Inkjet Envelope" msgstr "" -#: cups/ppd-cache.c:3540 +#: cups/ppd-cache.c:3551 msgid "Inkjet Labels" msgstr "" -#: cups/ppd-cache.c:3595 +#: cups/ppd-cache.c:3606 msgid "Inkjet Paper" msgstr "" @@ -4739,7 +4748,7 @@ msgstr "" msgid "Intellitech" msgstr "" -#: cups/http-support.c:1404 +#: cups/http-support.c:1550 msgid "Internal Server Error" msgstr "" @@ -4759,7 +4768,7 @@ msgstr "" msgid "Internet Printing Protocol" msgstr "" -#: cups/ipp.c:3094 +#: cups/ipp.c:3003 msgid "Invalid group tag." msgstr "" @@ -4771,7 +4780,7 @@ msgstr "" msgid "Invalid media size." msgstr "" -#: scheduler/ipp.c:2719 scheduler/ipp.c:7086 +#: scheduler/ipp.c:2719 scheduler/ipp.c:7078 msgid "Invalid ppd-name value." msgstr "" @@ -4780,7 +4789,7 @@ msgstr "" msgid "Invalid printer command \"%s\"." msgstr "" -#: cups/ppd.c:1459 +#: cups/ppd.c:1461 msgid "JCL" msgstr "" @@ -4840,17 +4849,17 @@ msgstr "" msgid "JIS B9" msgstr "" -#: scheduler/ipp.c:9350 +#: scheduler/ipp.c:9342 #, c-format msgid "Job #%d cannot be restarted - no files." msgstr "" #: scheduler/ipp.c:3032 scheduler/ipp.c:3266 scheduler/ipp.c:3325 -#: scheduler/ipp.c:3504 scheduler/ipp.c:3950 scheduler/ipp.c:5931 -#: scheduler/ipp.c:6312 scheduler/ipp.c:6459 scheduler/ipp.c:6796 -#: scheduler/ipp.c:7756 scheduler/ipp.c:7778 scheduler/ipp.c:7956 -#: scheduler/ipp.c:8184 scheduler/ipp.c:8227 scheduler/ipp.c:9094 -#: scheduler/ipp.c:9318 scheduler/ipp.c:9670 scheduler/ipp.c:10283 +#: scheduler/ipp.c:3504 scheduler/ipp.c:3950 scheduler/ipp.c:5923 +#: scheduler/ipp.c:6304 scheduler/ipp.c:6451 scheduler/ipp.c:6788 +#: scheduler/ipp.c:7748 scheduler/ipp.c:7770 scheduler/ipp.c:7948 +#: scheduler/ipp.c:8176 scheduler/ipp.c:8219 scheduler/ipp.c:9086 +#: scheduler/ipp.c:9310 scheduler/ipp.c:9662 scheduler/ipp.c:10275 #, c-format msgid "Job #%d does not exist." msgstr "" @@ -4870,12 +4879,12 @@ msgstr "" msgid "Job #%d is already completed - can't cancel." msgstr "" -#: scheduler/ipp.c:7982 scheduler/ipp.c:8269 scheduler/ipp.c:10298 +#: scheduler/ipp.c:7974 scheduler/ipp.c:8261 scheduler/ipp.c:10290 #, c-format msgid "Job #%d is finished and cannot be altered." msgstr "" -#: scheduler/ipp.c:9332 +#: scheduler/ipp.c:9324 #, c-format msgid "Job #%d is not complete." msgstr "" @@ -4885,7 +4894,7 @@ msgstr "" msgid "Job #%d is not held for authentication." msgstr "" -#: scheduler/ipp.c:9108 +#: scheduler/ipp.c:9100 #, c-format msgid "Job #%d is not held." msgstr "" @@ -4906,7 +4915,7 @@ msgstr "" msgid "Job Stopped" msgstr "" -#: scheduler/ipp.c:10412 +#: scheduler/ipp.c:10404 msgid "Job is completed and cannot be changed." msgstr "" @@ -4914,11 +4923,11 @@ msgstr "" msgid "Job operation failed" msgstr "" -#: scheduler/ipp.c:10448 scheduler/ipp.c:10465 scheduler/ipp.c:10476 +#: scheduler/ipp.c:10440 scheduler/ipp.c:10457 scheduler/ipp.c:10468 msgid "Job state cannot be changed." msgstr "" -#: scheduler/ipp.c:9198 +#: scheduler/ipp.c:9190 msgid "Job subscriptions cannot be renewed." msgstr "" @@ -4942,7 +4951,7 @@ msgstr "" msgid "Label Top" msgstr "" -#: cups/ppd-cache.c:3536 +#: cups/ppd-cache.c:3547 msgid "Labels" msgstr "" @@ -4950,11 +4959,11 @@ msgstr "" msgid "Laminate" msgstr "" -#: cups/ppd-cache.c:3546 +#: cups/ppd-cache.c:3557 msgid "Laminating Foil" msgstr "" -#: scheduler/ipp.c:2085 scheduler/ipp.c:5835 +#: scheduler/ipp.c:2085 scheduler/ipp.c:5827 #, c-format msgid "Language \"%s\" not supported." msgstr "" @@ -4963,11 +4972,11 @@ msgstr "" msgid "Large Address" msgstr "" -#: cups/ppd-cache.c:3387 +#: cups/ppd-cache.c:3397 msgid "Large Capacity" msgstr "" -#: cups/ppd-cache.c:3776 +#: cups/ppd-cache.c:3806 msgid "Large Capacity Tray" msgstr "" @@ -4975,7 +4984,7 @@ msgstr "" msgid "LaserJet Series PCL 4/5" msgstr "" -#: cups/ppd-cache.c:3399 +#: cups/ppd-cache.c:3409 msgid "Left" msgstr "" @@ -4983,7 +4992,7 @@ msgstr "" msgid "Left Gate Fold" msgstr "" -#: cups/ppd-cache.c:3777 +#: cups/ppd-cache.c:3807 msgid "Left Tray" msgstr "" @@ -4999,7 +5008,7 @@ msgstr "" msgid "Letter Oversize Long Edge" msgstr "" -#: cups/ppd-cache.c:3547 cups/ppd-cache.c:3596 +#: cups/ppd-cache.c:3558 cups/ppd-cache.c:3607 msgid "Letterhead" msgstr "" @@ -5007,11 +5016,11 @@ msgstr "" msgid "Light" msgstr "" -#: cups/ppd-cache.c:3507 +#: cups/ppd-cache.c:3518 msgid "Lightweight Envelope" msgstr "" -#: cups/ppd-cache.c:3597 +#: cups/ppd-cache.c:3608 msgid "Lightweight Paper" msgstr "" @@ -5019,7 +5028,7 @@ msgstr "" msgid "Line longer than the maximum allowed (255 characters)" msgstr "" -#: cgi-bin/admin.c:2377 +#: cgi-bin/admin.c:2378 msgid "List Available Printers" msgstr "" @@ -5027,67 +5036,67 @@ msgstr "" msgid "Load paper." msgstr "" -#: scheduler/ipp.c:5544 +#: scheduler/ipp.c:5536 msgid "Local printer created." msgstr "" -#: cups/ppd-cache.c:3711 ppdc/sample.c:264 +#: cups/ppd-cache.c:3735 ppdc/sample.c:264 msgid "Long-Edge (Portrait)" msgstr "" -#: cups/http-support.c:1731 +#: cups/http-support.c:1877 msgid "Looking for printer." msgstr "" -#: cups/ppd-cache.c:3778 +#: cups/ppd-cache.c:3808 msgid "Mailbox 1" msgstr "" -#: cups/ppd-cache.c:3787 +#: cups/ppd-cache.c:3817 msgid "Mailbox 10" msgstr "" -#: cups/ppd-cache.c:3779 +#: cups/ppd-cache.c:3809 msgid "Mailbox 2" msgstr "" -#: cups/ppd-cache.c:3780 +#: cups/ppd-cache.c:3810 msgid "Mailbox 3" msgstr "" -#: cups/ppd-cache.c:3781 +#: cups/ppd-cache.c:3811 msgid "Mailbox 4" msgstr "" -#: cups/ppd-cache.c:3782 +#: cups/ppd-cache.c:3812 msgid "Mailbox 5" msgstr "" -#: cups/ppd-cache.c:3783 +#: cups/ppd-cache.c:3813 msgid "Mailbox 6" msgstr "" -#: cups/ppd-cache.c:3784 +#: cups/ppd-cache.c:3814 msgid "Mailbox 7" msgstr "" -#: cups/ppd-cache.c:3785 +#: cups/ppd-cache.c:3815 msgid "Mailbox 8" msgstr "" -#: cups/ppd-cache.c:3786 +#: cups/ppd-cache.c:3816 msgid "Mailbox 9" msgstr "" -#: cups/ppd-cache.c:3385 +#: cups/ppd-cache.c:3395 msgid "Main" msgstr "" -#: cups/ppd-cache.c:3393 +#: cups/ppd-cache.c:3403 msgid "Main Roll" msgstr "" -#: cups/ppd-cache.c:3388 +#: cups/ppd-cache.c:3398 msgid "Manual" msgstr "" @@ -5095,35 +5104,35 @@ msgstr "" msgid "Manual Feed" msgstr "" -#: cups/ppd-cache.c:3474 +#: cups/ppd-cache.c:3485 msgid "Matte Brochure Paper" msgstr "" -#: cups/ppd-cache.c:3475 +#: cups/ppd-cache.c:3486 msgid "Matte Cover Paper" msgstr "" -#: cups/ppd-cache.c:3515 +#: cups/ppd-cache.c:3526 msgid "Matte Fabric" msgstr "" -#: cups/ppd-cache.c:3541 +#: cups/ppd-cache.c:3552 msgid "Matte Labels" msgstr "" -#: cups/ppd-cache.c:3491 +#: cups/ppd-cache.c:3502 msgid "Matte Optical Disc" msgstr "" -#: cups/ppd-cache.c:3565 +#: cups/ppd-cache.c:3576 msgid "Matte Photo Paper" msgstr "" -#: cups/ppd.c:830 cups/ppd.c:1396 +#: cups/ppd.c:832 cups/ppd.c:1398 msgid "Media Size" msgstr "" -#: cups/ppd.c:834 cups/ppd.c:1400 ppdc/sample.c:254 +#: cups/ppd.c:836 cups/ppd.c:1402 ppdc/sample.c:254 msgid "Media Source" msgstr "" @@ -5131,7 +5140,7 @@ msgstr "" msgid "Media Tracking" msgstr "" -#: cups/ppd.c:832 cups/ppd.c:1398 ppdc/sample.c:280 +#: cups/ppd.c:834 cups/ppd.c:1400 ppdc/sample.c:280 msgid "Media Type" msgstr "" @@ -5143,35 +5152,35 @@ msgstr "" msgid "Memory allocation error" msgstr "" -#: cups/ppd-cache.c:3548 +#: cups/ppd-cache.c:3559 msgid "Metal" msgstr "" -#: cups/ppd-cache.c:3549 +#: cups/ppd-cache.c:3560 msgid "Metal Glossy" msgstr "" -#: cups/ppd-cache.c:3550 +#: cups/ppd-cache.c:3561 msgid "Metal High Gloss" msgstr "" -#: cups/ppd-cache.c:3551 +#: cups/ppd-cache.c:3562 msgid "Metal Matte" msgstr "" -#: cups/ppd-cache.c:3552 +#: cups/ppd-cache.c:3563 msgid "Metal Satin" msgstr "" -#: cups/ppd-cache.c:3553 +#: cups/ppd-cache.c:3564 msgid "Metal Semi Gloss" msgstr "" -#: cups/ppd-cache.c:3481 +#: cups/ppd-cache.c:3492 msgid "Mid-Weight Paper" msgstr "" -#: cups/ppd-cache.c:3396 cups/ppd-cache.c:3788 +#: cups/ppd-cache.c:3406 cups/ppd-cache.c:3818 msgid "Middle" msgstr "" @@ -5179,6 +5188,10 @@ msgstr "" msgid "Missing CloseGroup" msgstr "" +#: cups/ppd.c:338 +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + #: cups/ppd.c:317 msgid "Missing PPD-Adobe-4.x header" msgstr "" @@ -5187,7 +5200,7 @@ msgstr "" msgid "Missing asterisk in column 1" msgstr "" -#: scheduler/ipp.c:6335 +#: scheduler/ipp.c:6327 msgid "Missing document-number attribute." msgstr "" @@ -5196,13 +5209,13 @@ msgstr "" msgid "Missing double quote on line %d." msgstr "" -#: cgi-bin/admin.c:710 cgi-bin/admin.c:2090 cgi-bin/admin.c:2175 -#: cgi-bin/admin.c:2769 cgi-bin/admin.c:3023 cgi-bin/admin.c:3134 -#: cgi-bin/admin.c:3844 +#: cgi-bin/admin.c:710 cgi-bin/admin.c:2091 cgi-bin/admin.c:2176 +#: cgi-bin/admin.c:2770 cgi-bin/admin.c:3024 cgi-bin/admin.c:3135 +#: cgi-bin/admin.c:3845 msgid "Missing form variable" msgstr "" -#: scheduler/ipp.c:9724 +#: scheduler/ipp.c:9716 msgid "Missing last-document attribute in request." msgstr "" @@ -5214,7 +5227,7 @@ msgstr "" msgid "Missing media-size in media-col." msgstr "" -#: scheduler/ipp.c:6936 +#: scheduler/ipp.c:6928 msgid "Missing notify-subscription-ids attribute." msgstr "" @@ -5226,7 +5239,7 @@ msgstr "" msgid "Missing requesting-user-name attribute." msgstr "" -#: scheduler/ipp.c:5461 scheduler/ipp.c:5487 +#: scheduler/ipp.c:5453 scheduler/ipp.c:5479 #, c-format msgid "Missing required attribute \"%s\"." msgstr "" @@ -5235,11 +5248,11 @@ msgstr "" msgid "Missing required attributes." msgstr "" -#: cups/http-support.c:1494 +#: cups/http-support.c:1640 msgid "Missing resource in URI" msgstr "" -#: cups/http-support.c:1488 +#: cups/http-support.c:1634 msgid "Missing scheme in URI" msgstr "" @@ -5281,7 +5294,7 @@ msgstr "" msgid "Modify Printer" msgstr "" -#: cups/ppd-cache.c:3554 +#: cups/ppd-cache.c:3565 msgid "Mounting Tape" msgstr "" @@ -5293,15 +5306,15 @@ msgstr "" msgid "Move Job" msgstr "" -#: cups/http-support.c:1358 +#: cups/http-support.c:1504 msgid "Moved Permanently" msgstr "" -#: cups/ppd-cache.c:3555 +#: cups/ppd-cache.c:3566 msgid "Multi Layer" msgstr "" -#: cups/ppd-cache.c:3556 +#: cups/ppd-cache.c:3567 msgid "Multi Part Form" msgstr "" @@ -5321,15 +5334,15 @@ msgstr "" msgid "Multi-Hole Punch (Reverse Portrait)" msgstr "" -#: cups/ppd-cache.c:3403 +#: cups/ppd-cache.c:3413 msgid "Multipurpose" msgstr "" -#: cups/ppd-cache.c:3480 +#: cups/ppd-cache.c:3491 msgid "Multipurpose Paper" msgstr "" -#: cups/ppd-cache.c:3789 +#: cups/ppd-cache.c:3819 msgid "My Mailbox" msgstr "" @@ -5357,11 +5370,11 @@ msgstr "" msgid "New credentials are older than stored credentials." msgstr "" -#: cups/ppd.c:1987 +#: cups/ppd.c:2010 msgid "No" msgstr "" -#: cups/http-support.c:1355 +#: cups/http-support.c:1501 msgid "No Content" msgstr "" @@ -5381,7 +5394,7 @@ msgstr "" msgid "No Windows printer drivers are installed." msgstr "" -#: cups/request.c:553 cups/request.c:913 +#: cups/request.c:553 cups/request.c:925 msgid "No active connection" msgstr "" @@ -5410,11 +5423,11 @@ msgstr "" msgid "No community name" msgstr "" -#: scheduler/ipp.c:6135 +#: scheduler/ipp.c:6127 msgid "No default printer." msgstr "" -#: cgi-bin/ipp-var.c:422 scheduler/ipp.c:7516 +#: cgi-bin/ipp-var.c:422 scheduler/ipp.c:7508 msgid "No destinations added." msgstr "" @@ -5430,7 +5443,7 @@ msgstr "" msgid "No error-status" msgstr "" -#: scheduler/ipp.c:8474 scheduler/ipp.c:9738 +#: scheduler/ipp.c:8466 scheduler/ipp.c:9730 msgid "No file in print request." msgstr "" @@ -5459,15 +5472,15 @@ msgstr "" msgid "No printer-uri found for class" msgstr "" -#: scheduler/ipp.c:6542 +#: scheduler/ipp.c:6534 msgid "No printer-uri in request." msgstr "" -#: cups/http.c:2244 +#: cups/http.c:2245 msgid "No request URI." msgstr "" -#: cups/http.c:2261 +#: cups/http.c:2262 msgid "No request protocol version." msgstr "" @@ -5483,11 +5496,11 @@ msgstr "" msgid "No stored credentials, not valid for name." msgstr "" -#: scheduler/ipp.c:5720 +#: scheduler/ipp.c:5712 msgid "No subscription attributes in request." msgstr "" -#: scheduler/ipp.c:7855 +#: scheduler/ipp.c:7847 msgid "No subscriptions found." msgstr "" @@ -5507,20 +5520,20 @@ msgstr "" msgid "Non-continuous (Web sensing)" msgstr "" -#: cups/ppd-cache.c:3867 cups/ppd-cache.c:3914 cups/ppd-cache.c:3961 +#: cups/ppd-cache.c:3923 cups/ppd-cache.c:3973 cups/ppd-cache.c:4023 msgid "None" msgstr "" -#: cups/ppd-cache.c:4057 cups/ppd-cache.c:4117 cups/ppd-cache.c:4147 +#: cups/ppd-cache.c:4123 cups/ppd-cache.c:4189 cups/ppd-cache.c:4223 #: ppdc/sample.c:238 msgid "Normal" msgstr "" -#: cups/http-support.c:1380 +#: cups/http-support.c:1526 msgid "Not Found" msgstr "" -#: cups/http-support.c:1392 +#: cups/http-support.c:1538 msgid "Not Implemented" msgstr "" @@ -5528,15 +5541,15 @@ msgstr "" msgid "Not Installed" msgstr "" -#: cups/http-support.c:1367 +#: cups/http-support.c:1513 msgid "Not Modified" msgstr "" -#: cups/http-support.c:1395 +#: cups/http-support.c:1541 msgid "Not Supported" msgstr "" -#: scheduler/ipp.c:1520 scheduler/ipp.c:11009 +#: scheduler/ipp.c:1520 scheduler/ipp.c:11001 msgid "Not allowed to print." msgstr "" @@ -5548,15 +5561,15 @@ msgstr "" msgid "Note: this program only validates the DSC comments, not the PostScript itself." msgstr "" -#: cups/http-support.c:1346 cups/http-support.c:1485 cups/ppd.c:313 +#: cups/http-support.c:1492 cups/http-support.c:1631 cups/ppd.c:313 msgid "OK" msgstr "" -#: cups/ppd-cache.c:3711 ppdc/sample.c:263 +#: cups/ppd-cache.c:3735 ppdc/sample.c:263 msgid "Off (1-Sided)" msgstr "" -#: cups/ppd-cache.c:3476 +#: cups/ppd-cache.c:3487 msgid "Office Recycled Paper" msgstr "" @@ -5568,7 +5581,7 @@ msgstr "" msgid "Online Help" msgstr "" -#: scheduler/ipp.c:5440 +#: scheduler/ipp.c:5432 msgid "Only local users can create a local printer." msgstr "" @@ -5585,11 +5598,11 @@ msgstr "" msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first" msgstr "" -#: cgi-bin/admin.c:3615 +#: cgi-bin/admin.c:3616 msgid "Operation Policy" msgstr "" -#: cups/ppd-cache.c:3488 +#: cups/ppd-cache.c:3499 msgid "Optical Disc" msgstr "" @@ -5598,11 +5611,11 @@ msgstr "" msgid "Option \"%s\" cannot be included via %%%%IncludeFeature." msgstr "" -#: cgi-bin/admin.c:3265 cgi-bin/admin.c:3349 +#: cgi-bin/admin.c:3266 cgi-bin/admin.c:3350 msgid "Options Installed" msgstr "" -#: scheduler/cupsfilter.c:1480 scheduler/main.c:2101 systemv/cupsaddsmb.c:276 +#: scheduler/cupsfilter.c:1480 scheduler/main.c:2103 systemv/cupsaddsmb.c:276 #: systemv/cupsctl.c:196 systemv/cupstestdsc.c:421 systemv/cupstestppd.c:3859 #: test/ippfind.c:2802 test/ipptool.c:5063 ppdc/ppdc.cxx:430 #: ppdc/ppdhtml.cxx:177 ppdc/ppdi.cxx:123 ppdc/ppdmerge.cxx:361 @@ -5610,7 +5623,7 @@ msgstr "" msgid "Options:" msgstr "" -#: cups/ppd-cache.c:3557 +#: cups/ppd-cache.c:3568 msgid "Other" msgstr "" @@ -5622,7 +5635,7 @@ msgstr "" msgid "Out of memory." msgstr "" -#: cups/ppd.c:836 cups/ppd.c:1402 +#: cups/ppd.c:838 cups/ppd.c:1404 msgid "Output Mode" msgstr "" @@ -5678,7 +5691,7 @@ msgstr "" msgid "Packet does not start with SEQUENCE" msgstr "" -#: cups/ppd-cache.c:3558 +#: cups/ppd-cache.c:3569 msgid "Paper" msgstr "" @@ -5710,7 +5723,7 @@ msgstr "" msgid "ParamCustominTearInterval" msgstr "" -#: cups/auth.c:224 cups/auth.c:480 +#: cups/auth.c:222 cups/auth.c:370 #, c-format msgid "Password for %s on %s? " msgstr "" @@ -5732,15 +5745,15 @@ msgstr "" msgid "Peel-Off" msgstr "" -#: cups/ppd-cache.c:3542 +#: cups/ppd-cache.c:3553 msgid "Permanent Labels" msgstr "" -#: cups/ppd-cache.c:3391 ppdc/sample.c:160 +#: cups/ppd-cache.c:3401 ppdc/sample.c:160 msgid "Photo" msgstr "" -#: cups/ppd-cache.c:3562 +#: cups/ppd-cache.c:3573 msgid "Photo Film" msgstr "" @@ -5748,71 +5761,71 @@ msgstr "" msgid "Photo Labels" msgstr "" -#: cups/ppd-cache.c:3559 cups/ppd-cache.c:3560 +#: cups/ppd-cache.c:3570 cups/ppd-cache.c:3571 msgid "Photo Paper" msgstr "" -#: cups/ppd-cache.c:3532 cups/ppd-cache.c:3534 +#: cups/ppd-cache.c:3543 cups/ppd-cache.c:3545 msgid "Photo Paper Plus Glossy II" msgstr "" -#: cups/ppd-cache.c:3533 cups/ppd-cache.c:3535 +#: cups/ppd-cache.c:3544 cups/ppd-cache.c:3546 msgid "Photo Paper Pro Platinum" msgstr "" -#: cups/ppd-cache.c:3508 +#: cups/ppd-cache.c:3519 msgid "Plain Envelope" msgstr "" -#: cups/ppd-cache.c:3588 ppdc/sample.c:281 +#: cups/ppd-cache.c:3599 ppdc/sample.c:281 msgid "Plain Paper" msgstr "" -#: cups/ppd-cache.c:3568 +#: cups/ppd-cache.c:3579 msgid "Plastic" msgstr "" -#: cups/ppd-cache.c:3569 +#: cups/ppd-cache.c:3580 msgid "Plastic Archival" msgstr "" -#: cups/ppd-cache.c:3570 +#: cups/ppd-cache.c:3581 msgid "Plastic Colored" msgstr "" -#: cups/ppd-cache.c:3571 +#: cups/ppd-cache.c:3582 msgid "Plastic Glossy" msgstr "" -#: cups/ppd-cache.c:3572 +#: cups/ppd-cache.c:3583 msgid "Plastic High Gloss" msgstr "" -#: cups/ppd-cache.c:3573 +#: cups/ppd-cache.c:3584 msgid "Plastic Matte" msgstr "" -#: cups/ppd-cache.c:3574 +#: cups/ppd-cache.c:3585 msgid "Plastic Satin" msgstr "" -#: cups/ppd-cache.c:3575 +#: cups/ppd-cache.c:3586 msgid "Plastic Semi Gloss" msgstr "" -#: cups/ppd-cache.c:3576 +#: cups/ppd-cache.c:3587 msgid "Plate" msgstr "" -#: cgi-bin/admin.c:3283 cgi-bin/admin.c:3564 +#: cgi-bin/admin.c:3284 cgi-bin/admin.c:3565 msgid "Policies" msgstr "" -#: cups/ppd-cache.c:3577 +#: cups/ppd-cache.c:3588 msgid "Polyester" msgstr "" -#: cgi-bin/admin.c:3290 cgi-bin/admin.c:3633 cgi-bin/admin.c:3646 +#: cgi-bin/admin.c:3291 cgi-bin/admin.c:3634 cgi-bin/admin.c:3647 msgid "Port Monitor" msgstr "" @@ -5840,19 +5853,19 @@ msgstr "" msgid "Poster Fold" msgstr "" -#: cups/ppd-cache.c:3578 +#: cups/ppd-cache.c:3589 msgid "Pre Cut Tabs" msgstr "" -#: cups/ppd-cache.c:3482 +#: cups/ppd-cache.c:3493 msgid "Premium Inkjet Paper" msgstr "" -#: cups/ppd-cache.c:3483 +#: cups/ppd-cache.c:3494 msgid "Premium Photo Glossy Paper" msgstr "" -#: cups/ppd-cache.c:3484 +#: cups/ppd-cache.c:3495 msgid "Premium Presentation Matte Paper" msgstr "" @@ -5860,11 +5873,11 @@ msgstr "" msgid "Preparing to print." msgstr "" -#: cups/ppd-cache.c:3509 +#: cups/ppd-cache.c:3520 msgid "Preprinted Envelope" msgstr "" -#: cups/ppd-cache.c:3598 +#: cups/ppd-cache.c:3609 msgid "Preprinted Paper" msgstr "" @@ -5880,7 +5893,7 @@ msgstr "" msgid "Print Mode" msgstr "" -#: cups/ppd-cache.c:4052 cups/ppd-cache.c:4110 cups/ppd-cache.c:4144 +#: cups/ppd-cache.c:4117 cups/ppd-cache.c:4179 cups/ppd-cache.c:4219 msgid "Print Quality" msgstr "" @@ -5912,19 +5925,19 @@ msgstr "" msgid "Print file sent." msgstr "" -#: backend/ipp.c:2238 +#: backend/ipp.c:2245 msgid "Print job canceled at printer." msgstr "" -#: backend/ipp.c:2230 +#: backend/ipp.c:2237 msgid "Print job too large." msgstr "" -#: backend/ipp.c:1699 +#: backend/ipp.c:1706 msgid "Print job was not accepted." msgstr "" -#: scheduler/ipp.c:5506 +#: scheduler/ipp.c:5498 #, c-format msgid "Printer \"%s\" already exists." msgstr "" @@ -5953,15 +5966,15 @@ msgstr "" msgid "Printer Settings" msgstr "" -#: backend/ipp.c:2233 +#: backend/ipp.c:2240 msgid "Printer cannot print supplied content." msgstr "" -#: backend/ipp.c:2236 +#: backend/ipp.c:2243 msgid "Printer cannot print with supplied options." msgstr "" -#: cups/ppd-cache.c:4171 +#: cups/ppd-cache.c:4248 msgid "Printer does not support required IPP attributes or document formats." msgstr "" @@ -5979,11 +5992,11 @@ msgstr "" msgid "Printing page %d, %u%% complete." msgstr "" -#: cups/ppd-cache.c:3007 cups/ppd-cache.c:3958 +#: cups/ppd-cache.c:3007 cups/ppd-cache.c:4020 msgid "Punch" msgstr "" -#: cups/ppd-cache.c:3599 +#: cups/ppd-cache.c:3610 msgid "Punched Paper" msgstr "" @@ -5991,7 +6004,7 @@ msgstr "" msgid "Quarto" msgstr "" -#: scheduler/ipp.c:1515 scheduler/ipp.c:11004 +#: scheduler/ipp.c:1515 scheduler/ipp.c:10996 msgid "Quota limit reached." msgstr "" @@ -5999,11 +6012,11 @@ msgstr "" msgid "Rank Owner Job File(s) Total Size" msgstr "" -#: cups/ppd-cache.c:3402 +#: cups/ppd-cache.c:3412 msgid "Rear" msgstr "" -#: cups/ppd-cache.c:3790 +#: cups/ppd-cache.c:3820 msgid "Rear Tray" msgstr "" @@ -6025,11 +6038,11 @@ msgstr "" msgid "Reprint After Error" msgstr "" -#: cups/http-support.c:1383 +#: cups/http-support.c:1529 msgid "Request Entity Too Large" msgstr "" -#: cups/ppd.c:838 cups/ppd.c:1404 ppdc/sample.c:231 +#: cups/ppd.c:840 cups/ppd.c:1406 ppdc/sample.c:231 msgid "Resolution" msgstr "" @@ -6049,7 +6062,7 @@ msgstr "" msgid "Rewind" msgstr "" -#: cups/ppd-cache.c:3400 +#: cups/ppd-cache.c:3410 msgid "Right" msgstr "" @@ -6057,51 +6070,51 @@ msgstr "" msgid "Right Gate Fold" msgstr "" -#: cups/ppd-cache.c:3791 +#: cups/ppd-cache.c:3821 msgid "Right Tray" msgstr "" -#: cups/ppd-cache.c:3579 +#: cups/ppd-cache.c:3590 msgid "Roll" msgstr "" -#: cups/ppd-cache.c:3424 +#: cups/ppd-cache.c:3434 msgid "Roll 1" msgstr "" -#: cups/ppd-cache.c:3433 +#: cups/ppd-cache.c:3443 msgid "Roll 10" msgstr "" -#: cups/ppd-cache.c:3425 +#: cups/ppd-cache.c:3435 msgid "Roll 2" msgstr "" -#: cups/ppd-cache.c:3426 +#: cups/ppd-cache.c:3436 msgid "Roll 3" msgstr "" -#: cups/ppd-cache.c:3427 +#: cups/ppd-cache.c:3437 msgid "Roll 4" msgstr "" -#: cups/ppd-cache.c:3428 +#: cups/ppd-cache.c:3438 msgid "Roll 5" msgstr "" -#: cups/ppd-cache.c:3429 +#: cups/ppd-cache.c:3439 msgid "Roll 6" msgstr "" -#: cups/ppd-cache.c:3430 +#: cups/ppd-cache.c:3440 msgid "Roll 7" msgstr "" -#: cups/ppd-cache.c:3431 +#: cups/ppd-cache.c:3441 msgid "Roll 8" msgstr "" -#: cups/ppd-cache.c:3432 +#: cups/ppd-cache.c:3442 msgid "Roll 9" msgstr "" @@ -6114,7 +6127,7 @@ msgstr "" msgid "SEQUENCE uses indefinite length" msgstr "" -#: cups/http-support.c:1407 +#: cups/http-support.c:1553 msgid "SSL/TLS Negotiation Error" msgstr "" @@ -6122,43 +6135,43 @@ msgstr "" msgid "Saddle Stitch" msgstr "" -#: cups/ppd-cache.c:3543 +#: cups/ppd-cache.c:3554 msgid "Satin Labels" msgstr "" -#: cups/ppd-cache.c:3492 +#: cups/ppd-cache.c:3503 msgid "Satin Optical Disc" msgstr "" -#: cups/ppd-cache.c:3566 +#: cups/ppd-cache.c:3577 msgid "Satin Photo Paper" msgstr "" -#: cups/ppd-cache.c:3580 +#: cups/ppd-cache.c:3591 msgid "Screen" msgstr "" -#: cups/ppd-cache.c:3581 +#: cups/ppd-cache.c:3592 msgid "Screen Paged" msgstr "" -#: cups/ppd-cache.c:3544 +#: cups/ppd-cache.c:3555 msgid "Security Labels" msgstr "" -#: cups/http-support.c:1364 +#: cups/http-support.c:1510 msgid "See Other" msgstr "" -#: scheduler/ipp.c:7140 scheduler/ipp.c:7159 +#: scheduler/ipp.c:7132 scheduler/ipp.c:7151 msgid "See remote printer." msgstr "" -#: cups/ppd-cache.c:3582 +#: cups/ppd-cache.c:3593 msgid "Self Adhesive" msgstr "" -#: cups/ppd-cache.c:3583 +#: cups/ppd-cache.c:3594 msgid "Self Adhesive Film" msgstr "" @@ -6166,19 +6179,19 @@ msgstr "" msgid "Self-signed credentials are blocked." msgstr "" -#: cups/ppd-cache.c:3516 +#: cups/ppd-cache.c:3527 msgid "Semi-Gloss Fabric" msgstr "" -#: cups/ppd-cache.c:3545 +#: cups/ppd-cache.c:3556 msgid "Semi-Gloss Labels" msgstr "" -#: cups/ppd-cache.c:3493 +#: cups/ppd-cache.c:3504 msgid "Semi-Gloss Optical Disc" msgstr "" -#: cups/ppd-cache.c:3567 +#: cups/ppd-cache.c:3578 msgid "Semi-Gloss Photo Paper" msgstr "" @@ -6206,28 +6219,28 @@ msgstr "" msgid "Server credentials not set." msgstr "" -#: cups/http-support.c:1401 +#: cups/http-support.c:1547 msgid "Service Unavailable" msgstr "" -#: cgi-bin/admin.c:2770 cgi-bin/admin.c:2816 cgi-bin/admin.c:2973 -#: cgi-bin/admin.c:2992 +#: cgi-bin/admin.c:2771 cgi-bin/admin.c:2817 cgi-bin/admin.c:2974 +#: cgi-bin/admin.c:2993 msgid "Set Allowed Users" msgstr "" -#: cgi-bin/admin.c:3019 +#: cgi-bin/admin.c:3020 msgid "Set As Server Default" msgstr "" -#: cgi-bin/admin.c:3119 +#: cgi-bin/admin.c:3120 msgid "Set Class Options" msgstr "" -#: cgi-bin/admin.c:3119 cgi-bin/admin.c:3293 cgi-bin/admin.c:3675 +#: cgi-bin/admin.c:3120 cgi-bin/admin.c:3294 cgi-bin/admin.c:3676 msgid "Set Printer Options" msgstr "" -#: cgi-bin/admin.c:3845 cgi-bin/admin.c:3889 cgi-bin/admin.c:3907 +#: cgi-bin/admin.c:3846 cgi-bin/admin.c:3890 cgi-bin/admin.c:3908 msgid "Set Publishing" msgstr "" @@ -6235,23 +6248,23 @@ msgstr "" msgid "Shipping Address" msgstr "" -#: cups/ppd-cache.c:3711 ppdc/sample.c:265 +#: cups/ppd-cache.c:3735 ppdc/sample.c:265 msgid "Short-Edge (Landscape)" msgstr "" -#: cups/ppd-cache.c:3584 +#: cups/ppd-cache.c:3595 msgid "Shrink Foil" msgstr "" -#: cups/ppd-cache.c:3398 +#: cups/ppd-cache.c:3408 msgid "Side" msgstr "" -#: cups/ppd-cache.c:3792 +#: cups/ppd-cache.c:3822 msgid "Side Tray" msgstr "" -#: cups/ppd-cache.c:3585 +#: cups/ppd-cache.c:3596 msgid "Single Face" msgstr "" @@ -6287,11 +6300,11 @@ msgstr "" msgid "Single Staple (Reverse Portrait)" msgstr "" -#: cups/ppd-cache.c:3586 +#: cups/ppd-cache.c:3597 msgid "Single Wall Cardboard" msgstr "" -#: cups/ppd-cache.c:3587 +#: cups/ppd-cache.c:3598 msgid "Sleeve" msgstr "" @@ -6304,43 +6317,43 @@ msgstr "" msgid "Spooling job, %.0f%% complete." msgstr "" -#: cups/ppd-cache.c:3793 +#: cups/ppd-cache.c:3823 msgid "Stacker 1" msgstr "" -#: cups/ppd-cache.c:3802 +#: cups/ppd-cache.c:3832 msgid "Stacker 10" msgstr "" -#: cups/ppd-cache.c:3794 +#: cups/ppd-cache.c:3824 msgid "Stacker 2" msgstr "" -#: cups/ppd-cache.c:3795 +#: cups/ppd-cache.c:3825 msgid "Stacker 3" msgstr "" -#: cups/ppd-cache.c:3796 +#: cups/ppd-cache.c:3826 msgid "Stacker 4" msgstr "" -#: cups/ppd-cache.c:3797 +#: cups/ppd-cache.c:3827 msgid "Stacker 5" msgstr "" -#: cups/ppd-cache.c:3798 +#: cups/ppd-cache.c:3828 msgid "Stacker 6" msgstr "" -#: cups/ppd-cache.c:3799 +#: cups/ppd-cache.c:3829 msgid "Stacker 7" msgstr "" -#: cups/ppd-cache.c:3800 +#: cups/ppd-cache.c:3830 msgid "Stacker 8" msgstr "" -#: cups/ppd-cache.c:3801 +#: cups/ppd-cache.c:3831 msgid "Stacker 9" msgstr "" @@ -6348,7 +6361,7 @@ msgstr "" msgid "Standard" msgstr "" -#: cups/ppd-cache.c:3029 cups/ppd-cache.c:3864 +#: cups/ppd-cache.c:3029 cups/ppd-cache.c:3920 msgid "Staple" msgstr "" @@ -6373,7 +6386,7 @@ msgid "Staple Edge (Reverse Portrait)" msgstr "" #. TRANSLATORS: Banner/cover sheet before the print job. -#: cgi-bin/admin.c:3536 +#: cgi-bin/admin.c:3537 msgid "Starting Banner" msgstr "" @@ -6387,8 +6400,8 @@ msgstr "" msgid "Statement" msgstr "" -#: scheduler/ipp.c:3599 scheduler/ipp.c:6952 scheduler/ipp.c:7662 -#: scheduler/ipp.c:9186 +#: scheduler/ipp.c:3599 scheduler/ipp.c:6944 scheduler/ipp.c:7654 +#: scheduler/ipp.c:9178 #, c-format msgid "Subscription #%d does not exist." msgstr "" @@ -6409,11 +6422,11 @@ msgstr "" msgid "Super B/A3" msgstr "" -#: cups/http-support.c:1343 +#: cups/http-support.c:1489 msgid "Switching Protocols" msgstr "" -#: cups/ppd-cache.c:3600 +#: cups/ppd-cache.c:3611 msgid "Tab Stock" msgstr "" @@ -6446,8 +6459,8 @@ msgstr "" msgid "The \"%s\" attribute is required for print jobs." msgstr "" -#: scheduler/ipp.c:6613 scheduler/ipp.c:6693 scheduler/ipp.c:6706 -#: scheduler/ipp.c:6718 scheduler/ipp.c:6733 +#: scheduler/ipp.c:6605 scheduler/ipp.c:6685 scheduler/ipp.c:6698 +#: scheduler/ipp.c:6710 scheduler/ipp.c:6725 #, c-format msgid "The %s attribute cannot be provided with job-ids." msgstr "" @@ -6457,17 +6470,17 @@ msgstr "" msgid "The '%s' Job Status attribute cannot be supplied in a job creation request." msgstr "" -#: scheduler/ipp.c:5240 +#: scheduler/ipp.c:5232 #, c-format msgid "The '%s' operation attribute cannot be supplied in a Create-Job request." msgstr "" -#: scheduler/ipp.c:7182 +#: scheduler/ipp.c:7174 #, c-format msgid "The PPD file \"%s\" could not be found." msgstr "" -#: scheduler/ipp.c:7171 +#: scheduler/ipp.c:7163 #, c-format msgid "The PPD file \"%s\" could not be opened: %s" msgstr "" @@ -6501,7 +6514,7 @@ msgstr "" msgid "The notify-lease-duration attribute cannot be used with job subscriptions." msgstr "" -#: scheduler/ipp.c:2095 scheduler/ipp.c:5845 +#: scheduler/ipp.c:2095 scheduler/ipp.c:5837 #, c-format msgid "The notify-user-data value is too large (%d > 63 octets)." msgstr "" @@ -6522,8 +6535,8 @@ msgstr "" msgid "The printer did not respond." msgstr "" -#: backend/ipp.c:775 backend/ipp.c:965 backend/ipp.c:1079 backend/ipp.c:1501 -#: backend/ipp.c:1671 backend/lpd.c:896 backend/socket.c:359 +#: backend/ipp.c:775 backend/ipp.c:965 backend/ipp.c:1079 backend/ipp.c:1508 +#: backend/ipp.c:1678 backend/lpd.c:896 backend/socket.c:359 #: backend/usb-unix.c:122 backend/usb-unix.c:412 backend/usb-unix.c:495 msgid "The printer is in use." msgstr "" @@ -6578,13 +6591,13 @@ msgid "The printer name may only contain up to 127 printable characters and may msgstr "" #: scheduler/ipp.c:774 scheduler/ipp.c:1057 scheduler/ipp.c:3238 -#: scheduler/ipp.c:3419 scheduler/ipp.c:5223 scheduler/ipp.c:5679 -#: scheduler/ipp.c:6013 scheduler/ipp.c:6579 scheduler/ipp.c:7386 -#: scheduler/ipp.c:7442 scheduler/ipp.c:7768 scheduler/ipp.c:8043 -#: scheduler/ipp.c:8132 scheduler/ipp.c:8165 scheduler/ipp.c:8489 -#: scheduler/ipp.c:8896 scheduler/ipp.c:8978 scheduler/ipp.c:10152 -#: scheduler/ipp.c:10614 scheduler/ipp.c:10967 scheduler/ipp.c:11049 -#: scheduler/ipp.c:11378 +#: scheduler/ipp.c:3419 scheduler/ipp.c:5215 scheduler/ipp.c:5671 +#: scheduler/ipp.c:6005 scheduler/ipp.c:6571 scheduler/ipp.c:7378 +#: scheduler/ipp.c:7434 scheduler/ipp.c:7760 scheduler/ipp.c:8035 +#: scheduler/ipp.c:8124 scheduler/ipp.c:8157 scheduler/ipp.c:8481 +#: scheduler/ipp.c:8888 scheduler/ipp.c:8970 scheduler/ipp.c:10144 +#: scheduler/ipp.c:10606 scheduler/ipp.c:10959 scheduler/ipp.c:11041 +#: scheduler/ipp.c:11370 msgid "The printer or class does not exist." msgstr "" @@ -6637,12 +6650,12 @@ msgstr "" msgid "The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it." msgstr "" -#: scheduler/ipp.c:6677 +#: scheduler/ipp.c:6669 #, c-format msgid "The which-jobs value \"%s\" is not supported." msgstr "" -#: scheduler/ipp.c:5942 +#: scheduler/ipp.c:5934 msgid "There are too many subscriptions." msgstr "" @@ -6669,23 +6682,23 @@ msgstr "" msgid "Too many printer-state-reasons values (%d > %d)." msgstr "" -#: cups/ppd-cache.c:3395 +#: cups/ppd-cache.c:3405 msgid "Top" msgstr "" -#: cups/ppd-cache.c:3803 +#: cups/ppd-cache.c:3833 msgid "Top Tray" msgstr "" -#: cups/ppd-cache.c:3601 +#: cups/ppd-cache.c:3612 msgid "Tractor" msgstr "" -#: cups/ppd-cache.c:3602 +#: cups/ppd-cache.c:3613 msgid "Transfer" msgstr "" -#: cups/ppd-cache.c:3603 ppdc/sample.c:284 +#: cups/ppd-cache.c:3614 ppdc/sample.c:284 msgid "Transparency" msgstr "" @@ -6693,83 +6706,83 @@ msgstr "" msgid "Tray" msgstr "" -#: cups/ppd-cache.c:3404 cups/ppd-cache.c:3804 ppdc/sample.c:256 +#: cups/ppd-cache.c:3414 cups/ppd-cache.c:3834 ppdc/sample.c:256 msgid "Tray 1" msgstr "" -#: cups/ppd-cache.c:3413 cups/ppd-cache.c:3813 +#: cups/ppd-cache.c:3423 cups/ppd-cache.c:3843 msgid "Tray 10" msgstr "" -#: cups/ppd-cache.c:3414 +#: cups/ppd-cache.c:3424 msgid "Tray 11" msgstr "" -#: cups/ppd-cache.c:3415 +#: cups/ppd-cache.c:3425 msgid "Tray 12" msgstr "" -#: cups/ppd-cache.c:3416 +#: cups/ppd-cache.c:3426 msgid "Tray 13" msgstr "" -#: cups/ppd-cache.c:3417 +#: cups/ppd-cache.c:3427 msgid "Tray 14" msgstr "" -#: cups/ppd-cache.c:3418 +#: cups/ppd-cache.c:3428 msgid "Tray 15" msgstr "" -#: cups/ppd-cache.c:3419 +#: cups/ppd-cache.c:3429 msgid "Tray 16" msgstr "" -#: cups/ppd-cache.c:3420 +#: cups/ppd-cache.c:3430 msgid "Tray 17" msgstr "" -#: cups/ppd-cache.c:3421 +#: cups/ppd-cache.c:3431 msgid "Tray 18" msgstr "" -#: cups/ppd-cache.c:3422 +#: cups/ppd-cache.c:3432 msgid "Tray 19" msgstr "" -#: cups/ppd-cache.c:3405 cups/ppd-cache.c:3805 ppdc/sample.c:257 +#: cups/ppd-cache.c:3415 cups/ppd-cache.c:3835 ppdc/sample.c:257 msgid "Tray 2" msgstr "" -#: cups/ppd-cache.c:3423 +#: cups/ppd-cache.c:3433 msgid "Tray 20" msgstr "" -#: cups/ppd-cache.c:3406 cups/ppd-cache.c:3806 ppdc/sample.c:258 +#: cups/ppd-cache.c:3416 cups/ppd-cache.c:3836 ppdc/sample.c:258 msgid "Tray 3" msgstr "" -#: cups/ppd-cache.c:3407 cups/ppd-cache.c:3807 ppdc/sample.c:259 +#: cups/ppd-cache.c:3417 cups/ppd-cache.c:3837 ppdc/sample.c:259 msgid "Tray 4" msgstr "" -#: cups/ppd-cache.c:3408 cups/ppd-cache.c:3808 +#: cups/ppd-cache.c:3418 cups/ppd-cache.c:3838 msgid "Tray 5" msgstr "" -#: cups/ppd-cache.c:3409 cups/ppd-cache.c:3809 +#: cups/ppd-cache.c:3419 cups/ppd-cache.c:3839 msgid "Tray 6" msgstr "" -#: cups/ppd-cache.c:3410 cups/ppd-cache.c:3810 +#: cups/ppd-cache.c:3420 cups/ppd-cache.c:3840 msgid "Tray 7" msgstr "" -#: cups/ppd-cache.c:3411 cups/ppd-cache.c:3811 +#: cups/ppd-cache.c:3421 cups/ppd-cache.c:3841 msgid "Tray 8" msgstr "" -#: cups/ppd-cache.c:3412 cups/ppd-cache.c:3812 +#: cups/ppd-cache.c:3422 cups/ppd-cache.c:3842 msgid "Tray 9" msgstr "" @@ -6789,7 +6802,7 @@ msgstr "" msgid "Triple Staple (Reverse Portrait)" msgstr "" -#: cups/ppd-cache.c:3604 +#: cups/ppd-cache.c:3615 msgid "Triple Wall Cardboard" msgstr "" @@ -6798,11 +6811,11 @@ msgstr "" msgid "Trust on first use is disabled." msgstr "" -#: cups/http-support.c:1386 +#: cups/http-support.c:1532 msgid "URI Too Long" msgstr "" -#: cups/http-support.c:1461 +#: cups/http-support.c:1607 msgid "URI too large" msgstr "" @@ -6842,7 +6855,7 @@ msgstr "" msgid "US Letter Small" msgstr "" -#: cgi-bin/admin.c:1943 cgi-bin/admin.c:1956 cgi-bin/admin.c:1980 +#: cgi-bin/admin.c:1944 cgi-bin/admin.c:1957 cgi-bin/admin.c:1981 msgid "Unable to access cupsd.conf file" msgstr "" @@ -6858,7 +6871,7 @@ msgstr "" msgid "Unable to add class" msgstr "" -#: backend/ipp.c:1858 +#: backend/ipp.c:1865 msgid "Unable to add document to print job." msgstr "" @@ -6867,7 +6880,7 @@ msgstr "" msgid "Unable to add job for destination \"%s\"." msgstr "" -#: cgi-bin/admin.c:1034 cgi-bin/admin.c:1403 +#: cgi-bin/admin.c:1034 cgi-bin/admin.c:1404 msgid "Unable to add printer" msgstr "" @@ -6883,32 +6896,32 @@ msgstr "" msgid "Unable to allocate memory for pages array" msgstr "" -#: cgi-bin/admin.c:1509 +#: cgi-bin/admin.c:1510 msgid "Unable to cancel RSS subscription" msgstr "" -#: backend/ipp.c:2143 backend/ipp.c:2675 +#: backend/ipp.c:2150 backend/ipp.c:2682 msgid "Unable to cancel print job." msgstr "" -#: cgi-bin/admin.c:2974 +#: cgi-bin/admin.c:2975 msgid "Unable to change printer" msgstr "" -#: cgi-bin/admin.c:3890 +#: cgi-bin/admin.c:3891 msgid "Unable to change printer-is-shared attribute" msgstr "" -#: cgi-bin/admin.c:1641 cgi-bin/admin.c:1783 +#: cgi-bin/admin.c:1642 cgi-bin/admin.c:1784 msgid "Unable to change server settings" msgstr "" -#: cups/ipp.c:5384 +#: cups/ipp.c:5303 #, c-format msgid "Unable to compile mimeMediaType regular expression: %s." msgstr "" -#: cups/ipp.c:5330 +#: cups/ipp.c:5249 #, c-format msgid "Unable to compile naturalLanguage regular expression: %s." msgstr "" @@ -6917,11 +6930,11 @@ msgstr "" msgid "Unable to configure printer options." msgstr "" -#: cups/adminutil.c:899 cups/request.c:1050 +#: cups/adminutil.c:899 cups/request.c:1062 msgid "Unable to connect to host." msgstr "" -#: backend/ipp.c:732 backend/ipp.c:1277 backend/lpd.c:856 backend/socket.c:319 +#: backend/ipp.c:732 backend/ipp.c:1284 backend/lpd.c:856 backend/socket.c:319 #: backend/usb-unix.c:108 msgid "Unable to contact printer, queuing on next printer in class." msgstr "" @@ -6968,23 +6981,23 @@ msgstr "" msgid "Unable to create printer-uri" msgstr "" -#: scheduler/ipp.c:5516 +#: scheduler/ipp.c:5508 msgid "Unable to create printer." msgstr "" -#: cups/tls-darwin.c:1482 cups/tls-gnutls.c:1494 +#: cups/tls-darwin.c:1484 cups/tls-gnutls.c:1494 msgid "Unable to create server credentials." msgstr "" -#: cgi-bin/admin.c:1834 cgi-bin/admin.c:1846 scheduler/cupsfilter.c:1288 +#: cgi-bin/admin.c:1835 cgi-bin/admin.c:1847 scheduler/cupsfilter.c:1288 msgid "Unable to create temporary file" msgstr "" -#: cgi-bin/admin.c:2137 +#: cgi-bin/admin.c:2138 msgid "Unable to delete class" msgstr "" -#: cgi-bin/admin.c:2222 +#: cgi-bin/admin.c:2223 msgid "Unable to delete printer" msgstr "" @@ -6992,39 +7005,39 @@ msgstr "" msgid "Unable to do maintenance command" msgstr "" -#: cgi-bin/admin.c:1958 +#: cgi-bin/admin.c:1959 msgid "Unable to edit cupsd.conf files larger than 1MB" msgstr "" -#: cups/tls-darwin.c:1670 +#: cups/tls-darwin.c:1672 msgid "Unable to establish a secure connection to host (certificate chain invalid)." msgstr "" -#: cups/tls-darwin.c:1660 +#: cups/tls-darwin.c:1662 msgid "Unable to establish a secure connection to host (certificate not yet valid)." msgstr "" -#: cups/tls-darwin.c:1655 +#: cups/tls-darwin.c:1657 msgid "Unable to establish a secure connection to host (expired certificate)." msgstr "" -#: cups/tls-darwin.c:1665 +#: cups/tls-darwin.c:1667 msgid "Unable to establish a secure connection to host (host name mismatch)." msgstr "" -#: cups/tls-darwin.c:1675 +#: cups/tls-darwin.c:1677 msgid "Unable to establish a secure connection to host (peer dropped connection before responding)." msgstr "" -#: cups/tls-darwin.c:1650 +#: cups/tls-darwin.c:1652 msgid "Unable to establish a secure connection to host (self-signed certificate)." msgstr "" -#: cups/tls-darwin.c:1645 +#: cups/tls-darwin.c:1647 msgid "Unable to establish a secure connection to host (untrusted certificate)." msgstr "" -#: cups/tls-darwin.c:1708 cups/tls-sspi.c:1283 cups/tls-sspi.c:1300 +#: cups/tls-darwin.c:1710 cups/tls-sspi.c:1283 cups/tls-sspi.c:1300 msgid "Unable to establish a secure connection to host." msgstr "" @@ -7032,15 +7045,15 @@ msgstr "" msgid "Unable to find destination for job" msgstr "" -#: cups/http-support.c:1955 +#: cups/http-support.c:2101 msgid "Unable to find printer." msgstr "" -#: cups/tls-darwin.c:1495 +#: cups/tls-darwin.c:1497 msgid "Unable to find server credentials." msgstr "" -#: backend/ipp.c:3338 +#: backend/ipp.c:3345 msgid "Unable to get backend exit status." msgstr "" @@ -7052,11 +7065,11 @@ msgstr "" msgid "Unable to get class status" msgstr "" -#: cgi-bin/admin.c:1297 +#: cgi-bin/admin.c:1298 msgid "Unable to get list of printer drivers" msgstr "" -#: cgi-bin/admin.c:2824 +#: cgi-bin/admin.c:2825 msgid "Unable to get printer attributes" msgstr "" @@ -7100,7 +7113,7 @@ msgstr "" msgid "Unable to modify class" msgstr "" -#: cgi-bin/admin.c:1033 cgi-bin/admin.c:1402 +#: cgi-bin/admin.c:1033 cgi-bin/admin.c:1403 msgid "Unable to modify printer" msgstr "" @@ -7112,11 +7125,11 @@ msgstr "" msgid "Unable to move jobs" msgstr "" -#: cgi-bin/admin.c:3170 cups/ppd.c:314 +#: cgi-bin/admin.c:3171 cups/ppd.c:314 msgid "Unable to open PPD file" msgstr "" -#: cgi-bin/admin.c:2592 +#: cgi-bin/admin.c:2593 msgid "Unable to open cupsd.conf file:" msgstr "" @@ -7124,7 +7137,7 @@ msgstr "" msgid "Unable to open device file" msgstr "" -#: scheduler/ipp.c:6356 +#: scheduler/ipp.c:6348 #, c-format msgid "Unable to open document #%d in job #%d." msgstr "" @@ -7133,7 +7146,7 @@ msgstr "" msgid "Unable to open help file." msgstr "" -#: backend/ipp.c:386 backend/ipp.c:1598 backend/ipp.c:1811 backend/lpd.c:479 +#: backend/ipp.c:386 backend/ipp.c:1605 backend/ipp.c:1818 backend/lpd.c:479 #: backend/socket.c:147 backend/usb.c:229 filter/gziptoany.c:71 #: filter/pstops.c:268 msgid "Unable to open print file" @@ -7153,7 +7166,7 @@ msgstr "" msgid "Unable to read print data." msgstr "" -#: scheduler/ipp.c:8648 scheduler/ipp.c:9891 +#: scheduler/ipp.c:8640 scheduler/ipp.c:9883 msgid "Unable to rename job document file." msgstr "" @@ -7183,19 +7196,19 @@ msgstr "" msgid "Unable to set Windows printer driver (%d)." msgstr "" -#: cgi-bin/admin.c:3791 +#: cgi-bin/admin.c:3792 msgid "Unable to set options" msgstr "" -#: cgi-bin/admin.c:3061 +#: cgi-bin/admin.c:3062 msgid "Unable to set server default" msgstr "" -#: backend/ipp.c:3197 backend/ipp.c:3274 backend/ipp.c:3282 +#: backend/ipp.c:3204 backend/ipp.c:3281 backend/ipp.c:3289 msgid "Unable to start backend process." msgstr "" -#: cgi-bin/admin.c:1896 +#: cgi-bin/admin.c:1897 msgid "Unable to upload cupsd.conf file" msgstr "" @@ -7212,15 +7225,15 @@ msgstr "" msgid "Unable to write uncompressed print data: %s" msgstr "" -#: cups/http-support.c:1374 +#: cups/http-support.c:1520 msgid "Unauthorized" msgstr "" -#: cgi-bin/admin.c:3487 +#: cgi-bin/admin.c:3488 msgid "Units" msgstr "" -#: cups/http-support.c:1414 cups/http-support.c:1498 cups/ppd.c:341 +#: cups/http-support.c:1560 cups/http-support.c:1644 cups/ppd.c:343 msgid "Unknown" msgstr "" @@ -7267,29 +7280,29 @@ msgstr "" msgid "Unknown print mode: \"%s\"." msgstr "" -#: scheduler/ipp.c:10836 +#: scheduler/ipp.c:10828 #, c-format msgid "Unknown printer-error-policy \"%s\"." msgstr "" -#: scheduler/ipp.c:10819 +#: scheduler/ipp.c:10811 #, c-format msgid "Unknown printer-op-policy \"%s\"." msgstr "" -#: cups/http.c:2293 +#: cups/http.c:2294 msgid "Unknown request method." msgstr "" -#: cups/http.c:2313 +#: cups/http.c:2314 msgid "Unknown request version." msgstr "" -#: cups/http-support.c:1491 +#: cups/http-support.c:1637 msgid "Unknown scheme in URI" msgstr "" -#: cups/http-addrlist.c:821 +#: cups/http-addrlist.c:822 msgid "Unknown service name." msgstr "" @@ -7298,21 +7311,21 @@ msgstr "" msgid "Unknown version option value: \"%s\"." msgstr "" -#: scheduler/ipp.c:11295 +#: scheduler/ipp.c:11287 #, c-format msgid "Unsupported 'compression' value \"%s\"." msgstr "" -#: scheduler/ipp.c:11325 +#: scheduler/ipp.c:11317 #, c-format msgid "Unsupported 'document-format' value \"%s\"." msgstr "" -#: scheduler/ipp.c:7995 scheduler/ipp.c:10378 scheduler/ipp.c:11339 +#: scheduler/ipp.c:7987 scheduler/ipp.c:10370 scheduler/ipp.c:11331 msgid "Unsupported 'job-hold-until' value." msgstr "" -#: scheduler/ipp.c:11355 +#: scheduler/ipp.c:11347 msgid "Unsupported 'job-name' value." msgstr "" @@ -7321,17 +7334,17 @@ msgstr "" msgid "Unsupported character set \"%s\"." msgstr "" -#: scheduler/ipp.c:8455 scheduler/ipp.c:9703 +#: scheduler/ipp.c:8447 scheduler/ipp.c:9695 #, c-format msgid "Unsupported compression \"%s\"." msgstr "" -#: scheduler/ipp.c:8591 scheduler/ipp.c:9856 +#: scheduler/ipp.c:8583 scheduler/ipp.c:9848 #, c-format msgid "Unsupported document-format \"%s\"." msgstr "" -#: scheduler/ipp.c:9839 +#: scheduler/ipp.c:9831 #, c-format msgid "Unsupported document-format \"%s/%s\"." msgstr "" @@ -7373,11 +7386,11 @@ msgstr "" msgid "Unsupported value type" msgstr "" -#: cups/http-support.c:1389 +#: cups/http-support.c:1535 msgid "Upgrade Required" msgstr "" -#: systemv/lpadmin.c:662 +#: systemv/lpadmin.c:664 msgid "" "Usage:\n" "\n" @@ -7405,7 +7418,7 @@ msgstr "" msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]" msgstr "" -#: scheduler/main.c:2100 +#: scheduler/main.c:2102 msgid "Usage: cupsd [options]" msgstr "" @@ -7481,7 +7494,7 @@ msgstr "" msgid "VarBind uses indefinite length" msgstr "" -#: cups/ppd-cache.c:3592 +#: cups/ppd-cache.c:3603 msgid "Vellum Paper" msgstr "" @@ -7489,7 +7502,7 @@ msgstr "" msgid "Version uses indefinite length" msgstr "" -#: backend/ipp.c:1978 +#: backend/ipp.c:1985 msgid "Waiting for job to complete." msgstr "" @@ -7505,23 +7518,23 @@ msgstr "" msgid "Warning, no Windows 2000 printer drivers are installed." msgstr "" -#: cups/ppd-cache.c:3517 +#: cups/ppd-cache.c:3528 msgid "Waterproof Fabric" msgstr "" -#: cups/http-support.c:1410 +#: cups/http-support.c:1556 msgid "Web Interface is Disabled" msgstr "" -#: cups/ppd-cache.c:3605 +#: cups/ppd-cache.c:3616 msgid "Wet Film" msgstr "" -#: cups/ppd-cache.c:3510 +#: cups/ppd-cache.c:3521 msgid "Windowed Envelope" msgstr "" -#: cups/ppd.c:1985 +#: cups/ppd.c:2008 msgid "Yes" msgstr "" @@ -7554,11 +7567,11 @@ msgstr "" msgid "completed" msgstr "" -#: scheduler/ipp.c:6228 +#: scheduler/ipp.c:6220 msgid "cups-deviced failed to execute." msgstr "" -#: scheduler/ipp.c:7114 scheduler/ipp.c:7353 +#: scheduler/ipp.c:7106 scheduler/ipp.c:7345 msgid "cups-driverd failed to execute." msgstr "" @@ -7586,36 +7599,36 @@ msgstr "" msgid "cupsctl: Unknown option \"-%c\"" msgstr "" -#: scheduler/main.c:178 +#: scheduler/main.c:171 msgid "cupsd: Expected config filename after \"-c\" option." msgstr "" -#: scheduler/main.c:274 +#: scheduler/main.c:267 msgid "cupsd: Expected cups-files.conf filename after \"-s\" option." msgstr "" -#: scheduler/main.c:248 +#: scheduler/main.c:241 msgid "cupsd: On-demand support not compiled in, running in normal mode." msgstr "" -#: scheduler/main.c:285 +#: scheduler/main.c:278 msgid "cupsd: Relative cups-files.conf filename not allowed." msgstr "" -#: scheduler/main.c:209 scheduler/main.c:216 +#: scheduler/main.c:202 scheduler/main.c:209 msgid "cupsd: Unable to get current directory." msgstr "" -#: scheduler/main.c:341 scheduler/main.c:350 +#: scheduler/main.c:334 scheduler/main.c:343 msgid "cupsd: Unable to get path to cups-files.conf file." msgstr "" -#: scheduler/main.c:323 +#: scheduler/main.c:316 #, c-format msgid "cupsd: Unknown argument \"%s\" - aborting." msgstr "" -#: scheduler/main.c:316 +#: scheduler/main.c:309 #, c-format msgid "cupsd: Unknown option \"%c\" - aborting." msgstr "" @@ -7823,15 +7836,15 @@ msgstr "" msgid "ipptool: Unknown option \"-%c\"." msgstr "" -#: scheduler/ipp.c:8121 +#: scheduler/ipp.c:8113 msgid "job-printer-uri attribute missing." msgstr "" -#: systemv/lpadmin.c:124 systemv/lpadmin.c:380 +#: systemv/lpadmin.c:125 systemv/lpadmin.c:380 msgid "lpadmin: Class name can only contain printable characters." msgstr "" -#: systemv/lpadmin.c:214 +#: systemv/lpadmin.c:215 #, c-format msgid "lpadmin: Expected PPD after \"-%c\" option." msgstr "" @@ -7844,7 +7857,7 @@ msgstr "" msgid "lpadmin: Expected class after \"-r\" option." msgstr "" -#: systemv/lpadmin.c:114 +#: systemv/lpadmin.c:115 msgid "lpadmin: Expected class name after \"-c\" option." msgstr "" @@ -7860,7 +7873,7 @@ msgstr "" msgid "lpadmin: Expected file type(s) after \"-I\" option." msgstr "" -#: systemv/lpadmin.c:193 +#: systemv/lpadmin.c:194 msgid "lpadmin: Expected hostname after \"-h\" option." msgstr "" @@ -7884,7 +7897,7 @@ msgstr "" msgid "lpadmin: Expected printer after \"-p\" option." msgstr "" -#: systemv/lpadmin.c:156 +#: systemv/lpadmin.c:157 msgid "lpadmin: Expected printer name after \"-d\" option." msgstr "" @@ -7892,21 +7905,21 @@ msgstr "" msgid "lpadmin: Expected printer or class after \"-x\" option." msgstr "" -#: systemv/lpadmin.c:969 +#: systemv/lpadmin.c:971 msgid "lpadmin: No member names were seen." msgstr "" -#: systemv/lpadmin.c:756 +#: systemv/lpadmin.c:758 #, c-format msgid "lpadmin: Printer %s is already a member of class %s." msgstr "" -#: systemv/lpadmin.c:983 +#: systemv/lpadmin.c:985 #, c-format msgid "lpadmin: Printer %s is not a member of class %s." msgstr "" -#: systemv/lpadmin.c:165 systemv/lpadmin.c:333 systemv/lpadmin.c:533 +#: systemv/lpadmin.c:166 systemv/lpadmin.c:333 systemv/lpadmin.c:533 msgid "lpadmin: Printer name can only contain printable characters." msgstr "" @@ -7914,24 +7927,24 @@ msgstr "" msgid "lpadmin: Raw queues are deprecated and will stop working in a future version of CUPS." msgstr "" -#: systemv/lpadmin.c:232 +#: systemv/lpadmin.c:233 msgid "lpadmin: System V interface scripts are no longer supported for security reasons." msgstr "" -#: systemv/lpadmin.c:98 +#: systemv/lpadmin.c:99 msgid "" "lpadmin: Unable to add a printer to the class:\n" " You must specify a printer name first." msgstr "" -#: systemv/lpadmin.c:90 systemv/lpadmin.c:140 systemv/lpadmin.c:262 +#: systemv/lpadmin.c:91 systemv/lpadmin.c:141 systemv/lpadmin.c:263 #: systemv/lpadmin.c:346 systemv/lpadmin.c:395 systemv/lpadmin.c:507 #: systemv/lpadmin.c:646 #, c-format msgid "lpadmin: Unable to connect to server: %s" msgstr "" -#: systemv/lpadmin.c:1446 +#: systemv/lpadmin.c:1460 msgid "lpadmin: Unable to create temporary file" msgstr "" @@ -7941,12 +7954,12 @@ msgid "" " You must specify a printer name first." msgstr "" -#: systemv/lpadmin.c:1438 +#: systemv/lpadmin.c:1452 #, c-format msgid "lpadmin: Unable to open PPD \"%s\": %s on line %d." msgstr "" -#: systemv/lpadmin.c:1458 +#: systemv/lpadmin.c:1472 #, c-format msgid "lpadmin: Unable to open PPD file \"%s\" - %s" msgstr "" @@ -8069,16 +8082,16 @@ msgstr "" msgid "no system default destination" msgstr "" -#: scheduler/ipp.c:5913 +#: scheduler/ipp.c:5905 msgid "notify-events not specified." msgstr "" -#: scheduler/ipp.c:2049 scheduler/ipp.c:5799 +#: scheduler/ipp.c:2049 scheduler/ipp.c:5791 #, c-format msgid "notify-recipient-uri URI \"%s\" is already used." msgstr "" -#: scheduler/ipp.c:2039 scheduler/ipp.c:5789 +#: scheduler/ipp.c:2039 scheduler/ipp.c:5781 #, c-format msgid "notify-recipient-uri URI \"%s\" uses unknown scheme." msgstr "" @@ -8122,7 +8135,7 @@ msgstr "" msgid "ppdc: Bad variable substitution ($%c) on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:2673 +#: ppdc/ppdc-source.cxx:2674 #, c-format msgid "ppdc: Choice found on line %d of %s with no Option." msgstr "" @@ -8182,7 +8195,7 @@ msgstr "" msgid "ppdc: Expected constraints string for UIConstraints on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:2859 +#: ppdc/ppdc-source.cxx:2860 #, c-format msgid "ppdc: Expected driver type keyword following DriverType on line %d of %s." msgstr "" @@ -8227,7 +8240,7 @@ msgstr "" msgid "ppdc: Expected name after %s on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:3231 +#: ppdc/ppdc-source.cxx:3232 #, c-format msgid "ppdc: Expected name after FileName on line %d of %s." msgstr "" @@ -8237,22 +8250,22 @@ msgstr "" msgid "ppdc: Expected name after Font on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:3062 +#: ppdc/ppdc-source.cxx:3063 #, c-format msgid "ppdc: Expected name after Manufacturer on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:3095 +#: ppdc/ppdc-source.cxx:3096 #, c-format msgid "ppdc: Expected name after MediaSize on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:3185 +#: ppdc/ppdc-source.cxx:3186 #, c-format msgid "ppdc: Expected name after ModelName on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:3248 +#: ppdc/ppdc-source.cxx:3249 #, c-format msgid "ppdc: Expected name after PCFileName on line %d of %s." msgstr "" @@ -8327,12 +8340,12 @@ msgstr "" msgid "ppdc: Expected status after Font on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:2748 +#: ppdc/ppdc-source.cxx:2749 #, c-format msgid "ppdc: Expected string after Copyright on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:3351 +#: ppdc/ppdc-source.cxx:3352 #, c-format msgid "ppdc: Expected string after Version on line %d of %s." msgstr "" @@ -8418,9 +8431,9 @@ msgstr "" msgid "ppdc: No message catalog provided for locale %s." msgstr "" -#: ppdc/ppdc-source.cxx:1606 ppdc/ppdc-source.cxx:2836 -#: ppdc/ppdc-source.cxx:2922 ppdc/ppdc-source.cxx:3015 -#: ppdc/ppdc-source.cxx:3148 ppdc/ppdc-source.cxx:3281 +#: ppdc/ppdc-source.cxx:1606 ppdc/ppdc-source.cxx:2837 +#: ppdc/ppdc-source.cxx:2923 ppdc/ppdc-source.cxx:3016 +#: ppdc/ppdc-source.cxx:3149 ppdc/ppdc-source.cxx:3282 #, c-format msgid "ppdc: Option %s defined in two different groups on line %d of %s." msgstr "" @@ -8495,7 +8508,7 @@ msgstr "" msgid "ppdc: Unexpected text on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:2878 +#: ppdc/ppdc-source.cxx:2879 #, c-format msgid "ppdc: Unknown driver type %s on line %d of %s." msgstr "" @@ -8505,7 +8518,7 @@ msgstr "" msgid "ppdc: Unknown duplex type \"%s\" on line %d of %s." msgstr "" -#: ppdc/ppdc-source.cxx:3108 +#: ppdc/ppdc-source.cxx:3109 #, c-format msgid "ppdc: Unknown media size \"%s\" on line %d of %s." msgstr "" @@ -8515,7 +8528,7 @@ msgstr "" msgid "ppdc: Unknown message catalog format for \"%s\"." msgstr "" -#: ppdc/ppdc-source.cxx:3362 +#: ppdc/ppdc-source.cxx:3363 #, c-format msgid "ppdc: Unknown token \"%s\" seen on line %d of %s." msgstr "" diff --git a/locale/cups.strings b/locale/cups.strings index 952b10e..6a708f2 100644 --- a/locale/cups.strings +++ b/locale/cups.strings @@ -426,6 +426,7 @@ "%s: Unable to open \"%s\": %s" = "%s: Unable to open “%s”: %s"; "%s: Unable to open %s: %s" = "%s: Unable to open %s: %s"; "%s: Unable to open PPD file: %s on line %d." = "%s: Unable to open PPD file: %s on line %d."; +"%s: Unable to query printer: %s" = "%s: Unable to query printer: %s"; "%s: Unable to read MIME database from \"%s\" or \"%s\"." = "%s: Unable to read MIME database from “%s” or “%s”."; "%s: Unable to resolve \"%s\"." = "%s: Unable to resolve “%s”."; "%s: Unknown argument \"%s\"." = "%s: Unknown argument “%s”."; @@ -727,6 +728,7 @@ "Back Print Film" = "Back Print Film"; "Bad '%s' value." = "Bad ‘%s’ value."; "Bad 'document-format' value \"%s\"." = "Bad ‘document-format’ value “%s”."; +"Bad CloseUI/JCLCloseUI" = "Bad CloseUI/JCLCloseUI"; "Bad NULL dests pointer" = "Bad NULL dests pointer"; "Bad OpenGroup" = "Bad OpenGroup"; "Bad OpenUI/JCLOpenUI" = "Bad OpenUI/JCLOpenUI"; @@ -1152,6 +1154,7 @@ "Mid-Weight Paper" = "Mid-Weight Paper"; "Middle" = "Middle"; "Missing CloseGroup" = "Missing CloseGroup"; +"Missing CloseUI/JCLCloseUI" = "Missing CloseUI/JCLCloseUI"; "Missing PPD-Adobe-4.x header" = "Missing PPD-Adobe-4.x header"; "Missing asterisk in column 1" = "Missing asterisk in column 1"; "Missing document-number attribute." = "Missing document-number attribute."; diff --git a/locale/cups_ca.po b/locale/cups_ca.po index 30c3d23..248c4f2 100644 --- a/locale/cups_ca.po +++ b/locale/cups_ca.po @@ -32,7 +32,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.4.6\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2012-09-29 11:21+0200\n" "Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n" "Language-Team: Catalan <ca@dodds.net>\n" @@ -1893,6 +1893,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%s: no es pot obrir el fitxer PPD: %s a la línia %d." #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "%s: no es pot llegir la base de dades MIME de «%s» o «%s»." @@ -2826,6 +2830,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "" +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "El punter de dests NULL és incorrecte" @@ -4175,6 +4182,9 @@ msgstr "" msgid "Missing CloseGroup" msgstr "Falta el CloseGroup" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "Falta la capçalera PPD-ADOBE-4.x" diff --git a/locale/cups_cs.po b/locale/cups_cs.po index feec1cb..a271091 100644 --- a/locale/cups_cs.po +++ b/locale/cups_cs.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.6\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2012-09-14 10:26+0100\n" "Last-Translator: Jan Bartos <jan.bartos@madeta.cz>\n" "Language-Team: Czech\n" @@ -1708,6 +1708,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "" #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "" @@ -2634,6 +2638,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "" +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "Neplatný ukazatel NULL" @@ -3970,6 +3977,9 @@ msgstr "" msgid "Missing CloseGroup" msgstr "" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "Chybějící záhlaví PPD-Adobe-4.x" diff --git a/locale/cups_de.po b/locale/cups_de.po index 69b8430..1d3e2c3 100644 --- a/locale/cups_de.po +++ b/locale/cups_de.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 2.0\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2017-10-25 14:57+0200\n" "Last-Translator: Michael Weghorn <m.weghorn@posteo.de>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -1778,6 +1778,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%s: Öffnen der PPD Datei: %s in Zeile %d." #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "%s: Lesen der MIME Datenbank von \"%s\" oder \"%s\" nicht möglich." @@ -2710,6 +2714,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "Fehlerhafter 'document-format' Wert \"%s\"." +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "Ungültiger NULL-Dests-Pointer" @@ -4051,6 +4058,9 @@ msgstr "" msgid "Missing CloseGroup" msgstr "Fehlendes CloseGroup" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "PPD-Adobe-4.x Header fehlt" diff --git a/locale/cups_es.po b/locale/cups_es.po index 3566a66..0a8aa18 100644 --- a/locale/cups_es.po +++ b/locale/cups_es.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 2.2\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2016-06-26 21:17+0100\n" "Last-Translator: Juan Pablo González Riopedre <jpgriopedre@yahoo.es>\n" "Language-Team: Spanish\n" @@ -1923,6 +1923,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%s: No se ha podido abrir el archivo PPD: %s en la línea %d." #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "%s: No se pudo leer base de datos MIME desde \"%s\" o \"%s\"." @@ -2856,6 +2860,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "Valor 'document-format' \"%s\" incorrecto." +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "Puntero destino NULLincorrecto" @@ -4202,6 +4209,9 @@ msgstr "Medio" msgid "Missing CloseGroup" msgstr "Falta CloseGroup" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "Falta cabecera PPD-Adobe-4.x" diff --git a/locale/cups_fr.po b/locale/cups_fr.po index ea3d554..8e0f4fa 100644 --- a/locale/cups_fr.po +++ b/locale/cups_fr.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.6\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2012-12-12 11:12+0100\n" "Last-Translator: Stéphane Blondon <stephane.blondon@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -1768,6 +1768,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%s : impossible d'ouvrir le fichier PPD : %s sur la ligne %d." #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "" @@ -2694,6 +2698,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "" +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "Pointeur de dests NULL incorrect" @@ -4032,6 +4039,9 @@ msgstr "" msgid "Missing CloseGroup" msgstr "" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "Entête PPD-Adobe-4.x manquant" diff --git a/locale/cups_it.po b/locale/cups_it.po index 1d5ee1d..d83fa97 100644 --- a/locale/cups_it.po +++ b/locale/cups_it.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.6\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2013-07-14 12:00+0200\n" "Last-Translator: Giovanni Scafora <giovanni@archlinux.org>\n" "Language-Team: Arch Linux Italian Team <giovanni@archlinux.org>\n" @@ -1921,6 +1921,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%s: non è possibile aprire il file PPD: %s alla riga %d." #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "" "%s: non è possibile leggere il database del MIME da \"%s\" oppure da \"%s\"." @@ -2852,6 +2856,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "Il valore di 'document-format' non è valido \"%s\"." +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "Le destinazioni del puntatore NULL non sono valide" @@ -4200,6 +4207,9 @@ msgstr "" msgid "Missing CloseGroup" msgstr "Manca CloseGroup" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "Manca la libreria di PPD-Adobe-4.x" diff --git a/locale/cups_ja.po b/locale/cups_ja.po index 7949b4a..af7852b 100644 --- a/locale/cups_ja.po +++ b/locale/cups_ja.po @@ -28,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 2.0\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2014-11-15 19:27+0900\n" "Last-Translator: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n" "Language-Team: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n" @@ -1891,6 +1891,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%s: PPD ファイルを開けません: %s の %d 行目" #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "" "%s: \"%s\" または \"%s\" から MIME データベースを読み取ることができません。" @@ -2822,6 +2826,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "誤った 'document-format' の値です \"%s\"。" +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "不正な NULL 送信先ポインター" @@ -4174,6 +4181,9 @@ msgstr "" msgid "Missing CloseGroup" msgstr "CloseGroup がありません" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "PPD-Adobe-4.x ヘッダーがありません" diff --git a/locale/cups_pt_BR.po b/locale/cups_pt_BR.po index 136728a..3be06c4 100644 --- a/locale/cups_pt_BR.po +++ b/locale/cups_pt_BR.po @@ -40,7 +40,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 2.1.2\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2016-01-31 16:45-0200\n" "Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n" "Language-Team: Brazilian Portuguese <traducao-cups-pt-br@googlegroups.com>\n" @@ -1926,6 +1926,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%s: Não foi possível abrir o arquivo PPD: %s na linha %d." #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "%s: Não foi possível ler o banco de dados MIME de \"%s\" ou \"%s\"." @@ -2856,6 +2860,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "Valor de \"document-format\" inválido \"%s\"." +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "Ponteiro de destinatário NULO inválido" @@ -4203,6 +4210,9 @@ msgstr "" msgid "Missing CloseGroup" msgstr "Faltando CloseGroup" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "Faltando cabeçalho PPD-Adobe-4.x" diff --git a/locale/cups_ru.po b/locale/cups_ru.po index 0bad416..790b54a 100644 --- a/locale/cups_ru.po +++ b/locale/cups_ru.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 2.0\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2015-01-28 12:00-0800\n" "Last-Translator: Aleksandr Proklov\n" "Language-Team: PuppyRus Linux Team\n" @@ -1862,6 +1862,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%s: Не удается открыть PPD-файл: %s в строке %d." #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "%s: Не удается прочитать базу данных MIME из \"%s\" или \"%s\"." @@ -2790,6 +2794,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "" +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "Неверный указатель NULL dests" @@ -4131,6 +4138,9 @@ msgstr "" msgid "Missing CloseGroup" msgstr "Пропущен CloseGroup" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "Отсутствует заголовок PPD-Adobe-4.x" diff --git a/locale/cups_zh_CN.po b/locale/cups_zh_CN.po index 454ab10..d9ef006 100644 --- a/locale/cups_zh_CN.po +++ b/locale/cups_zh_CN.po @@ -29,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.6\n" "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n" -"POT-Creation-Date: 2018-06-05 11:58-0400\n" +"POT-Creation-Date: 2018-09-28 11:22-0400\n" "PO-Revision-Date: 2017-06-11 12:38+0800\n" "Last-Translator: Mingcong Bai <jeffbai@aosc.xyz>\n" "Language-Team: \n" @@ -1841,6 +1841,10 @@ msgid "%s: Unable to open PPD file: %s on line %d." msgstr "%1$s:无法打开 PPD 文件:行 %3$d 上的 %2$s。" #, c-format +msgid "%s: Unable to query printer: %s" +msgstr "" + +#, c-format msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"." msgstr "%s:无法从“%s”或“%s”读取 MIME 数据库。" @@ -2767,6 +2771,9 @@ msgstr "" msgid "Bad 'document-format' value \"%s\"." msgstr "无效的“document-format”值“%s”。" +msgid "Bad CloseUI/JCLCloseUI" +msgstr "" + msgid "Bad NULL dests pointer" msgstr "无效的 NULL 目标指针" @@ -4113,6 +4120,9 @@ msgstr "中间" msgid "Missing CloseGroup" msgstr "缺少 CloseGroup" +msgid "Missing CloseUI/JCLCloseUI" +msgstr "" + msgid "Missing PPD-Adobe-4.x header" msgstr "缺少 PPD-Adobe-4.x 文件头" diff --git a/man/cups-files.conf.man.in b/man/cups-files.conf.man.in index 6ac4e72..f5e6a9f 100644 --- a/man/cups-files.conf.man.in +++ b/man/cups-files.conf.man.in @@ -1,7 +1,7 @@ .\" .\" cups-files.conf man page for CUPS. .\" -.\" Copyright 2007-2017 by Apple Inc. +.\" Copyright 2007-2018 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -10,7 +10,7 @@ .\" which should have been included with this file. If this file is .\" file is missing or damaged, see the license at "http://www.cups.org/". .\" -.TH cups-files.conf 5 "CUPS" "21 September 2017" "Apple Inc." +.TH cups-files.conf 5 "CUPS" "25 February 2018 " "Apple Inc." .SH NAME cups\-files.conf \- file and directory configuration file for cups .SH DESCRIPTION @@ -284,4 +284,4 @@ Specifies the SMB service configuration file to update. .BR subscriptions.conf (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2017 by Apple Inc. +Copyright \[co] 2007-2018 by Apple Inc. diff --git a/man/lpadmin.man b/man/lpadmin.man index c4f01ec..4ef7090 100644 --- a/man/lpadmin.man +++ b/man/lpadmin.man @@ -10,7 +10,7 @@ .\" which should have been included with this file. If this file is .\" file is missing or damaged, see the license at "http://www.cups.org/". .\" -.TH lpadmin 8 "CUPS" "19 March 2018" "Apple Inc." +.TH lpadmin 8 "CUPS" "19 August 2018" "Apple Inc." .SH NAME lpadmin \- configure cups printers and classes .SH SYNOPSIS @@ -182,7 +182,8 @@ command to get a list of supported device URIs and schemes. Provides a textual description of the destination. .TP 5 .B \-E -Enables the destination and accepts jobs; this is the same as running the +When specified before the \fB\-d\fR, \fB\-p\fR, or \fB\-x\fR options, forces the use of TLS encryption on the connection to the scheduler. +Otherwise, enables the destination and accepts jobs; this is the same as running the .BR cupsaccept (8) and .BR cupsenable (8) @@ -197,6 +198,8 @@ Finally, the CUPS version of \fBlpadmin\fR may ask the user for an access passwo This differs from the System V version which requires the root user to execute this command. .SH NOTES The CUPS version of \fBlpadmin\fR does not support all of the System V or Solaris printing system configuration options. +.PP +The double meaning of the \fB\-E\fR option is an unfortunate historical oddity. .SH EXAMPLE Create an IPP Everywhere print queue: .nf @@ -211,4 +214,4 @@ Create an IPP Everywhere print queue: .BR lpoptions (1), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2017 by Apple Inc. +Copyright \[co] 2007-2018 by Apple Inc. diff --git a/monitor/Makefile b/monitor/Makefile index 75b911b..0e26bd6 100644 --- a/monitor/Makefile +++ b/monitor/Makefile @@ -122,6 +122,7 @@ uninstall: bcp: bcp.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ bcp.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -131,6 +132,7 @@ bcp: bcp.o ../cups/$(LIBCUPS) tbcp: tbcp.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ tbcp.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/notifier/Makefile b/notifier/Makefile index ffed312..f98fb3f 100644 --- a/notifier/Makefile +++ b/notifier/Makefile @@ -124,6 +124,7 @@ depend: dbus: dbus.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o dbus dbus.o $(DBUS_NOTIFIERLIBS) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -133,6 +134,7 @@ dbus: dbus.o ../cups/$(LIBCUPS) mailto: mailto.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o mailto mailto.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -142,6 +144,7 @@ mailto: mailto.o ../cups/$(LIBCUPS) rss: rss.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o rss rss.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -151,6 +154,7 @@ rss: rss.o ../cups/$(LIBCUPS) testnotify: testnotify.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o testnotify testnotify.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ $(OBJS): ../Makedefs diff --git a/packaging/cups.spec b/packaging/cups.spec index da84b48..b83b968 100644 --- a/packaging/cups.spec +++ b/packaging/cups.spec @@ -43,12 +43,12 @@ Summary: CUPS Name: cups -Version: 2.2.8 +Version: 2.2.9 Release: 0 Epoch: 1 License: GPL Group: System Environment/Daemons -Source: https://github.com/apple/cups/releases/download/v2.2.8/cups-2.2.8-source.tar.gz +Source: https://github.com/apple/cups/releases/download/v2.2.9/cups-2.2.9-source.tar.gz Url: http://www.cups.org Packager: Anonymous <anonymous@example.com> Vendor: Example Corp diff --git a/ppdc/Makefile b/ppdc/Makefile index b91c9ec..e563988 100644 --- a/ppdc/Makefile +++ b/ppdc/Makefile @@ -1,7 +1,7 @@ # # Makefile for the CUPS PPD Compiler. # -# Copyright 2007-2017 by Apple Inc. +# Copyright 2007-2018 by Apple Inc. # Copyright 2002-2006 by Easy Software Products. # # These coded instructions, statements, and computer programs are the @@ -52,7 +52,6 @@ OBJS = \ ppdpo.o \ testcatalog.o LIBTARGETS = \ - $(LIBCUPSPPDC) \ libcupsppdc.a UNITTARGETS = \ ppdc-static \ @@ -102,7 +101,6 @@ clean: $(RM) $(TARGETS) $(UNITTARGETS) genstrings $(RM) -r ppd ppd2 $(RM) sample-import.drv sample.c test.drv - $(RM) libcupsppdc.so libcupsppdc.dylib # @@ -153,40 +151,13 @@ install-exec: # install-headers: - if test "x$(privateinclude)" != x; then \ - echo Installing private header files into $(PRIVATEINCLUDE)...; \ - $(INSTALL_DIR) -m 755 $(PRIVATEINCLUDE); \ - $(INSTALL_DATA) ppdc.h $(PRIVATEINCLUDE); \ - fi # # Install libraries... # -install-libs: $(INSTALLSTATIC) - echo Installing libraries in $(LIBDIR)... - $(INSTALL_DIR) -m 755 $(LIBDIR) - $(INSTALL_LIB) $(LIBCUPSPPDC) $(LIBDIR) - if test $(LIBCUPSPPDC) = "libcupsppdc.so.1"; then \ - $(RM) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \ - $(LN) $(LIBCUPSPPDC) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \ - fi - if test $(LIBCUPSPPDC) = "libcupsppdc.1.dylib"; then \ - $(RM) $(LIBDIR)/libcupsppdc.dylib; \ - $(LN) $(LIBCUPSPPDC) $(LIBDIR)/libcupsppdc.dylib; \ - fi - if test "x$(SYMROOT)" != "x"; then \ - $(INSTALL_DIR) $(SYMROOT); \ - cp $(LIBCUPSPPDC) $(SYMROOT); \ - dsymutil $(SYMROOT)/$(LIBCUPSPPDC); \ - fi - -installstatic: - $(INSTALL_DIR) -m 755 $(LIBDIR) - $(INSTALL_LIB) -m 755 libcupsppdc.a $(LIBDIR) - $(RANLIB) $(LIBDIR)/libcupsppdc.a - $(CHMOD) 555 $(LIBDIR)/libcupsppdc.a +install-libs: # @@ -199,16 +170,6 @@ uninstall: done $(RM) $(DATADIR)/drv/sample.drv $(RMDIR) $(DATADIR)/drv - $(RM) $(LIBDIR)/libcupsppdc.1.dylib - $(RM) $(LIBDIR)/libcupsppdc.a - $(RM) $(LIBDIR)/libcupsppdc.dylib - $(RM) $(LIBDIR)/libcupsppdc.so - $(RM) $(LIBDIR)/libcupsppdc.so.1 - -$(RMDIR) $(LIBDIR) - -if test "x$(privateinclude)" != x; then \ - $(RM) $(PRIVATEINCLUDE)/ppdc.h; \ - $(RMDIR) $(PRIVATEINCLUDE); \ - fi # @@ -236,9 +197,10 @@ genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \ # ppdc, the PPD compiler. # -ppdc: ppdc.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS) +ppdc: ppdc.o libcupsppdc.a ../cups/$(LIBCUPS) echo Linking $@... - $(LD_CXX) $(LDFLAGS) -o $@ ppdc.o -L. -lcupsppdc $(LIBS) + $(LD_CXX) $(LDFLAGS) -o $@ ppdc.o libcupsppdc.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po @@ -246,6 +208,7 @@ ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po $(LD_CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \ ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \ $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Testing PPD compiler... ./ppdc-static -l en,fr -I ../data foo.drv ./ppdc-static -l en,fr -z -I ../data foo.drv @@ -255,18 +218,20 @@ ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po # ppdhtml, the PPD to HTML utility. # -ppdhtml: ppdhtml.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS) +ppdhtml: ppdhtml.o libcupsppdc.a ../cups/$(LIBCUPS) echo Linking $@... - $(LD_CXX) $(LDFLAGS) -o $@ ppdhtml.o -L. -lcupsppdc $(LIBS) + $(LD_CXX) $(LDFLAGS) -o $@ ppdhtml.o libcupsppdc.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # ppdi, import PPD files. # -ppdi: ppdi.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS) +ppdi: ppdi.o libcupsppdc.a ../cups/$(LIBCUPS) echo Linking $@... - $(LD_CXX) $(LDFLAGS) -o $@ ppdi.o -L. -lcupsppdc $(LIBS) + $(LD_CXX) $(LDFLAGS) -o $@ ppdi.o libcupsppdc.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) @@ -274,6 +239,7 @@ ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LD_CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdi-static ppdi.o libcupsppdc.a \ ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \ $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Testing PPD importer... $(RM) -r ppd ppd2 sample-import.drv ./ppdc-static -l en -I ../data sample.drv @@ -294,15 +260,17 @@ ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) ppdmerge: ppdmerge.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CXX) $(LDFLAGS) -o $@ ppdmerge.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # ppdpo, create message catalog files. # -ppdpo: ppdpo.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS) +ppdpo: ppdpo.o libcupsppdc.a ../cups/$(LIBCUPS) echo Linking $@... - $(LD_CXX) $(LDFLAGS) -o $@ ppdpo.o -L. -lcupsppdc $(LIBS) + $(LD_CXX) $(LDFLAGS) -o $@ ppdpo.o libcupsppdc.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -314,45 +282,7 @@ testcatalog: testcatalog.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LD_CXX) $(LDFLAGS) -o $@ testcatalog.o libcupsppdc.a \ ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \ $(COMMONLIBS) $(LIBZ) - - -# -# libcupsppdc.so.1 -# - -libcupsppdc.so.1: $(LIBOBJS) ../cups/$(LIBCUPS) - echo Linking $@... - $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LINKCUPS) - $(RM) `basename $@ .1` - $(LN) $@ `basename $@ .1` - - -# -# libcupsppdc.1.dylib -# - -libcupsppdc.1.dylib: $(LIBOBJS) ../cups/$(LIBCUPS) - echo Creating export list for $@... - nm -gm $(LIBOBJS) | grep "__text" | grep -v weak | awk '{print $$NF}' | sort >t.exp - echo Linking $@... - $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \ - -install_name $(libdir)/$@ \ - -current_version 1.0.0 \ - -compatibility_version 1.0.0 \ - -exported_symbols_list t.exp \ - $(LIBOBJS) $(LINKCUPS) $(COMMONLIBS) - $(RM) libcupsppdc.dylib t.exp - $(LN) $@ libcupsppdc.dylib - - -# -# libcupsppdc.la -# - -libcupsppdc.la: $(LIBOBJS) ../cups/$(LIBCUPS) - echo Linking $@... - $(LD_CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \ - -version-info 1:0 $(LINKCUPS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/ppdc/ppdc-driver.cxx b/ppdc/ppdc-driver.cxx index 242924b..2b6940e 100644 --- a/ppdc/ppdc-driver.cxx +++ b/ppdc/ppdc-driver.cxx @@ -1,7 +1,7 @@ // // PPD file compiler definitions for the CUPS PPD Compiler. // -// Copyright 2007-2014 by Apple Inc. +// Copyright 2007-2018 by Apple Inc. // Copyright 2002-2006 by Easy Software Products. // // These coded instructions, statements, and computer programs are the @@ -1107,7 +1107,10 @@ ppdcDriver::write_ppd_file( cupsFilePrintf(fp, "*End%s", lf); } - cupsFilePrintf(fp, "*CloseUI: *%s%s", o->name->value, lf); + if (o->section == PPDC_SECTION_JCL) + cupsFilePrintf(fp, "*JCLCloseUI: *%s%s", o->name->value, lf); + else + cupsFilePrintf(fp, "*CloseUI: *%s%s", o->name->value, lf); snprintf(custom, sizeof(custom), "Custom%s", o->name->value); if ((a = find_attr(custom, "True")) != NULL) diff --git a/ppdc/ppdc-source.cxx b/ppdc/ppdc-source.cxx index 7b77c2e..5add810 100644 --- a/ppdc/ppdc-source.cxx +++ b/ppdc/ppdc-source.cxx @@ -1,7 +1,7 @@ // // Source class for the CUPS PPD Compiler. // -// Copyright 2007-2014 by Apple Inc. +// Copyright 2007-2018 by Apple Inc. // Copyright 2002-2007 by Easy Software Products. // // These coded instructions, statements, and computer programs are the @@ -23,9 +23,9 @@ #include "data/epson.h" #include "data/hp.h" #include "data/label.h" -#ifndef WIN32 +#ifndef _WIN32 # include <sys/utsname.h> -#endif // !WIN32 +#endif // !_WIN32 // @@ -73,7 +73,7 @@ ppdcSource::ppdcSource(const char *f, // I - File to read vars->add(new ppdcVariable("CUPS_VERSION_MINOR", MAKE_STRING(CUPS_VERSION_MINOR))); vars->add(new ppdcVariable("CUPS_VERSION_PATCH", MAKE_STRING(CUPS_VERSION_PATCH))); -#ifdef WIN32 +#ifdef _WIN32 vars->add(new ppdcVariable("PLATFORM_NAME", "Windows")); vars->add(new ppdcVariable("PLATFORM_ARCH", "X86")); @@ -90,7 +90,7 @@ ppdcSource::ppdcSource(const char *f, // I - File to read vars->add(new ppdcVariable("PLATFORM_NAME", "unknown")); vars->add(new ppdcVariable("PLATFORM_ARCH", "unknown")); } -#endif // WIN32 +#endif // _WIN32 if (f) read_file(f, ffp); @@ -2669,6 +2669,7 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read // Add it to the current option... if (!o) { + c->release(); _cupsLangPrintf(stderr, _("ppdc: Choice found on line %d of %s with no " "Option."), fp->line, fp->filename); diff --git a/ppdc/sample.drv b/ppdc/sample.drv index 58c6475..ec86338 100644 --- a/ppdc/sample.drv +++ b/ppdc/sample.drv @@ -458,35 +458,35 @@ Version "2.1" Option "inPrintDensity/Print Density" PickOne DocumentSetup 20.0 *Choice "Default/Printer Default" "<</cupsCompression -1>>setpagedevice" Choice "-15/-15" "<</cupsCompression 0>>setpagedevice" - Choice "-14/-14" "<</cupsCompression 3>>setpagedevice" - Choice "-13/-13" "<</cupsCompression 6>>setpagedevice" + Choice "-14/-14" "<</cupsCompression 4>>setpagedevice" + Choice "-13/-13" "<</cupsCompression 7>>setpagedevice" Choice "-12/-12" "<</cupsCompression 10>>setpagedevice" - Choice "-11/-11" "<</cupsCompression 13>>setpagedevice" - Choice "-10/-10" "<</cupsCompression 16>>setpagedevice" + Choice "-11/-11" "<</cupsCompression 14>>setpagedevice" + Choice "-10/-10" "<</cupsCompression 17>>setpagedevice" Choice "-9/-9" "<</cupsCompression 20>>setpagedevice" - Choice "-8/-8" "<</cupsCompression 23>>setpagedevice" - Choice "-7/-7" "<</cupsCompression 26>>setpagedevice" + Choice "-8/-8" "<</cupsCompression 24>>setpagedevice" + Choice "-7/-7" "<</cupsCompression 27>>setpagedevice" Choice "-6/-6" "<</cupsCompression 30>>setpagedevice" - Choice "-5/-5" "<</cupsCompression 33>>setpagedevice" - Choice "-4/-4" "<</cupsCompression 36>>setpagedevice" + Choice "-5/-5" "<</cupsCompression 34>>setpagedevice" + Choice "-4/-4" "<</cupsCompression 37>>setpagedevice" Choice "-3/-3" "<</cupsCompression 40>>setpagedevice" - Choice "-2/-2" "<</cupsCompression 43>>setpagedevice" - Choice "-1/-1" "<</cupsCompression 46>>setpagedevice" + Choice "-2/-2" "<</cupsCompression 44>>setpagedevice" + Choice "-1/-1" "<</cupsCompression 47>>setpagedevice" Choice "0/0" "<</cupsCompression 50>>setpagedevice" - Choice "1/1" "<</cupsCompression 53>>setpagedevice" - Choice "2/2" "<</cupsCompression 56>>setpagedevice" + Choice "1/1" "<</cupsCompression 54>>setpagedevice" + Choice "2/2" "<</cupsCompression 57>>setpagedevice" Choice "3/3" "<</cupsCompression 60>>setpagedevice" - Choice "4/4" "<</cupsCompression 63>>setpagedevice" - Choice "5/5" "<</cupsCompression 66>>setpagedevice" + Choice "4/4" "<</cupsCompression 64>>setpagedevice" + Choice "5/5" "<</cupsCompression 67>>setpagedevice" Choice "6/6" "<</cupsCompression 70>>setpagedevice" - Choice "7/7" "<</cupsCompression 73>>setpagedevice" - Choice "8/8" "<</cupsCompression 76>>setpagedevice" + Choice "7/7" "<</cupsCompression 74>>setpagedevice" + Choice "8/8" "<</cupsCompression 77>>setpagedevice" Choice "9/9" "<</cupsCompression 80>>setpagedevice" - Choice "10/10" "<</cupsCompression 83>>setpagedevice" - Choice "11/11" "<</cupsCompression 86>>setpagedevice" + Choice "10/10" "<</cupsCompression 84>>setpagedevice" + Choice "11/11" "<</cupsCompression 87>>setpagedevice" Choice "12/12" "<</cupsCompression 90>>setpagedevice" - Choice "13/13" "<</cupsCompression 93>>setpagedevice" - Choice "14/14" "<</cupsCompression 96>>setpagedevice" + Choice "13/13" "<</cupsCompression 94>>setpagedevice" + Choice "14/14" "<</cupsCompression 97>>setpagedevice" Choice "15/15" "<</cupsCompression 100>>setpagedevice" Option "inPrintRate/Print Speed" PickOne DocumentSetup 20.0 *Choice "Default/Printer Default" "<</cupsRowFeed 0>>setpagedevice" diff --git a/scheduler/Makefile b/scheduler/Makefile index 0178934..02f7e0e 100644 --- a/scheduler/Makefile +++ b/scheduler/Makefile @@ -1,7 +1,7 @@ # # Scheduler Makefile for CUPS. # -# Copyright 2007-2017 by Apple Inc. +# Copyright 2007-2018 by Apple Inc. # Copyright 1997-2007 by Easy Software Products, all rights reserved. # # These coded instructions, statements, and computer programs are the @@ -59,9 +59,8 @@ CXXOBJS = \ cups-driverd.o OBJS = \ $(COBJS) \ - $(LD_CXXOBJS) + $(CXXOBJS) LIBTARGETS = \ - $(LIBCUPSMIME) \ libcupsmime.a UNITTARGETS = \ @@ -111,7 +110,6 @@ unittests: $(UNITTARGETS) clean: $(RM) $(OBJS) $(RM) $(TARGETS) $(UNITTARGETS) convert - $(RM) libcupsmime.so libcupsmime.dylib # @@ -241,40 +239,13 @@ install-exec: # install-headers: - if test "x$(privateinclude)" != x; then \ - echo Installing private header files into $(PRIVATEINCLUDE)...; \ - $(INSTALL_DIR) -m 755 $(PRIVATEINCLUDE); \ - $(INSTALL_DATA) mime.h $(PRIVATEINCLUDE); \ - fi # # Install libraries... # -install-libs: $(INSTALLSTATIC) - echo Installing libraries in $(LIBDIR)... - $(INSTALL_DIR) -m 755 $(LIBDIR) - $(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR) - if test $(LIBCUPSMIME) = "libcupsmime.so.1"; then \ - $(RM) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \ - $(LN) $(LIBCUPSMIME) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \ - fi - if test $(LIBCUPSMIME) = "libcupsmime.1.dylib"; then \ - $(RM) $(LIBDIR)/libcupsmime.dylib; \ - $(LN) $(LIBCUPSMIME) $(LIBDIR)/libcupsmime.dylib; \ - fi - if test "x$(SYMROOT)" != "x"; then \ - $(INSTALL_DIR) $(SYMROOT); \ - cp $(LIBCUPSMIME) $(SYMROOT); \ - dsymutil $(SYMROOT)/$(LIBCUPSMIME); \ - fi - -installstatic: - $(INSTALL_DIR) -m 755 $(LIBDIR) - $(INSTALL_LIB) -m 755 libcupsmime.a $(LIBDIR) - $(RANLIB) $(LIBDIR)/libcupsmime.a - $(CHMOD) 555 $(LIBDIR)/libcupsmime.a +install-libs: # @@ -301,16 +272,6 @@ uninstall: -$(RMDIR) $(REQUESTS) -$(RMDIR) $(LOGDIR) -$(RMDIR) $(CACHEDIR) - $(RM) $(LIBDIR)/libcupsmime.1.dylib - $(RM) $(LIBDIR)/libcupsmime.a - $(RM) $(LIBDIR)/libcupsmime.dylib - $(RM) $(LIBDIR)/libcupsmime.so - $(RM) $(LIBDIR)/libcupsmime.so.1 - -$(RMDIR) $(LIBDIR) - -if test "x$(privateinclude)" != x; then \ - $(RM) $(PRIVATEINCLUDE)/mime.h; \ - $(RMDIR) $(PRIVATEINCLUDE); \ - fi if test "x$(INITDIR)" != x; then \ echo Uninstalling init scripts...; \ $(RM) $(BUILDROOT)$(INITDIR)/init.d/cups; \ @@ -354,12 +315,13 @@ uninstall: # Make the scheduler executable, "cupsd". # -cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cups/$(LIBCUPS) +cupsd: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPS) echo Linking $@... - $(LD_CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \ + $(LD_CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) libcupsmime.a \ $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \ $(LIBPAPER) $(LIBMALLOC) $(SERVERLIBS) $(ONDEMANDLIBS) \ $(DNSSDLIBS) $(LIBS) $(LIBGSSAPI) $(LIBWRAP) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC) echo Linking $@... @@ -368,23 +330,26 @@ cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC) ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \ $(LIBMALLOC) $(SERVERLIBS) $(ONDEMANDLIBS) $(DNSSDLIBS) \ $(LIBGSSAPI) $(LIBWRAP) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # Make the cupsfilter utility. # -cupsfilter: cupsfilter.o $(LIBCUPSMIME) ../cups/$(LIBCUPS) +cupsfilter: cupsfilter.o libcupsmime.a ../cups/$(LIBCUPS) echo Linking $@... - $(LD_CC) $(LDFLAGS) -o cupsfilter cupsfilter.o -L. -lcupsmime $(LIBS) + $(LD_CC) $(LDFLAGS) -o cupsfilter cupsfilter.o libcupsmime.a $(LIBS) $(RM) convert $(LN) cupsfilter convert + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ cupsfilter-static: cupsfilter.o libcupsmime.a ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o cupsfilter-static cupsfilter.o libcupsmime.a \ ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \ $(DNSSDLIBS) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -394,16 +359,18 @@ cupsfilter-static: cupsfilter.o libcupsmime.a ../cups/$(LIBCUPSSTATIC) cups-deviced: cups-deviced.o util.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o cups-deviced cups-deviced.o util.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # Make the driver daemon, "cups-driverd". # -cups-driverd: cups-driverd.o util.o ../cups/$(LIBCUPS) ../ppdc/$(LIBCUPSPPDC) +cups-driverd: cups-driverd.o util.o ../cups/$(LIBCUPS) ../ppdc/libcupsppdc.a echo Linking $@... $(LD_CXX) $(LDFLAGS) -o cups-driverd cups-driverd.o util.o \ - -L../ppdc -lcupsppdc $(LIBS) + ../ppdc/libcupsppdc.a $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -413,6 +380,7 @@ cups-driverd: cups-driverd.o util.o ../cups/$(LIBCUPS) ../ppdc/$(LIBCUPSPPDC) cups-exec: cups-exec.o echo Linking $@... $(LD_CC) $(LDFLAGS) -o cups-exec cups-exec.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -422,43 +390,7 @@ cups-exec: cups-exec.o cups-lpd: cups-lpd.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o cups-lpd cups-lpd.o $(LIBS) - - -# -# libcupsmime.so.1 -# - -libcupsmime.so.1: $(LIBOBJS) - echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS) - $(RM) `basename $@ .1` - $(LN) $@ `basename $@ .1` - - -# -# libcupsmime.1.dylib -# - -libcupsmime.1.dylib: $(LIBOBJS) libcupsmime.exp - echo Linking $@... - $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \ - -install_name $(libdir)/$@ \ - -current_version 1.0.0 \ - -compatibility_version 1.0.0 \ - -exported_symbols_list libcupsmime.exp \ - $(LIBOBJS) $(LIBS) - $(RM) libcupsmime.dylib - $(LN) $@ libcupsmime.dylib - - -# -# libcupsmime.la -# - -libcupsmime.la: $(LIBOBJS) - echo Linking $@... - $(LD_CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \ - -version-info 1:0 $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -480,6 +412,7 @@ testlpd: testlpd.o ../cups/$(LIBCUPSSTATIC) cups-lpd echo Linking $@... $(LD_CC) $(LDFLAGS) -o testlpd testlpd.o ../cups/$(LIBCUPSSTATIC) \ $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -491,6 +424,7 @@ testmime: testmime.o libcupsmime.a ../cups/$(LIBCUPSSTATIC) $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testmime.o libcupsmime.a \ ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \ $(DNSSDLIBS) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Running MIME tests... ./testmime @@ -503,6 +437,7 @@ testspeed: testspeed.o ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o testspeed testspeed.o ../cups/$(LIBCUPSSTATIC) \ $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -513,6 +448,7 @@ testsub: testsub.o ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o testsub testsub.o ../cups/$(LIBCUPSSTATIC) \ $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/scheduler/client.c b/scheduler/client.c index 0719700..a21b909 100644 --- a/scheduler/client.c +++ b/scheduler/client.c @@ -2413,7 +2413,7 @@ cupsdSendHeader( #ifdef HAVE_AUTHORIZATION_H if (!_cups_strncasecmp(name, "@AUTHKEY(", 9)) { - snprintf(auth_key, auth_size, ", AuthRef key=\"%s\"", name + 9); + snprintf(auth_key, auth_size, ", AuthRef key=\"%s\", Local trc=\"y\"", name + 9); need_local = 0; /* end parenthesis is stripped in conf.c */ break; @@ -2424,11 +2424,10 @@ cupsdSendHeader( { #ifdef HAVE_AUTHORIZATION_H if (SystemGroupAuthKey) - snprintf(auth_key, auth_size, ", AuthRef key=\"%s\"", SystemGroupAuthKey); + snprintf(auth_key, auth_size, ", AuthRef key=\"%s\", Local trc=\"y\"", SystemGroupAuthKey); else -#else - strlcpy(auth_key, ", Local trc=\"y\"", auth_size); #endif /* HAVE_AUTHORIZATION_H */ + strlcpy(auth_key, ", Local trc=\"y\"", auth_size); need_local = 0; break; } diff --git a/scheduler/conf.h b/scheduler/conf.h index 873c370..b608367 100644 --- a/scheduler/conf.h +++ b/scheduler/conf.h @@ -1,7 +1,7 @@ /* * Configuration file definitions for the CUPS scheduler. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -279,20 +279,16 @@ extern int cupsdCheckProgram(const char *filename, cupsd_printer_t *p); extern int cupsdDefaultAuthType(void); extern void cupsdFreeAliases(cups_array_t *aliases); extern char *cupsdGetDateTime(struct timeval *t, cupsd_time_t format); -extern int cupsdLogClient(cupsd_client_t *con, int level, - const char *message, ...) - __attribute__((__format__(__printf__, 3, 4))); +extern int cupsdLogClient(cupsd_client_t *con, int level, const char *message, ...) _CUPS_FORMAT(3, 4); extern void cupsdLogFCMessage(void *context, _cups_fc_result_t result, const char *message); #ifdef HAVE_GSSAPI extern int cupsdLogGSSMessage(int level, OM_uint32 major_status, OM_uint32 minor_status, - const char *message, ...); + const char *message, ...) _CUPS_FORMAT(4, 5); #endif /* HAVE_GSSAPI */ -extern int cupsdLogJob(cupsd_job_t *job, int level, const char *message, - ...) __attribute__((__format__(__printf__, 3, 4))); -extern int cupsdLogMessage(int level, const char *message, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); +extern int cupsdLogJob(cupsd_job_t *job, int level, const char *message, ...) _CUPS_FORMAT(3, 4); +extern int cupsdLogMessage(int level, const char *message, ...) _CUPS_FORMAT(2, 3); extern int cupsdLogPage(cupsd_job_t *job, const char *page); extern int cupsdLogRequest(cupsd_client_t *con, http_status_t code); extern int cupsdReadConfiguration(void); diff --git a/scheduler/cups-deviced.c b/scheduler/cups-deviced.c index 13efa54..42eaa59 100644 --- a/scheduler/cups-deviced.c +++ b/scheduler/cups-deviced.c @@ -1,7 +1,7 @@ /* * Device scanning mini-daemon for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -312,7 +312,7 @@ main(int argc, /* I - Number of command-line args */ break; } } - while (bpipe->ptr && memchr(bpipe->ptr, '\n', (size_t)(bpipe->end - bpipe->ptr))); + while (_cupsFilePeekAhead(bpipe, '\n')); } } diff --git a/scheduler/cups-driverd.cxx b/scheduler/cups-driverd.cxx index 45e6e65..e6684a1 100644 --- a/scheduler/cups-driverd.cxx +++ b/scheduler/cups-driverd.cxx @@ -157,7 +157,7 @@ static ppd_info_t *add_ppd(const char *filename, const char *name, size_t size, int model_number, int type, const char *scheme); static int cat_drv(const char *name, int request_id); -static int cat_ppd(const char *name, int request_id); +static void cat_ppd(const char *name, int request_id); static int cat_static(const char *name, int request_id); static int cat_tar(const char *name, int request_id); static int compare_inodes(struct stat *a, struct stat *b); @@ -167,12 +167,12 @@ static int compare_names(const ppd_info_t *p0, const ppd_info_t *p1); static int compare_ppds(const ppd_info_t *p0, const ppd_info_t *p1); -static int dump_ppds_dat(const char *filename); +static void dump_ppds_dat(const char *filename); static void free_array(cups_array_t *a); static cups_file_t *get_file(const char *name, int request_id, const char *subdir, char *buffer, size_t bufsize, char **subfile); -static int list_ppds(int request_id, int limit, const char *opt); +static void list_ppds(int request_id, int limit, const char *opt); static int load_drivers(cups_array_t *include, cups_array_t *exclude); static int load_drv(const char *filename, const char *name, @@ -208,13 +208,13 @@ main(int argc, /* I - Number of command-line args */ */ if (argc == 3 && !strcmp(argv[1], "cat")) - return (cat_ppd(argv[2], 0)); + cat_ppd(argv[2], 0); else if ((argc == 2 || argc == 3) && !strcmp(argv[1], "dump")) - return (dump_ppds_dat(argv[2])); + dump_ppds_dat(argv[2]); else if (argc == 4 && !strcmp(argv[1], "get")) - return (cat_ppd(argv[3], atoi(argv[2]))); + cat_ppd(argv[3], atoi(argv[2])); else if (argc == 5 && !strcmp(argv[1], "list")) - return (list_ppds(atoi(argv[2]), atoi(argv[3]), argv[4])); + list_ppds(atoi(argv[2]), atoi(argv[3]), argv[4]); else { fputs("Usage: cups-driverd cat ppd-name\n", stderr); @@ -432,7 +432,7 @@ cat_drv(const char *name, /* I - PPD name */ * 'cat_ppd()' - Copy a PPD file to stdout. */ -static int /* O - Exit code */ +static void cat_ppd(const char *name, /* I - PPD name */ int request_id) /* I - Request ID for response? */ { @@ -449,7 +449,7 @@ cat_ppd(const char *name, /* I - PPD name */ if (strstr(name, "../")) { fputs("ERROR: Invalid PPD name.\n", stderr); - return (1); + exit(1); } strlcpy(scheme, name, sizeof(scheme)); @@ -479,11 +479,11 @@ cat_ppd(const char *name, /* I - PPD name */ puts("Content-Type: application/ipp\n"); if (!scheme[0]) - return (cat_static(name, request_id)); + exit(cat_static(name, request_id)); else if (!strcmp(scheme, "drv")) - return (cat_drv(name, request_id)); + exit(cat_drv(name, request_id)); else if (!strcmp(scheme, "file")) - return (cat_tar(name, request_id)); + exit(cat_tar(name, request_id)); else { /* @@ -521,7 +521,7 @@ cat_ppd(const char *name, /* I - PPD name */ cupsdSendIPPTrailer(); } - return (1); + exit(1); } /* @@ -551,15 +551,15 @@ cat_ppd(const char *name, /* I - PPD name */ fprintf(stderr, "ERROR: [cups-driverd] Unable to execute \"%s\" - %s\n", line, strerror(errno)); - return (1); + exit(1); } } /* - * Return with no errors... + * Exit with no errors... */ - return (0); + exit(0); } @@ -782,7 +782,7 @@ compare_ppds(const ppd_info_t *p0, /* I - First PPD file */ * 'dump_ppds_dat()' - Dump the contents of the ppds.dat file. */ -static int /* O - Exit status */ +static void dump_ppds_dat(const char *filename) /* I - Filename */ { char temp[1024]; /* ppds.dat filename */ @@ -814,7 +814,7 @@ dump_ppds_dat(const char *filename) /* I - Filename */ ppd->record.make_and_model, ppd->record.device_id, ppd->record.scheme); - return (0); + exit(0); } @@ -1008,7 +1008,7 @@ get_file(const char *name, /* I - Name */ * 'list_ppds()' - List PPD files. */ -static int /* O - Exit code */ +static void list_ppds(int request_id, /* I - Request ID */ int limit, /* I - Limit */ const char *opt) /* I - Option argument */ @@ -1570,7 +1570,7 @@ list_ppds(int request_id, /* I - Request ID */ if (request_id) cupsdSendIPPTrailer(); - return (0); + exit(0); } diff --git a/scheduler/cups-exec.c b/scheduler/cups-exec.c index aab43a7..6a3c745 100644 --- a/scheduler/cups-exec.c +++ b/scheduler/cups-exec.c @@ -1,7 +1,7 @@ /* * Sandbox helper for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * * These coded instructions, statements, and computer programs are the * property of Apple Inc. and are protected by Federal copyright @@ -37,7 +37,7 @@ * Local functions... */ -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; /* diff --git a/scheduler/cupsd.h b/scheduler/cupsd.h index ad37bee..54d2a4f 100644 --- a/scheduler/cupsd.h +++ b/scheduler/cupsd.h @@ -1,7 +1,7 @@ /* * Main header file for the CUPS scheduler. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -30,11 +30,11 @@ #include <sys/stat.h> #include <sys/wait.h> -#ifdef WIN32 +#ifdef _WIN32 # include <direct.h> #else # include <unistd.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #include "mime.h" @@ -171,8 +171,7 @@ VAR int OnDemand VALUE(0); extern void cupsdInitEnv(void); extern int cupsdLoadEnv(char *envp[], int envmax); extern void cupsdSetEnv(const char *name, const char *value); -extern void cupsdSetEnvf(const char *name, const char *value, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); +extern void cupsdSetEnvf(const char *name, const char *value, ...) _CUPS_FORMAT(2, 3); extern void cupsdUpdateEnv(void); /* file.c */ @@ -196,8 +195,7 @@ extern char *cupsdMakeUUID(const char *name, int number, char *buffer, size_t bufsize); extern void cupsdReleaseSignals(void); extern void cupsdSetString(char **s, const char *v); -extern void cupsdSetStringf(char **s, const char *f, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); +extern void cupsdSetStringf(char **s, const char *f, ...) _CUPS_FORMAT(2, 3); /* process.c */ extern void *cupsdCreateProfile(int job_id, int allow_networking); diff --git a/scheduler/cupsfilter.c b/scheduler/cupsfilter.c index 596b491..0d1fdb9 100644 --- a/scheduler/cupsfilter.c +++ b/scheduler/cupsfilter.c @@ -1,7 +1,7 @@ /* * Filtering program for CUPS. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2006 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -82,7 +82,7 @@ static int open_pipe(int *fds); static int read_cups_files_conf(const char *filename); static void set_string(char **s, const char *val); static void sighandler(int sig); -static void usage(const char *opt) __attribute__((noreturn)); +static void usage(const char *opt) _CUPS_NORETURN; /* diff --git a/scheduler/ipp.c b/scheduler/ipp.c index d1c6a89..6ea3e37 100644 --- a/scheduler/ipp.c +++ b/scheduler/ipp.c @@ -118,9 +118,7 @@ static void save_auth_info(cupsd_client_t *con, cupsd_job_t *job, static void send_document(cupsd_client_t *con, ipp_attribute_t *uri); static void send_http_error(cupsd_client_t *con, http_status_t status, cupsd_printer_t *printer); -static void send_ipp_status(cupsd_client_t *con, ipp_status_t status, - const char *message, ...) - __attribute__((__format__(__printf__, 3, 4))); +static void send_ipp_status(cupsd_client_t *con, ipp_status_t status, const char *message, ...) _CUPS_FORMAT(3, 4); static void set_default(cupsd_client_t *con, ipp_attribute_t *uri); static void set_job_attrs(cupsd_client_t *con, ipp_attribute_t *uri); static void set_printer_attrs(cupsd_client_t *con, ipp_attribute_t *uri); @@ -253,7 +251,7 @@ cupsdProcessIPPRequest( */ attr = con->request->attrs; - if (attr && attr->name && !strcmp(attr->name, "attributes-charset") && (attr->value_tag & IPP_TAG_MASK) == IPP_TAG_CHARSET) + if (attr && attr->name && !strcmp(attr->name, "attributes-charset") && (attr->value_tag & IPP_TAG_MASK) == IPP_TAG_CHARSET && attr->group_tag == IPP_TAG_OPERATION) charset = attr; else charset = NULL; @@ -261,7 +259,7 @@ cupsdProcessIPPRequest( if (attr) attr = attr->next; - if (attr && attr->name && !strcmp(attr->name, "attributes-natural-language") && (attr->value_tag & IPP_TAG_MASK) == IPP_TAG_LANGUAGE) + if (attr && attr->name && !strcmp(attr->name, "attributes-natural-language") && (attr->value_tag & IPP_TAG_MASK) == IPP_TAG_LANGUAGE && attr->group_tag == IPP_TAG_OPERATION) { language = attr; @@ -279,12 +277,12 @@ cupsdProcessIPPRequest( else language = NULL; - if ((attr = ippFindAttribute(con->request, "printer-uri", IPP_TAG_URI)) != NULL) + if ((attr = ippFindAttribute(con->request, "printer-uri", IPP_TAG_URI)) != NULL && attr->group_tag == IPP_TAG_OPERATION) uri = attr; - else if ((attr = ippFindAttribute(con->request, "job-uri", IPP_TAG_URI)) != NULL) + else if ((attr = ippFindAttribute(con->request, "job-uri", IPP_TAG_URI)) != NULL && attr->group_tag == IPP_TAG_OPERATION) uri = attr; - else if (con->request->request.op.operation_id == CUPS_GET_PPD) - uri = ippFindAttribute(con->request, "ppd-name", IPP_TAG_NAME); + else if (con->request->request.op.operation_id == CUPS_GET_PPD && (attr = ippFindAttribute(con->request, "ppd-name", IPP_TAG_NAME)) != NULL && attr->group_tag == IPP_TAG_OPERATION) + uri = attr; else uri = NULL; @@ -4809,10 +4807,10 @@ copy_job_attrs(cupsd_client_t *con, /* I - Client connection */ ippAddInteger(con->response, IPP_TAG_JOB, IPP_TAG_INTEGER, "job-k-octets", job->koctets); if (job->name && (!ra || cupsArrayFind(ra, "job-name"))) - ippAddString(con->response, IPP_TAG_JOB, IPP_CONST_TAG(IPP_TAG_NAME), "job-name", NULL, job->name); + ippAddString(con->response, IPP_TAG_JOB, IPP_TAG_NAME, "job-name", NULL, job->name); if (job->username && (!ra || cupsArrayFind(ra, "job-originating-user-name"))) - ippAddString(con->response, IPP_TAG_JOB, IPP_CONST_TAG(IPP_TAG_NAME), "job-originating-user-name", NULL, job->username); + ippAddString(con->response, IPP_TAG_JOB, IPP_TAG_NAME, "job-originating-user-name", NULL, job->username); if (!ra || cupsArrayFind(ra, "job-state")) ippAddInteger(con->response, IPP_TAG_JOB, IPP_TAG_ENUM, "job-state", (int)job->state_value); @@ -4957,12 +4955,9 @@ copy_printer_attrs( }; if (printer->type & CUPS_PRINTER_CLASS) - ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME | IPP_TAG_COPY, - "printer-error-policy-supported", NULL, "retry-current-job"); + ippAddString(con->response, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_NAME), "printer-error-policy-supported", NULL, "retry-current-job"); else - ippAddStrings(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME | IPP_TAG_COPY, - "printer-error-policy-supported", - sizeof(errors) / sizeof(errors[0]), NULL, errors); + ippAddStrings(con->response, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_NAME), "printer-error-policy-supported", sizeof(errors) / sizeof(errors[0]), NULL, errors); } if (!ra || cupsArrayFind(ra, "printer-icons")) @@ -5107,9 +5102,7 @@ copy_subscription_attrs( * Simple event list... */ - ippAddString(con->response, IPP_TAG_SUBSCRIPTION, - (ipp_tag_t)(IPP_TAG_KEYWORD | IPP_TAG_COPY), - "notify-events", NULL, name); + ippAddString(con->response, IPP_TAG_SUBSCRIPTION, IPP_CONST_TAG(IPP_TAG_KEYWORD), "notify-events", NULL, name); } else { @@ -5121,15 +5114,12 @@ copy_subscription_attrs( if (sub->mask & mask) count ++; - attr = ippAddStrings(con->response, IPP_TAG_SUBSCRIPTION, - (ipp_tag_t)(IPP_TAG_KEYWORD | IPP_TAG_COPY), - "notify-events", count, NULL, NULL); + attr = ippAddStrings(con->response, IPP_TAG_SUBSCRIPTION, IPP_CONST_TAG(IPP_TAG_KEYWORD), "notify-events", count, NULL, NULL); for (mask = 1, count = 0; mask < CUPSD_EVENT_ALL; mask <<= 1) if (sub->mask & mask) { - attr->values[count].string.text = - (char *)cupsdEventName((cupsd_eventmask_t)mask); + attr->values[count].string.text = (char *)cupsdEventName((cupsd_eventmask_t)mask); count ++; } @@ -5881,7 +5871,7 @@ create_subscriptions( { char temp[64]; /* Temporary string */ - memcpy(temp, user_data->values[0].unknown.data, user_data->values[0].unknown.length); + memcpy(temp, user_data->values[0].unknown.data, (size_t)user_data->values[0].unknown.length); temp[user_data->values[0].unknown.length] = '\0'; if (httpSeparateURI(HTTP_URI_CODING_ALL, temp, scheme, sizeof(scheme), userpass, sizeof(userpass), host, sizeof(host), &port, resource, sizeof(resource)) < HTTP_URI_OK) diff --git a/scheduler/job.c b/scheduler/job.c index ed8267d..554e092 100644 --- a/scheduler/job.c +++ b/scheduler/job.c @@ -3330,8 +3330,14 @@ finalize_job(cupsd_job_t *job, /* I - Job */ job_state == IPP_JOB_COMPLETED) { job_state = IPP_JOB_ABORTED; - message = "Job aborted due to backend errors; please consult " - "the error_log file for details."; + + if (ErrorLog) + { + snprintf(buffer, sizeof(buffer), "Job aborted due to backend errors; please consult the %s file for details.", ErrorLog); + message = buffer; + } + else + message = "Job aborted due to backend errors."; ippSetString(job->attrs, &job->reasons, 0, "aborted-by-system"); } @@ -3339,8 +3345,14 @@ finalize_job(cupsd_job_t *job, /* I - Job */ { job_state = IPP_JOB_PENDING; printer_state = IPP_PRINTER_STOPPED; - message = "Printer stopped due to backend errors; please " - "consult the error_log file for details."; + + if (ErrorLog) + { + snprintf(buffer, sizeof(buffer), "Printer stopped due to backend errors; please consult the %s file for details.", ErrorLog); + message = buffer; + } + else + message = "Printer stopped due to backend errors."; ippSetString(job->attrs, &job->reasons, 0, "none"); } @@ -3378,15 +3390,20 @@ finalize_job(cupsd_job_t *job, /* I - Job */ ippSetString(job->attrs, &job->reasons, 0, "job-hold-until-specified"); - message = "Job held indefinitely due to backend errors; please " - "consult the error_log file for details."; + + if (ErrorLog) + { + snprintf(buffer, sizeof(buffer), "Job held indefinitely due to backend errors; please consult the %s file for details.", ErrorLog); + message = buffer; + } + else + message = "Job held indefinitely due to backend errors."; } else if (!strcmp(reason, "account-info-needed")) { cupsdSetJobHoldUntil(job, "indefinite", 0); - message = "Job held indefinitely - account information is " - "required."; + message = "Job held indefinitely - account information is required."; } else if (!strcmp(reason, "account-closed")) { @@ -3398,8 +3415,7 @@ finalize_job(cupsd_job_t *job, /* I - Job */ { cupsdSetJobHoldUntil(job, "indefinite", 0); - message = "Job held indefinitely - account limit has been " - "reached."; + message = "Job held indefinitely - account limit has been reached."; } else { @@ -3418,8 +3434,14 @@ finalize_job(cupsd_job_t *job, /* I - Job */ */ printer_state = IPP_PRINTER_STOPPED; - message = "Printer stopped due to backend errors; please " - "consult the error_log file for details."; + + if (ErrorLog) + { + snprintf(buffer, sizeof(buffer), "Printer stopped due to backend errors; please consult the %s file for details.", ErrorLog); + message = buffer; + } + else + message = "Printer stopped due to backend errors."; if (job_state == IPP_JOB_COMPLETED) { @@ -3516,8 +3538,14 @@ finalize_job(cupsd_job_t *job, /* I - Job */ if (job_state == IPP_JOB_COMPLETED) { job_state = IPP_JOB_STOPPED; - message = "Job stopped due to filter errors; please consult the " - "error_log file for details."; + + if (ErrorLog) + { + snprintf(buffer, sizeof(buffer), "Job stopped due to filter errors; please consult the %s file for details.", ErrorLog); + message = buffer; + } + else + message = "Job stopped due to filter errors."; if (WIFSIGNALED(job->status)) ippSetString(job->attrs, &job->reasons, 0, "cups-filter-crashed"); diff --git a/scheduler/job.h b/scheduler/job.h index 54f5092..eb59029 100644 --- a/scheduler/job.h +++ b/scheduler/job.h @@ -1,7 +1,7 @@ /* * Print job definitions for the CUPS scheduler. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -164,12 +164,7 @@ extern void cupsdSaveJob(cupsd_job_t *job); extern void cupsdSetJobHoldUntil(cupsd_job_t *job, const char *when, int update); extern void cupsdSetJobPriority(cupsd_job_t *job, int priority); -extern void cupsdSetJobState(cupsd_job_t *job, - ipp_jstate_t newstate, - cupsd_jobaction_t action, - const char *message, ...) - __attribute__((__format__(__printf__, - 4, 5))); +extern void cupsdSetJobState(cupsd_job_t *job, ipp_jstate_t newstate, cupsd_jobaction_t action, const char *message, ...) _CUPS_FORMAT(4, 5); extern void cupsdStopAllJobs(cupsd_jobaction_t action, int kill_delay); extern int cupsdTimeoutJob(cupsd_job_t *job); diff --git a/scheduler/log.c b/scheduler/log.c index 5dbb0ba..bab9187 100644 --- a/scheduler/log.c +++ b/scheduler/log.c @@ -1,7 +1,7 @@ /* * Log file routines for the CUPS scheduler. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -568,56 +568,15 @@ cupsdLogJob(cupsd_job_t *job, /* I - Job */ if (level > LogLevel && LogDebugHistory <= 0) return (1); -#ifdef HAVE_SYSTEMD_SD_JOURNAL_H - if (!strcmp(ErrorLog, "syslog")) - { - cupsd_printer_t *printer = job ? (job->printer ? job->printer : (job->dest ? cupsdFindDest(job->dest) : NULL)) : NULL; - static const char * const job_states[] = - { /* job-state strings */ - "Pending", - "PendingHeld", - "Processing", - "ProcessingStopped", - "Canceled", - "Aborted", - "Completed" - }; - - va_start(ap, message); - - do - { - va_copy(ap2, ap); - status = format_log_line(message, ap2); - va_end(ap2); - } - while (status == 0); - - va_end(ap); - - if (job) - sd_journal_send("MESSAGE=%s", log_line, - "PRIORITY=%i", log_levels[level], - PWG_Event"=JobStateChanged", - PWG_ServiceURI"=%s", printer ? printer->uri : "", - PWG_JobID"=%d", job->id, - PWG_JobState"=%s", job->state_value < IPP_JSTATE_PENDING ? "" : job_states[job->state_value - IPP_JSTATE_PENDING], - PWG_JobImpressionsCompleted"=%d", ippGetInteger(job->impressions, 0), - NULL); - else - sd_journal_send("MESSAGE=%s", log_line, - "PRIORITY=%i", log_levels[level], - NULL); - - return (1); - } -#endif /* HAVE_SYSTEMD_SD_JOURNAL_H */ - /* * Format and write the log message... */ +#ifdef HAVE_SYSTEMD_SD_JOURNAL_H + if (job && strcmp(ErrorLog, "syslog")) +#else if (job) +#endif /* HAVE_SYSTEMD_SD_JOURNAL_H */ snprintf(jobmsg, sizeof(jobmsg), "[Job %d] %s", job->id, message); else strlcpy(jobmsg, message, sizeof(jobmsg)); @@ -676,7 +635,43 @@ cupsdLogJob(cupsd_job_t *job, /* I - Job */ return (1); } else if (level <= LogLevel) + { +#ifdef HAVE_SYSTEMD_SD_JOURNAL_H + if (!strcmp(ErrorLog, "syslog")) + { + cupsd_printer_t *printer = job ? (job->printer ? job->printer : (job->dest ? cupsdFindDest(job->dest) : NULL)) : NULL; + static const char * const job_states[] = + { /* job-state strings */ + "Pending", + "PendingHeld", + "Processing", + "ProcessingStopped", + "Canceled", + "Aborted", + "Completed" + }; + + if (job) + sd_journal_send("MESSAGE=%s", log_line, + "PRIORITY=%i", log_levels[level], + PWG_Event"=JobStateChanged", + PWG_ServiceURI"=%s", printer ? printer->uri : "", + PWG_JobID"=%d", job->id, + PWG_JobState"=%s", job->state_value < IPP_JSTATE_PENDING ? "" : job_states[job->state_value - IPP_JSTATE_PENDING], + PWG_JobImpressionsCompleted"=%d", ippGetInteger(job->impressions, 0), + NULL); + else + sd_journal_send("MESSAGE=%s", log_line, + "PRIORITY=%i", log_levels[level], + NULL); + + return (1); + } + else +#endif /* HAVE_SYSTEMD_SD_JOURNAL_H */ + return (cupsdWriteErrorLog(level, log_line)); + } else return (1); } @@ -1050,7 +1045,7 @@ cupsdLogRequest(cupsd_client_t *con, /* I - Request to log */ * Filter requests as needed... */ - if (AccessLogLevel == CUPSD_ACCESSLOG_NONE) + if (AccessLogLevel == CUPSD_ACCESSLOG_NONE || !AccessLog) return (1); else if (AccessLogLevel < CUPSD_ACCESSLOG_ALL) { diff --git a/scheduler/main.c b/scheduler/main.c index acf0316..a61592c 100644 --- a/scheduler/main.c +++ b/scheduler/main.c @@ -1,7 +1,7 @@ /* * Main loop for the CUPS scheduler. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -18,6 +18,9 @@ #define _MAIN_C_ #include "cupsd.h" #include <sys/resource.h> +#ifdef __APPLE__ +# include <xpc/xpc.h> +#endif /* __APPLE__ */ #ifdef HAVE_ASL_H # include <asl.h> #elif defined(HAVE_SYSTEMD_SD_JOURNAL_H) @@ -69,7 +72,7 @@ static void sigterm_handler(int sig); static long select_timeout(int fds); static void service_checkin(void); static void service_checkout(int shutdown); -static void usage(int status) __attribute__((noreturn)); +static void usage(int status) _CUPS_NORETURN; /* @@ -151,16 +154,6 @@ main(int argc, /* I - Number of command-line args */ fg = 0; -#ifdef HAVE_LAUNCHD - if (getenv("CUPSD_LAUNCHD")) - { - OnDemand = 1; - fg = 1; - close_all = 0; - disconnect = 0; - } -#endif /* HAVE_LAUNCHD */ - for (i = 1; i < argc; i ++) if (argv[i][0] == '-') for (opt = argv[i] + 1; *opt != '\0'; opt ++) @@ -1470,9 +1463,16 @@ process_children(void) (!job->filters[i] && WIFEXITED(old_status))) { /* Backend and filter didn't crash */ if (job->filters[i]) + { job->status = status; /* Filter failed */ + } else + { job->status = -status; /* Backend failed */ + + if (job->current_file < job->num_files) + cupsdSetJobState(job, IPP_JOB_ABORTED, CUPSD_JOB_FORCE, "Canceling multi-file job due to backend failure."); + } } if (job->state_value == IPP_JOB_PROCESSING && @@ -1946,6 +1946,10 @@ service_checkin(void) service_add_listener(ld_sockets[i], (int)i); free(ld_sockets); + +# ifdef __APPLE__ + xpc_transaction_begin(); +# endif /* __APPLE__ */ } #elif defined(HAVE_SYSTEMD) @@ -2084,6 +2088,11 @@ service_checkout(int shutdown) /* I - Shutting down? */ else cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create KeepAlive/PID file \"%s\": %s", pidfile, strerror(errno)); } + +# ifdef __APPLE__ + if (OnDemand && shutdown) + xpc_transaction_end(); +# endif /* __APPLE__ */ } diff --git a/scheduler/mime-private.h b/scheduler/mime-private.h index f8168de..ed9bbc1 100644 --- a/scheduler/mime-private.h +++ b/scheduler/mime-private.h @@ -1,7 +1,7 @@ /* * Private MIME type/conversion database definitions for CUPS. * - * Copyright 2011 by Apple Inc. + * Copyright 2011-2018 by Apple Inc. * * These coded instructions, statements, and computer programs are the * property of Apple Inc. and are protected by Federal copyright @@ -29,8 +29,7 @@ extern "C" { * Prototypes... */ -extern void _mimeError(mime_t *mime, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); +extern void _mimeError(mime_t *mime, const char *format, ...) _CUPS_FORMAT(2, 3); # ifdef __cplusplus diff --git a/scheduler/org.cups.cupsd.plist b/scheduler/org.cups.cupsd.plist index 8e1d0e9..20ff05d 100644 --- a/scheduler/org.cups.cupsd.plist +++ b/scheduler/org.cups.cupsd.plist @@ -8,8 +8,6 @@ <string>Adaptive</string> <key>EnableTransactions</key> <true/> - <key>EnablePressuredExit</key> - <false/> <key>ExitTimeOut</key> <integer>60</integer> <key>KeepAlive</key> diff --git a/scheduler/sysman.c b/scheduler/sysman.c index 46eb39a..42a8d1c 100644 --- a/scheduler/sysman.c +++ b/scheduler/sysman.c @@ -1,7 +1,7 @@ /* * System management functions for the CUPS scheduler. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -18,7 +18,6 @@ #include "cupsd.h" #ifdef __APPLE__ -# include <xpc/xpc.h> # include <IOKit/pwr_mgt/IOPMLib.h> #endif /* __APPLE__ */ @@ -129,7 +128,6 @@ cupsdSetBusyState(int working) /* I - Doing significant work? */ "Active clients, printing jobs, and dirty files" }; #ifdef __APPLE__ - static int tran = 0; /* Current busy transaction */ static IOPMAssertionID keep_awake = 0;/* Keep the system awake while printing */ #endif /* __APPLE__ */ @@ -168,24 +166,9 @@ cupsdSetBusyState(int working) /* I - Doing significant work? */ */ if (newbusy != busy) - { busy = newbusy; #ifdef __APPLE__ - if (busy && !tran) - { - xpc_transaction_begin(); - tran = 1; - } - else if (!busy && tran) - { - xpc_transaction_end(); - tran = 0; - } -#endif /* __APPLE__ */ - } - -#ifdef __APPLE__ if (cupsArrayCount(PrintingJobs) > 0 && !keep_awake) { cupsdLogMessage(CUPSD_LOG_DEBUG, "Asserting NetworkClientActive."); diff --git a/scheduler/testlpd.c b/scheduler/testlpd.c index 748f479..3257ad3 100644 --- a/scheduler/testlpd.c +++ b/scheduler/testlpd.c @@ -1,7 +1,7 @@ /* * cups-lpd test program for CUPS. * - * Copyright 2007-2015 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 2006 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -29,12 +29,12 @@ */ static int do_command(int outfd, int infd, const char *command); -static int print_job(int outfd, int infd, char *dest, char **args) __attribute__((nonnull(4))); +static int print_job(int outfd, int infd, char *dest, char **args) _CUPS_NONNULL((4)); static int print_waiting(int outfd, int infd, char *dest); -static int remove_job(int outfd, int infd, char *dest, char **args) __attribute__((nonnull(4))); -static int status_long(int outfd, int infd, char *dest, char **args) __attribute__((nonnull(4))); -static int status_short(int outfd, int infd, char *dest, char **args) __attribute__((nonnull(4))); -static void usage(void) __attribute__((noreturn)); +static int remove_job(int outfd, int infd, char *dest, char **args) _CUPS_NONNULL((4)); +static int status_long(int outfd, int infd, char *dest, char **args) _CUPS_NONNULL((4)); +static int status_short(int outfd, int infd, char *dest, char **args) _CUPS_NONNULL((4)); +static void usage(void) _CUPS_NORETURN; /* diff --git a/scheduler/testspeed.c b/scheduler/testspeed.c index c1863b2..a190e74 100644 --- a/scheduler/testspeed.c +++ b/scheduler/testspeed.c @@ -1,7 +1,7 @@ /* * Scheduler speed test for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2005 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -31,7 +31,7 @@ static int do_test(const char *server, int port, http_encryption_t encryption, int requests, const char *opstring, int verbose); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; /* diff --git a/scheduler/testsub.c b/scheduler/testsub.c index 755e9b3..35cd3b6 100644 --- a/scheduler/testsub.c +++ b/scheduler/testsub.c @@ -1,7 +1,7 @@ /* * Scheduler notification tester for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 2006-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -35,7 +35,7 @@ static int terminate = 0; static void print_attributes(ipp_t *ipp, int indent); static void sigterm_handler(int sig); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; /* diff --git a/scheduler/type.c b/scheduler/type.c index d1b0a41..3ff1951 100644 --- a/scheduler/type.c +++ b/scheduler/type.c @@ -1087,7 +1087,7 @@ mime_check_rules( break; case MIME_MAGIC_LOCALE : -#if defined(WIN32) || defined(__EMX__) || defined(__APPLE__) +#if defined(_WIN32) || defined(__EMX__) || defined(__APPLE__) result = !strcmp(rules->value.localev, setlocale(LC_ALL, "")); #else result = !strcmp(rules->value.localev, setlocale(LC_MESSAGES, "")); diff --git a/systemv/Makefile b/systemv/Makefile index a9edd56..9bacd4c 100644 --- a/systemv/Makefile +++ b/systemv/Makefile @@ -159,6 +159,7 @@ uninstall: cancel: cancel.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o cancel cancel.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -168,6 +169,7 @@ cancel: cancel.o ../cups/$(LIBCUPS) cupsaccept: cupsaccept.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o cupsaccept cupsaccept.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ for file in accept cupsenable cupsdisable cupsreject reject; do \ $(RM) $$file; \ $(LN) cupsaccept $$file; \ @@ -181,6 +183,7 @@ cupsaccept: cupsaccept.o ../cups/$(LIBCUPS) cupsaddsmb: cupsaddsmb.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o cupsaddsmb cupsaddsmb.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -190,6 +193,7 @@ cupsaddsmb: cupsaddsmb.o ../cups/$(LIBCUPS) cupsctl: cupsctl.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o cupsctl cupsctl.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -199,6 +203,7 @@ cupsctl: cupsctl.o ../cups/$(LIBCUPS) cupstestdsc: cupstestdsc.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ cupstestdsc.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -208,11 +213,13 @@ cupstestdsc: cupstestdsc.o ../cups/$(LIBCUPS) cupstestppd: cupstestppd.o ../cups/$(LIBCUPS) ../filter/$(LIBCUPSIMAGE) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ cupstestppd.o $(LINKCUPSIMAGE) $(IMGLIBS) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ cupstestppd-static: cupstestppd.o ../cups/$(LIBCUPSSTATIC) ../filter/libcupsimage.a echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ cupstestppd.o ../filter/libcupsimage.a \ ../cups/$(LIBCUPSSTATIC) $(IMGLIBS) $(LIBGSSAPI) $(LIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -222,6 +229,7 @@ cupstestppd-static: cupstestppd.o ../cups/$(LIBCUPSSTATIC) ../filter/libcupsimag lp: lp.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lp lp.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -231,6 +239,7 @@ lp: lp.o ../cups/$(LIBCUPS) lpadmin: lpadmin.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpadmin lpadmin.o $(LIBZ) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -240,6 +249,7 @@ lpadmin: lpadmin.o ../cups/$(LIBCUPS) lpinfo: lpinfo.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpinfo lpinfo.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -249,6 +259,7 @@ lpinfo: lpinfo.o ../cups/$(LIBCUPS) lpmove: lpmove.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpmove lpmove.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -258,6 +269,7 @@ lpmove: lpmove.o ../cups/$(LIBCUPS) lpoptions: lpoptions.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpoptions lpoptions.o $(LIBZ) $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -267,6 +279,7 @@ lpoptions: lpoptions.o ../cups/$(LIBCUPS) lpstat: lpstat.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o lpstat lpstat.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/systemv/cupsaddsmb.c b/systemv/cupsaddsmb.c index 0e63b9d..5e458d5 100644 --- a/systemv/cupsaddsmb.c +++ b/systemv/cupsaddsmb.c @@ -1,7 +1,7 @@ /* * "cupsaddsmb" command for CUPS. * - * Copyright 2007-2012 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 2001-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -37,7 +37,7 @@ const char *SAMBAUser, */ int export_dest(http_t *http, const char *dest); -void usage(void) __attribute__((noreturn)); +void usage(void) _CUPS_NORETURN; /* diff --git a/systemv/cupsctl.c b/systemv/cupsctl.c index c9ab991..c60c218 100644 --- a/systemv/cupsctl.c +++ b/systemv/cupsctl.c @@ -1,7 +1,7 @@ /* * Scheduler control program for CUPS. * - * Copyright 2007-2012 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 2006-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -25,7 +25,7 @@ * Local functions... */ -static void usage(const char *opt) __attribute__((noreturn)); +static void usage(const char *opt) _CUPS_NORETURN; /* diff --git a/systemv/cupstestdsc.c b/systemv/cupstestdsc.c index 84c4e98..093b77b 100644 --- a/systemv/cupstestdsc.c +++ b/systemv/cupstestdsc.c @@ -1,7 +1,7 @@ /* * DSC test program for CUPS. * - * Copyright 2007-2010 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 2006 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -27,7 +27,7 @@ */ static int check_file(const char *filename); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; /* diff --git a/systemv/cupstestppd.c b/systemv/cupstestppd.c index 9344c51..c154af2 100644 --- a/systemv/cupstestppd.c +++ b/systemv/cupstestppd.c @@ -1,7 +1,7 @@ /* * PPD test program for CUPS. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -24,9 +24,9 @@ #include <cups/ppd-private.h> #include <cups/raster.h> #include <math.h> -#ifdef WIN32 +#ifdef _WIN32 # define X_OK 0 -#endif /* WIN32 */ +#endif /* _WIN32 */ /* @@ -107,7 +107,7 @@ static int check_translations(ppd_file_t *ppd, int errors, int verbose, int warn); static void show_conflicts(ppd_file_t *ppd, const char *prefix); static int test_raster(ppd_file_t *ppd, int verbose); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; static int valid_path(const char *keyword, const char *path, int errors, int verbose, int warn); static int valid_utf8(const char *s); diff --git a/systemv/lpadmin.c b/systemv/lpadmin.c index 1ea0d33..6828f8a 100644 --- a/systemv/lpadmin.c +++ b/systemv/lpadmin.c @@ -38,7 +38,7 @@ static cups_ptype_t get_printer_type(http_t *http, char *printer, char *uri, size_t urisize); static int set_printer_options(http_t *http, char *printer, int num_options, cups_option_t *options, - char *file); + char *file, int enable); static int validate_name(const char *name); @@ -56,6 +56,7 @@ main(int argc, /* I - Number of command-line arguments */ *pclass, /* Printer class name */ *opt, /* Option pointer */ *val; /* Pointer to allow/deny value */ + int enable = 0; /* Enable/resume printer? */ int num_options; /* Number of options */ cups_option_t *options; /* Options */ char *file, /* New PPD file */ @@ -265,8 +266,7 @@ main(int argc, /* I - Number of command-line arguments */ } } - if (enable_printer(http, printer)) - return (1); + enable = 1; break; case 'm' : /* Use the specified standard script/PPD file */ @@ -649,9 +649,11 @@ main(int argc, /* I - Number of command-line arguments */ } } - if (set_printer_options(http, printer, num_options, options, file)) + if (set_printer_options(http, printer, num_options, options, file, enable)) return (1); } + else if (enable && enable_printer(http, printer)) + return (1); if (evefile[0]) unlink(evefile); @@ -1127,33 +1129,33 @@ enable_printer(http_t *http, /* I - Server connection */ DEBUG_printf(("enable_printer(%p, \"%s\")\n", http, printer)); /* - * Build a IPP_OP_CUPS_ADD_MODIFY_PRINTER or IPP_OP_CUPS_ADD_MODIFY_CLASS request, which + * Send IPP_OP_ENABLE_PRINTER and IPP_OP_RESUME_PRINTER requests, which * require the following attributes: * * attributes-charset * attributes-natural-language * printer-uri * requesting-user-name - * printer-state - * printer-is-accepting-jobs */ - if (get_printer_type(http, printer, uri, sizeof(uri)) & CUPS_PRINTER_CLASS) - request = ippNewRequest(IPP_OP_CUPS_ADD_MODIFY_CLASS); - else - request = ippNewRequest(IPP_OP_CUPS_ADD_MODIFY_PRINTER); + request = ippNewRequest(IPP_OP_ENABLE_PRINTER); - ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, - "printer-uri", NULL, uri); - ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, - "requesting-user-name", NULL, cupsUser()); - ippAddInteger(request, IPP_TAG_PRINTER, IPP_TAG_ENUM, "printer-state", - IPP_PSTATE_IDLE); - ippAddBoolean(request, IPP_TAG_PRINTER, "printer-is-accepting-jobs", 1); + ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); + ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser()); - /* - * Do the request and get back a response... - */ + ippDelete(cupsDoRequest(http, request, "/admin/")); + + if (cupsLastError() > IPP_STATUS_OK_CONFLICTING) + { + _cupsLangPrintf(stderr, _("%s: %s"), "lpadmin", cupsLastErrorString()); + + return (1); + } + + request = ippNewRequest(IPP_OP_RESUME_PRINTER); + + ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); + ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser()); ippDelete(cupsDoRequest(http, request, "/admin/")); @@ -1163,8 +1165,8 @@ enable_printer(http_t *http, /* I - Server connection */ return (1); } - else - return (0); + + return (0); } @@ -1240,7 +1242,12 @@ get_printer_ppd( ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "requested-attributes", sizeof(pattrs) / sizeof(pattrs[0]), NULL, pattrs); response = cupsDoRequest(http, request, resource); - if (_ppdCreateFromIPP(buffer, bufsize, response)) + if (cupsLastError() >= IPP_STATUS_REDIRECTION_OTHER_SITE) + { + _cupsLangPrintf(stderr, _("%s: Unable to query printer: %s"), "lpadmin", cupsLastErrorString()); + buffer[0] = '\0'; + } + else if (_ppdCreateFromIPP(buffer, bufsize, response)) { if (!cupsGetOption("printer-geo-location", *num_options, *options) && (attr = ippFindAttribute(response, "printer-geo-location", IPP_TAG_URI)) != NULL) *num_options = cupsAddOption("printer-geo-location", ippGetString(attr, 0, NULL), *num_options, options); @@ -1333,7 +1340,8 @@ set_printer_options( char *printer, /* I - Printer */ int num_options, /* I - Number of options */ cups_option_t *options, /* I - Options */ - char *file) /* I - PPD file/interface script */ + char *file, /* I - PPD file */ + int enable) /* I - Enable printer? */ { ipp_t *request; /* IPP Request */ const char *ppdfile; /* PPD filename */ @@ -1379,6 +1387,12 @@ set_printer_options( ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser()); + if (enable) + { + ippAddInteger(request, IPP_TAG_PRINTER, IPP_TAG_ENUM, "printer-state", IPP_PSTATE_IDLE); + ippAddBoolean(request, IPP_TAG_PRINTER, "printer-is-accepting-jobs", 1); + } + /* * Add the options... */ diff --git a/systemv/lpoptions.c b/systemv/lpoptions.c index 76a6d78..fceab6d 100644 --- a/systemv/lpoptions.c +++ b/systemv/lpoptions.c @@ -1,7 +1,7 @@ /* * Printer option program for CUPS. * - * Copyright 2007-2016 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2006 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -25,7 +25,7 @@ static void list_group(ppd_file_t *ppd, ppd_group_t *group); static void list_options(cups_dest_t *dest); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; /* diff --git a/templates/admin.tmpl b/templates/admin.tmpl index 101f960..ae83399 100644 --- a/templates/admin.tmpl +++ b/templates/admin.tmpl @@ -79,19 +79,3 @@ </FORM>} </div> </div> - -<div class="row"> - <H2 CLASS="title">RSS Subscriptions</H2> - - <P> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription"><INPUT TYPE="SUBMIT" VALUE="Add RSS Subscription"></FORM> - </P> - - {notify_subscription_id?<TABLE CLASS="list" SUMMARY="RSS Subscriptions"> - <THEAD><TR><TH>Name</TH><TH>Events</TH><TH>Queue Name</TH></TR></THEAD> - <TBODY>{[notify_subscription_id] - <TR><TD><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A><BR> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-subscription"><INPUT TYPE="HIDDEN" NAME="notify_subscription_id" VALUE="{notify_subscription_id}"><INPUT TYPE="SUBMIT" VALUE="Cancel RSS Subscription"></FORM> </TD><TD>{notify_events}</TD><TD NOWRAP> {notify_printer_name?{notify_printer_name}:All Queues}</TD></TR>} - </TBODY> - </TABLE>:} -</div>
\ No newline at end of file diff --git a/templates/choose-model.tmpl b/templates/choose-model.tmpl index ee9338c..e916cf8 100644 --- a/templates/choose-model.tmpl +++ b/templates/choose-model.tmpl @@ -39,6 +39,7 @@ <TD> <SELECT NAME="PPD_NAME" SIZE="10"> {op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Current Driver - {current_make_and_model}</OPTION>:} +{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model} - IPP Everywhere ™</OPTION>:} {[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language}) }</SELECT> </TD> diff --git a/templates/de/admin.tmpl b/templates/de/admin.tmpl index fb2851a..c5fed72 100644 --- a/templates/de/admin.tmpl +++ b/templates/de/admin.tmpl @@ -79,19 +79,3 @@ </FORM>} </div> </div> - -<div class="row"> - <H2 CLASS="title">RSS-Abonnements</H2> - - <P> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription"><INPUT TYPE="SUBMIT" VALUE="RSS-Abonnement hinzufügen"></FORM> - </P> - - {notify_subscription_id?<TABLE CLASS="list" SUMMARY="RSS-Abonnements"> - <THEAD><TR><TH>Name</TH><TH>Ereignis</TH><TH>Warteschlange</TH></TR></THEAD> - <TBODY>{[notify_subscription_id] - <TR><TD><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A><BR> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-subscription"><INPUT TYPE="HIDDEN" NAME="notify_subscription_id" VALUE="{notify_subscription_id}"><INPUT TYPE="SUBMIT" VALUE="RSS-Abonnement beenden"></FORM> </TD><TD>{notify_events}</TD><TD NOWRAP> {notify_printer_name?{notify_printer_name}:Alle Warteschlangen}</TD></TR>} - </TBODY> - </TABLE>:} -</div> diff --git a/templates/de/choose-model.tmpl b/templates/de/choose-model.tmpl index cb9b6f3..7c853fa 100644 --- a/templates/de/choose-model.tmpl +++ b/templates/de/choose-model.tmpl @@ -39,6 +39,7 @@ Drucker {?printer_is_shared=?nicht:{?printer_is_shared=0?nicht:}} im Netzwerk fr <TD> <SELECT NAME="PPD_NAME" SIZE="10"> {op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Aktueller Treiber - {current_make_and_model}</OPTION>:} +{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model} - IPP Everywhere ™</OPTION>:} {[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language}) }</SELECT> </TD> diff --git a/templates/de/trailer.tmpl b/templates/de/trailer.tmpl index e3a12bf..54f03ac 100644 --- a/templates/de/trailer.tmpl +++ b/templates/de/trailer.tmpl @@ -1,5 +1,5 @@ </div> </div> - <div class="footer">CUPS und das CUPS-Logo sind Warenzeichen der <a href="https://www.apple.com/">Apple Inc.</a> Copyright © 2007-2017 Apple Inc. Alle Rechte vorbehalten.</div> + <div class="footer">CUPS und das CUPS-Logo sind Warenzeichen der <a href="https://www.apple.com/">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. Alle Rechte vorbehalten.</div> </body> </html> diff --git a/templates/es/admin.tmpl b/templates/es/admin.tmpl index 097c65c..edc0adf 100644 --- a/templates/es/admin.tmpl +++ b/templates/es/admin.tmpl @@ -79,19 +79,3 @@ </FORM>} </div> </div> - -<div class="row"> - <H2 CLASS="title">Subscripciones RSS</H2> - - <P> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription"><INPUT TYPE="SUBMIT" VALUE="Añadir subscripción RSS"></FORM> - </P> - - {notify_subscription_id?<TABLE CLASS="list" SUMMARY="Subscripciones RSS"> - <THEAD><TR><TH>Nombre</TH><TH>Eventos</TH><TH>Nombre de la cola</TH></TR></THEAD> - <TBODY>{[notify_subscription_id] - <TR><TD><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A><BR> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-subscription"><INPUT TYPE="HIDDEN" NAME="notify_subscription_id" VALUE="{notify_subscription_id}"><INPUT TYPE="SUBMIT" VALUE="Cancelar subscripción RSS"></FORM> </TD><TD>{notify_events}</TD><TD NOWRAP> {notify_printer_name?{notify_printer_name}:Todas las colas}</TD></TR>} - </TBODY> - </TABLE>:} -</div> diff --git a/templates/es/choose-model.tmpl b/templates/es/choose-model.tmpl index 8a5a4ba..bb8f3f5 100644 --- a/templates/es/choose-model.tmpl +++ b/templates/es/choose-model.tmpl @@ -39,6 +39,7 @@ <TD> <SELECT NAME="PPD_NAME" SIZE="10"> {op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Controlador actual - {current_make_and_model}</OPTION>:} +{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model} - IPP Everywhere ™</OPTION>:} {[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language}) }</SELECT> </TD> diff --git a/templates/es/trailer.tmpl b/templates/es/trailer.tmpl index 4baa71d..399189e 100644 --- a/templates/es/trailer.tmpl +++ b/templates/es/trailer.tmpl @@ -1,5 +1,5 @@ </div> </div> - <div class="footer">CUPS y el logo de CUPS son marcas registradas de <a href="http://www.apple.com">Apple Inc.</a> Derechos de autor © 2007-2017 Apple Inc. Todos los derechos reservados.</div> + <div class="footer">CUPS y el logo de CUPS son marcas registradas de <a href="http://www.apple.com">Apple Inc.</a> Derechos de autor © 2007-2018 Apple Inc. Todos los derechos reservados.</div> </body> </html> diff --git a/templates/fr/admin.tmpl b/templates/fr/admin.tmpl index 2fcd9c5..6e80265 100644 --- a/templates/fr/admin.tmpl +++ b/templates/fr/admin.tmpl @@ -79,19 +79,3 @@ </FORM>} </div> </div> - -<div class="row"> - <H2 CLASS="title">Abonnements RSS</H2> - - <P> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription"><INPUT TYPE="SUBMIT" VALUE="Ajouter un abonnement RSS"></FORM> - </P> - - {notify_subscription_id?<TABLE CLASS="list" SUMMARY="Abonnements RSS"> - <THEAD><TR><TH>Nom</TH><TH>Événements</TH><TH>Nom de la file</TH></TR></THEAD> - <TBODY>{[notify_subscription_id] - <TR><TD><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A><BR> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-subscription"><INPUT TYPE="HIDDEN" NAME="notify_subscription_id" VALUE="{notify_subscription_id}"><INPUT TYPE="SUBMIT" VALUE="Annuler l'abonnement RSS"></FORM> </TD><TD>{notify_events}</TD><TD NOWRAP> {notify_printer_name?{notify_printer_name}:Toutes les files}</TD></TR>} - </TBODY> - </TABLE>:} -</div> diff --git a/templates/fr/choose-model.tmpl b/templates/fr/choose-model.tmpl index 1e154f1..63ddabf 100644 --- a/templates/fr/choose-model.tmpl +++ b/templates/fr/choose-model.tmpl @@ -39,6 +39,7 @@ <TD> <SELECT NAME="PPD_NAME" SIZE="10"> {op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Pilote actuel - {current_make_and_model}</OPTION>:} +{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model} - IPP Everywhere ™</OPTION>:} {[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language}) }</SELECT> </TD> diff --git a/templates/fr/trailer.tmpl b/templates/fr/trailer.tmpl index 632632a..907155e 100644 --- a/templates/fr/trailer.tmpl +++ b/templates/fr/trailer.tmpl @@ -1,5 +1,5 @@ </div> </div> - <div class="footer">CUPS et le logo CUPS sont des marques déposées de <a href="http://www.apple.com">Apple Inc.</a> CUPS est sous copyright 2007-2017 Apple Inc. Tous droits réservés.</div> + <div class="footer">CUPS et le logo CUPS sont des marques déposées de <a href="http://www.apple.com">Apple Inc.</a> CUPS est sous copyright 2007-2018 Apple Inc. Tous droits réservés.</div> </body> </html> diff --git a/templates/ja/admin.tmpl b/templates/ja/admin.tmpl index 13d6f13..3443297 100644 --- a/templates/ja/admin.tmpl +++ b/templates/ja/admin.tmpl @@ -79,19 +79,3 @@ </FORM>} </div> </div> - -<div class="row"> - <H2 CLASS="title">RSS 購読</H2> - - <P> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription"><INPUT TYPE="SUBMIT" VALUE="RSS 購読の追加"></FORM> - </P> - - {notify_subscription_id?<TABLE CLASS="list" SUMMARY="RSS 購読"> - <THEAD><TR><TH>名前</TH><TH>イベント</TH><TH>キュー名</TH></TR></THEAD> - <TBODY>{[notify_subscription_id] - <TR><TD><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A><BR> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-subscription"><INPUT TYPE="HIDDEN" NAME="notify_subscription_id" VALUE="{notify_subscription_id}"><INPUT TYPE="SUBMIT" VALUE="RSS 購読のキャンセル"></FORM> </TD><TD>{notify_events}</TD><TD NOWRAP> {notify_printer_name?{notify_printer_name}:すべてのキュー}</TD></TR>} - </TBODY> - </TABLE>:} -</div>
\ No newline at end of file diff --git a/templates/ja/choose-model.tmpl b/templates/ja/choose-model.tmpl index daf1375..2054cef 100644 --- a/templates/ja/choose-model.tmpl +++ b/templates/ja/choose-model.tmpl @@ -39,6 +39,7 @@ <TD> <SELECT NAME="PPD_NAME" SIZE="10"> {op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>現在のドライバー - {current_make_and_model}</OPTION>:} +{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model} - IPP Everywhere ™</OPTION>:} {[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language}) }</SELECT> </TD> diff --git a/templates/ja/trailer.tmpl b/templates/ja/trailer.tmpl index 4f5ec07..04a205e 100644 --- a/templates/ja/trailer.tmpl +++ b/templates/ja/trailer.tmpl @@ -1,5 +1,5 @@ </div> </div> - <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2017 Apple Inc. All rights reserved.</div> + <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. All rights reserved.</div> </body> </html> diff --git a/templates/pt_BR/admin.tmpl b/templates/pt_BR/admin.tmpl index b847bef..c7095e1 100644 --- a/templates/pt_BR/admin.tmpl +++ b/templates/pt_BR/admin.tmpl @@ -79,19 +79,3 @@ </FORM>} </div> </div> - -<div class="row"> - <H2 CLASS="title">Inscrições RSS</H2> - - <P> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription"><INPUT TYPE="SUBMIT" VALUE="Adicionar inscrição RSS"></FORM> - </P> - - {notify_subscription_id?<TABLE CLASS="list" SUMMARY="Inscrições RSS"> - <THEAD><TR><TH>Nome</TH><TH>Eventos</TH><TH>Nome da fila</TH></TR></THEAD> - <TBODY>{[notify_subscription_id] - <TR><TD><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A><BR> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-subscription"><INPUT TYPE="HIDDEN" NAME="notify_subscription_id" VALUE="{notify_subscription_id}"><INPUT TYPE="SUBMIT" VALUE="Cancelar inscrição RSS"></FORM> </TD><TD>{notify_events}</TD><TD NOWRAP> {notify_printer_name?{notify_printer_name}:Todas as filas}</TD></TR>} - </TBODY> - </TABLE>:} -</div> diff --git a/templates/pt_BR/choose-model.tmpl b/templates/pt_BR/choose-model.tmpl index 55d8bd8..2dc68ab 100644 --- a/templates/pt_BR/choose-model.tmpl +++ b/templates/pt_BR/choose-model.tmpl @@ -39,6 +39,7 @@ <TD> <SELECT NAME="PPD_NAME" SIZE="10"> {op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Driver atual - {current_make_and_model}</OPTION>:} +{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model} - IPP Everywhere ™</OPTION>:} {[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language}) }</SELECT> </TD> diff --git a/templates/pt_BR/header.tmpl.in b/templates/pt_BR/header.tmpl.in index d9124a6..4263b77 100644 --- a/templates/pt_BR/header.tmpl.in +++ b/templates/pt_BR/header.tmpl.in @@ -31,7 +31,7 @@ <ul> <li><a href="http://www.cups.org/" target="_blank">CUPS.org</a></li> <li><a href="/">Início</a></li> - <li><a {SECTION=admin?class="active" :}href="/admin">Administrarção</a></li> + <li><a {SECTION=admin?class="active" :}href="/admin">Administração</a></li> <li><a {SECTION=classes?class="active" :}href="/classes/">Classes</a></li> <li><a {SECTION=help?class="active" :}href="/help/">Ajuda</a></li> <li><a {SECTION=jobs?class="active" :}href="/jobs/">Trabalhos</a></li> diff --git a/templates/pt_BR/jobs-header.tmpl b/templates/pt_BR/jobs-header.tmpl index 7b97719..91f061a 100644 --- a/templates/pt_BR/jobs-header.tmpl +++ b/templates/pt_BR/jobs-header.tmpl @@ -1,5 +1,5 @@ {?which_jobs=?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Mostrar trabalhos ativos"></FORM>} -{?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="concluídos"><INPUT TYPE="SUBMIT" VALUE="Mostrar trabalhos concluídos"></FORM>} +{?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="Mostrar trabalhos concluídos"></FORM>} {?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Mostrar todos trabalhos"></FORM>} <P ALIGN="CENTER">{?which_jobs=?Jobs listed in print order; held jobs appear first.:{which_jobs=Jobs listed in ascending order.?:Jobs listed in descending order.}}</P> diff --git a/templates/pt_BR/trailer.tmpl b/templates/pt_BR/trailer.tmpl index c4b40fc..d1a1e64 100644 --- a/templates/pt_BR/trailer.tmpl +++ b/templates/pt_BR/trailer.tmpl @@ -1,5 +1,5 @@ </div> </div> - <div class="footer">CUPS e sua logo são marcas registradas da <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2017 Apple Inc. Todos os direitos reservados.</div> + <div class="footer">CUPS e sua logo são marcas registradas da <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. Todos os direitos reservados.</div> </body> </html> diff --git a/templates/ru/admin.tmpl b/templates/ru/admin.tmpl index 49a168c..a54e541 100644 --- a/templates/ru/admin.tmpl +++ b/templates/ru/admin.tmpl @@ -66,7 +66,7 @@ <P><A HREF="/admin/?ADVANCEDSETTINGS=YES">Дополнительные параметры <SMALL>▶</SMALL></A><BR> <INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server"> <INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Разрешить совместный доступ к принтерам, подключенным к этой системе<BR> - <INPUT TYPE="CHECKBOX" NAME="REMOTE_ANY" {?remote_any}> Разрешить печать из + <INPUT TYPE="CHECKBOX" NAME="REMOTE_ANY" {?remote_any}> Разрешить печать из интернет<BR> <INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Разрешить удаленное администрирование<BR> {have_gssapi?<INPUT TYPE="CHECKBOX" NAME="KERBEROS" {?kerberos}> Разрешить аутентификацию Kerberos (<A HREF="/help/kerberos.html?TOPIC=Getting+Started">FAQ</A>)<BR>:} @@ -78,20 +78,4 @@ </FORM>} </div> -</div> - -<div class="row"> - <H2 CLASS="title">Подписка по RSS</H2> - - <P> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="add-rss-subscription"><INPUT TYPE="SUBMIT" VALUE="Добавить подписку по RSS"></FORM> - </P> - - {notify_subscription_id?<TABLE CLASS="list" SUMMARY="Подписки по RSS"> - <THEAD><TR><TH>Название</TH><TH>События</TH><TH>Очередь</TH></TR></THEAD> - <TBODY>{[notify_subscription_id] - <TR><TD><A HREF="{notify_recipient_uri}">{notify_recipient_name}</A><BR> - <FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="cancel-subscription"><INPUT TYPE="HIDDEN" NAME="notify_subscription_id" VALUE="{notify_subscription_id}"><INPUT TYPE="SUBMIT" VALUE="Отменить подписку по RSS"></FORM> </TD><TD>{notify_events}</TD><TD NOWRAP> {notify_printer_name?{notify_printer_name}:Все очереди}</TD></TR>} - </TBODY> - </TABLE>:} </div>
\ No newline at end of file diff --git a/templates/ru/choose-model.tmpl b/templates/ru/choose-model.tmpl index 2f0d6d9..c352a73 100644 --- a/templates/ru/choose-model.tmpl +++ b/templates/ru/choose-model.tmpl @@ -39,6 +39,7 @@ <TD> <SELECT NAME="PPD_NAME" SIZE="10"> {op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Текущий драйвер - {current_make_and_model}</OPTION>:} +{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model} - IPP Everywhere ™</OPTION>:} {[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language}) }</SELECT> </TD> diff --git a/templates/ru/trailer.tmpl b/templates/ru/trailer.tmpl index 985a4b0..0da4298 100644 --- a/templates/ru/trailer.tmpl +++ b/templates/ru/trailer.tmpl @@ -1,6 +1,6 @@ </div> </div> <div class="footer">CUPS, а так же логотип CUPS являются зарегистрированными торговыми марками -<A HREF="http://www.apple.com">Apple Inc.</A> Авторские права на CUPS принадлежат (2007-2017) компании Apple Inc. Все права защищены.</div> +<A HREF="http://www.apple.com">Apple Inc.</A> Авторские права на CUPS принадлежат (2007-2018) компании Apple Inc. Все права защищены.</div> </body> </html> diff --git a/templates/trailer.tmpl b/templates/trailer.tmpl index 4f5ec07..04a205e 100644 --- a/templates/trailer.tmpl +++ b/templates/trailer.tmpl @@ -1,5 +1,5 @@ </div> </div> - <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2017 Apple Inc. All rights reserved.</div> + <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. All rights reserved.</div> </body> </html> diff --git a/test/5.1-lpadmin.sh b/test/5.1-lpadmin.sh index 07f1d5a..7efc398 100644 --- a/test/5.1-lpadmin.sh +++ b/test/5.1-lpadmin.sh @@ -2,20 +2,17 @@ # # Test the lpadmin command. # -# Copyright 2007-2013 by Apple Inc. -# Copyright 1997-2005 by Easy Software Products, all rights reserved. +# Copyright © 2007-2018 by Apple Inc. +# Copyright © 1997-2005 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "Add Printer Test" echo "" echo " lpadmin -p Test3 -v file:/dev/null -E -m drv:///sample.drv/deskjet.ppd" -$VALGRIND ../systemv/lpadmin -p Test3 -v file:/dev/null -E -m drv:///sample.drv/deskjet.ppd 2>&1 +$runcups $VALGRIND ../systemv/lpadmin -p Test3 -v file:/dev/null -E -m drv:///sample.drv/deskjet.ppd 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -32,7 +29,7 @@ echo "" echo "Modify Printer Test" echo "" echo " lpadmin -p Test3 -v file:/tmp/Test3 -o PageSize=A4" -$VALGRIND ../systemv/lpadmin -p Test3 -v file:/tmp/Test3 -o PageSize=A4 2>&1 +$runcups $VALGRIND ../systemv/lpadmin -p Test3 -v file:/tmp/Test3 -o PageSize=A4 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -44,7 +41,7 @@ echo "" echo "Delete Printer Test" echo "" echo " lpadmin -x Test3" -$VALGRIND ../systemv/lpadmin -x Test3 2>&1 +$runcups $VALGRIND ../systemv/lpadmin -x Test3 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -55,8 +52,8 @@ echo "" echo "Add Shared Printer Test" echo "" -echo " lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m raw" -$VALGRIND ../systemv/lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m raw 2>&1 +echo " lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m everywhere" +$runcups $VALGRIND ../systemv/lpadmin -p Test3 -E -v ipp://localhost:$IPP_PORT/printers/Test2 -m everywhere 2>&1 if test $? != 0; then echo " FAILED" exit 1 diff --git a/test/5.2-lpc.sh b/test/5.2-lpc.sh index 857e885..155a157 100644 --- a/test/5.2-lpc.sh +++ b/test/5.2-lpc.sh @@ -2,20 +2,17 @@ # # Test the lpc command. # -# Copyright 2007 by Apple Inc. -# Copyright 1997-2005 by Easy Software Products, all rights reserved. +# Copyright © 2007 by Apple Inc. +# Copyright © 1997-2005 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "LPC Test" echo "" echo " lpc status" -$VALGRIND ../berkeley/lpc status 2>&1 +$runcups $VALGRIND ../berkeley/lpc status 2>&1 if test $? != 0; then echo " FAILED" exit 1 diff --git a/test/5.3-lpq.sh b/test/5.3-lpq.sh index 4c0e849..02ddbd9 100644 --- a/test/5.3-lpq.sh +++ b/test/5.3-lpq.sh @@ -2,20 +2,17 @@ # # Test the lpq command. # -# Copyright 2007 by Apple Inc. -# Copyright 1997-2005 by Easy Software Products, all rights reserved. +# Copyright © 2007 by Apple Inc. +# Copyright © 1997-2005 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "LPQ Test" echo "" echo " lpq -P Test1" -$VALGRIND ../berkeley/lpq -P Test1 2>&1 +$runcups $VALGRIND ../berkeley/lpq -P Test1 2>&1 if test $? != 0; then echo " FAILED" exit 1 diff --git a/test/5.4-lpstat.sh b/test/5.4-lpstat.sh index 6dbd44a..ba5246d 100644 --- a/test/5.4-lpstat.sh +++ b/test/5.4-lpstat.sh @@ -2,20 +2,17 @@ # # Test the lpstat command. # -# Copyright 2007-2017 by Apple Inc. -# Copyright 1997-2005 by Easy Software Products, all rights reserved. +# Copyright © 2007-2017 by Apple Inc. +# Copyright © 1997-2005 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "LPSTAT Basic Test" echo "" echo " lpstat -t" -$VALGRIND ../systemv/lpstat -t 2>&1 +$runcups $VALGRIND ../systemv/lpstat -t 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -27,7 +24,7 @@ echo "" echo "LPSTAT Enumeration Test" echo "" echo " lpstat -e" -printers="`$VALGRIND ../systemv/lpstat -e 2>&1`" +printers="`$runcups $VALGRIND ../systemv/lpstat -e 2>&1`" if test $? != 0 -o "x$printers" = x; then echo " FAILED" exit 1 @@ -42,7 +39,7 @@ echo "" echo "LPSTAT Get Host Test" echo "" echo " lpstat -H" -server="`$VALGRIND ../systemv/lpstat -H 2>&1`" +server="`$runcups $VALGRIND ../systemv/lpstat -H 2>&1`" if test $? != 0 -o "x$server" != x$CUPS_SERVER; then echo " FAILED ($server)" exit 1 diff --git a/test/5.5-lp.sh b/test/5.5-lp.sh index 71fc418..ba7c5f9 100644 --- a/test/5.5-lp.sh +++ b/test/5.5-lp.sh @@ -2,20 +2,17 @@ # # Test the lp command. # -# Copyright 2007-2014 by Apple Inc. -# Copyright 1997-2005 by Easy Software Products, all rights reserved. +# Copyright © 2007-2014 by Apple Inc. +# Copyright © 1997-2005 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "LP Default Test" echo "" echo " lp testfile.pdf" -$VALGRIND ../systemv/lp testfile.pdf 2>&1 +$runcups $VALGRIND ../systemv/lp testfile.pdf 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -27,7 +24,7 @@ echo "" echo "LP Destination Test" echo "" echo " lp -d Test3 -o fit-to-page testfile.jpg" -$VALGRIND ../systemv/lp -d Test3 -o fit-to-page testfile.jpg 2>&1 +$runcups $VALGRIND ../systemv/lp -d Test3 -o fit-to-page testfile.jpg 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -39,7 +36,7 @@ echo "" echo "LP Options Test" echo "" echo " lp -d Test1 -P 1-4 -o job-sheets=classified,classified testfile.pdf" -$VALGRIND ../systemv/lp -d Test1 -P 1-4 -o job-sheets=classified,classified testfile.pdf 2>&1 +$runcups $VALGRIND ../systemv/lp -d Test1 -P 1-4 -o job-sheets=classified,classified testfile.pdf 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -57,13 +54,13 @@ pids="" while test $i -lt $1; do j=1 while test $j -le $2; do - $VALGRIND ../systemv/lp -d test-$j testfile.jpg 2>&1 + $runcups $VALGRIND ../systemv/lp -d test-$j testfile.jpg 2>&1 j=`expr $j + 1` done - $VALGRIND ../systemv/lp -d Test1 testfile.jpg 2>&1 & + $runcups $VALGRIND ../systemv/lp -d Test1 testfile.jpg 2>&1 & pids="$pids $!" - $VALGRIND ../systemv/lp -d Test2 testfile.jpg 2>&1 & + $runcups $VALGRIND ../systemv/lp -d Test2 testfile.jpg 2>&1 & pids="$pids $!" i=`expr $i + 1` @@ -82,7 +79,7 @@ echo "" echo "LPSTAT Completed Jobs Order Test" echo "" echo " lpstat -W completed -o" -$VALGRIND ../systemv/lpstat -W completed -o | tee $BASE/lpstat-completed.txt +$runcups $VALGRIND ../systemv/lpstat -W completed -o | tee $BASE/lpstat-completed.txt if test "`uniq -d $BASE/lpstat-completed.txt`" != ""; then echo " FAILED" exit 1 diff --git a/test/5.6-lpr.sh b/test/5.6-lpr.sh index d3280d2..1a19083 100644 --- a/test/5.6-lpr.sh +++ b/test/5.6-lpr.sh @@ -2,20 +2,17 @@ # # Test the lpr command. # -# Copyright 2007-2014 by Apple Inc. -# Copyright 1997-2005 by Easy Software Products, all rights reserved. +# Copyright © 2007-2014 by Apple Inc. +# Copyright © 1997-2005 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "LPR Default Test" echo "" echo " lpr testfile.pdf" -$VALGRIND ../berkeley/lpr testfile.pdf 2>&1 +$runcups $VALGRIND ../berkeley/lpr testfile.pdf 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -27,7 +24,7 @@ echo "" echo "LPR Destination Test" echo "" echo " lpr -P Test3 -o fit-to-page testfile.jpg" -$VALGRIND ../berkeley/lpr -P Test3 -o fit-to-page testfile.jpg 2>&1 +$runcups $VALGRIND ../berkeley/lpr -P Test3 -o fit-to-page testfile.jpg 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -39,7 +36,7 @@ echo "" echo "LPR Options Test" echo "" echo " lpr -P Test1 -o number-up=4 -o job-sheets=standard,none testfile.pdf" -$VALGRIND ../berkeley/lpr -P Test1 -o number-up=4 -o job-sheets=standard,none testfile.pdf 2>&1 +$runcups $VALGRIND ../berkeley/lpr -P Test1 -o number-up=4 -o job-sheets=standard,none testfile.pdf 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -57,13 +54,13 @@ pids="" while test $i -lt $1; do j=1 while test $j -le $2; do - $VALGRIND ../berkeley/lpr -P test-$j testfile.jpg 2>&1 + $runcups $VALGRIND ../berkeley/lpr -P test-$j testfile.jpg 2>&1 j=`expr $j + 1` done - $VALGRIND ../berkeley/lpr -P Test1 testfile.jpg 2>&1 & + $runcups $VALGRIND ../berkeley/lpr -P Test1 testfile.jpg 2>&1 & pids="$pids $!" - $VALGRIND ../berkeley/lpr -P Test2 testfile.jpg 2>&1 & + $runcups $VALGRIND ../berkeley/lpr -P Test2 testfile.jpg 2>&1 & pids="$pids $!" i=`expr $i + 1` diff --git a/test/5.7-lprm.sh b/test/5.7-lprm.sh index e456ec0..29251f9 100644 --- a/test/5.7-lprm.sh +++ b/test/5.7-lprm.sh @@ -2,22 +2,19 @@ # # Test the lprm command. # -# Copyright 2007-2011 by Apple Inc. -# Copyright 1997-2005 by Easy Software Products, all rights reserved. +# Copyright © 2007-2011 by Apple Inc. +# Copyright © 1997-2005 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "LPRM Current Test" echo "" echo " lpr -o job-hold-until=indefinite testfile.jpg" -$VALGRIND ../berkeley/lpr -o job-hold-until=indefinite testfile.jpg 2>&1 +$runcups $VALGRIND ../berkeley/lpr -o job-hold-until=indefinite testfile.jpg 2>&1 echo " lprm" -$VALGRIND ../berkeley/lprm 2>&1 +$runcups $VALGRIND ../berkeley/lprm 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -29,9 +26,9 @@ echo "" echo "LPRM Destination Test" echo "" echo " lpr -P Test1 -o job-hold-until=indefinite testfile.jpg" -$VALGRIND ../berkeley/lpr -P Test1 -o job-hold-until=indefinite testfile.jpg 2>&1 +$runcups $VALGRIND ../berkeley/lpr -P Test1 -o job-hold-until=indefinite testfile.jpg 2>&1 echo " lprm Test1" -$VALGRIND ../berkeley/lprm Test1 2>&1 +$runcups $VALGRIND ../berkeley/lprm Test1 2>&1 if test $? != 0; then echo " FAILED" exit 1 diff --git a/test/5.8-cancel.sh b/test/5.8-cancel.sh index 28bc0fe..bd7cf5f 100644 --- a/test/5.8-cancel.sh +++ b/test/5.8-cancel.sh @@ -2,22 +2,19 @@ # # Test the cancel command. # -# Copyright 2007-2013 by Apple Inc. -# Copyright 1997-2006 by Easy Software Products, all rights reserved. +# Copyright © 2007-2013 by Apple Inc. +# Copyright © 1997-2006 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "Cancel Destination Test" echo "" echo " lp -d Test1 -o job-hold-until=indefinite testfile.jpg" -$VALGRIND ../systemv/lp -d Test1 -o job-hold-until=indefinite testfile.jpg 2>&1 +$runcups $VALGRIND ../systemv/lp -d Test1 -o job-hold-until=indefinite testfile.jpg 2>&1 echo " cancel Test1" -$VALGRIND ../systemv/cancel Test1 2>&1 +$runcups $VALGRIND ../systemv/cancel Test1 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -29,7 +26,7 @@ echo "" echo "Cancel All Test" echo "" echo " cancel -a" -$VALGRIND ../systemv/cancel -a 2>&1 +$runcups $VALGRIND ../systemv/cancel -a 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -41,7 +38,7 @@ echo "" echo "Purge All Test" echo "" echo " cancel -a -x" -$VALGRIND ../systemv/cancel -a -x 2>&1 +$runcups $VALGRIND ../systemv/cancel -a -x 2>&1 if test $? != 0; then echo " FAILED" exit 1 diff --git a/test/5.9-lpinfo.sh b/test/5.9-lpinfo.sh index 9cf6ceb..7d67fe3 100644 --- a/test/5.9-lpinfo.sh +++ b/test/5.9-lpinfo.sh @@ -2,20 +2,17 @@ # # Test the lpinfo command. # -# Copyright 2007-2011 by Apple Inc. -# Copyright 1997-2005 by Easy Software Products, all rights reserved. +# Copyright © 2007-2011 by Apple Inc. +# Copyright © 1997-2005 by Easy Software Products, all rights reserved. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # echo "LPINFO Devices Test" echo "" echo " lpinfo -v" -$VALGRIND ../systemv/lpinfo -v 2>&1 +$runcups $VALGRIND ../systemv/lpinfo -v 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -27,7 +24,7 @@ echo "" echo "LPINFO Drivers Test" echo "" echo " lpinfo -m" -$VALGRIND ../systemv/lpinfo -m 2>&1 +$runcups $VALGRIND ../systemv/lpinfo -m 2>&1 if test $? != 0; then echo " FAILED" exit 1 @@ -39,7 +36,7 @@ echo "" echo "LPINFO Drivers Test" echo "" echo " lpinfo -m | grep -q sample.drv" -$VALGRIND ../systemv/lpinfo -m | grep -q sample.drv 2>&1 +$runcups $VALGRIND ../systemv/lpinfo -m | grep -q sample.drv 2>&1 if test $? != 0; then echo " FAILED" exit 1 diff --git a/test/Makefile b/test/Makefile index 03a552e..f74361d 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,7 +1,7 @@ # # IPP test makefile for CUPS. # -# Copyright 2007-2017 by Apple Inc. +# Copyright 2007-2018 by Apple Inc. # Copyright 1997-2006 by Easy Software Products, all rights reserved. # # These coded instructions, statements, and computer programs are the @@ -88,7 +88,7 @@ unittests: clean: $(RM) $(TARGETS) $(OBJS) - $(RM) ippserver ippserver-shared ipptool-static + $(RM) ippfind-static ippserver ippserver-shared ipptool-static # @@ -184,9 +184,11 @@ local: ippserver ippserver-shared ipptool-static ippfind: ippfind.o ../cups/$(LIBCUPS) ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ ippfind.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Linking $@-static... $(LD_CC) $(LDFLAGS) -o $@-static ippfind.o ../cups/$(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@-static # @@ -197,6 +199,7 @@ ippserver: ippserver.o ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ ippserver.o ../cups/$(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -206,6 +209,7 @@ ippserver: ippserver.o ../cups/$(LIBCUPSSTATIC) ippserver-shared: ippserver.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ ippserver.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -215,6 +219,7 @@ ippserver-shared: ippserver.o ../cups/$(LIBCUPS) ipptool: ipptool.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ ipptool.o $(LIBS) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # @@ -225,6 +230,7 @@ ipptool-static: ipptool.o ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(LDFLAGS) -o $@ ipptool.o ../cups/$(LIBCUPSSTATIC) \ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) + $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # diff --git a/test/ipp-everywhere.test b/test/ipp-everywhere.test index ee1ac0d..071d9ea 100644 --- a/test/ipp-everywhere.test +++ b/test/ipp-everywhere.test @@ -179,7 +179,7 @@ INCLUDE "ipp-2.0.test" # Test printing all sample documents { NAME "Print color.jpg-4x6 @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/color.jpg-4x6-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -191,7 +191,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi-20150616/black-1/color.jpg-4x6-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -199,7 +199,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/color.jpg-4x6-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -214,7 +214,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/black-1/color.jpg-4x6-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -222,7 +222,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/color.jpg-4x6-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -237,7 +237,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/black-1/color.jpg-4x6-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -245,7 +245,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -257,7 +257,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -265,7 +265,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -280,7 +280,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -288,7 +288,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -303,7 +303,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -311,7 +311,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -323,7 +323,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -331,7 +331,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -346,7 +346,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -354,7 +354,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -369,7 +369,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -377,7 +377,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -389,7 +389,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -397,7 +397,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -412,7 +412,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -420,7 +420,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -435,7 +435,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -443,7 +443,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 @@ -455,7 +455,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -463,7 +463,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -478,7 +478,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -486,7 +486,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 150dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -501,7 +501,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -509,7 +509,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/color.jpg-4x6-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -521,7 +521,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi-20150616/black-1/color.jpg-4x6-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -529,7 +529,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/color.jpg-4x6-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -544,7 +544,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/black-1/color.jpg-4x6-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -552,7 +552,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/color.jpg-4x6-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -567,7 +567,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/black-1/color.jpg-4x6-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -575,7 +575,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -587,7 +587,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -595,7 +595,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -610,7 +610,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -618,7 +618,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -633,7 +633,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -641,7 +641,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -653,7 +653,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -661,7 +661,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -676,7 +676,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -684,7 +684,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -699,7 +699,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -707,7 +707,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -719,7 +719,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -727,7 +727,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -742,7 +742,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -750,7 +750,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -765,7 +765,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -773,7 +773,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 @@ -785,7 +785,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -793,7 +793,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -808,7 +808,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -816,7 +816,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 180dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -831,7 +831,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -839,7 +839,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/color.jpg-4x6-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -851,7 +851,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi-20150616/black-1/color.jpg-4x6-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -859,7 +859,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/color.jpg-4x6-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -874,7 +874,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/black-1/color.jpg-4x6-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -882,7 +882,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/color.jpg-4x6-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -897,7 +897,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/black-1/color.jpg-4x6-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -905,7 +905,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -917,7 +917,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -925,7 +925,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -940,7 +940,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -948,7 +948,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -963,7 +963,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -971,7 +971,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -983,7 +983,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -991,7 +991,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1006,7 +1006,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1014,7 +1014,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1029,7 +1029,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1037,7 +1037,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -1049,7 +1049,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1057,7 +1057,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1072,7 +1072,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1080,7 +1080,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1095,7 +1095,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1103,7 +1103,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 @@ -1115,7 +1115,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1123,7 +1123,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1138,7 +1138,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1146,7 +1146,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 300dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1161,7 +1161,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1169,7 +1169,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/color.jpg-4x6-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -1181,7 +1181,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi-20150616/black-1/color.jpg-4x6-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1189,7 +1189,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/color.jpg-4x6-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1204,7 +1204,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/black-1/color.jpg-4x6-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1212,7 +1212,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/color.jpg-4x6-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1227,7 +1227,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/black-1/color.jpg-4x6-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1235,7 +1235,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -1247,7 +1247,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1255,7 +1255,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1270,7 +1270,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1278,7 +1278,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1293,7 +1293,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1301,7 +1301,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -1313,7 +1313,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1321,7 +1321,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1336,7 +1336,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1344,7 +1344,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1359,7 +1359,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1367,7 +1367,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -1379,7 +1379,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1387,7 +1387,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1402,7 +1402,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1410,7 +1410,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1425,7 +1425,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1433,7 +1433,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 @@ -1445,7 +1445,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1453,7 +1453,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1468,7 +1468,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1476,7 +1476,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 360dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1491,7 +1491,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1499,7 +1499,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/color.jpg-4x6-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -1511,7 +1511,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi-20150616/black-1/color.jpg-4x6-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1519,7 +1519,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/color.jpg-4x6-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1534,7 +1534,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/black-1/color.jpg-4x6-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1542,7 +1542,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/color.jpg-4x6-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1557,7 +1557,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/black-1/color.jpg-4x6-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1565,7 +1565,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -1577,7 +1577,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1585,7 +1585,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1600,7 +1600,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1608,7 +1608,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1623,7 +1623,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1631,7 +1631,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -1643,7 +1643,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1651,7 +1651,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1666,7 +1666,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1674,7 +1674,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1689,7 +1689,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1697,7 +1697,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -1709,7 +1709,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1717,7 +1717,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1732,7 +1732,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1740,7 +1740,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1755,7 +1755,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1763,7 +1763,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 @@ -1775,7 +1775,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1783,7 +1783,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1798,7 +1798,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1806,7 +1806,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 600dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1821,7 +1821,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1829,7 +1829,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/color.jpg-4x6-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -1841,7 +1841,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi-20150616/black-1/color.jpg-4x6-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1849,7 +1849,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/color.jpg-4x6-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1864,7 +1864,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/black-1/color.jpg-4x6-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1872,7 +1872,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/color.jpg-4x6-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1887,7 +1887,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/black-1/color.jpg-4x6-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1895,7 +1895,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -1907,7 +1907,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1915,7 +1915,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1930,7 +1930,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1938,7 +1938,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -1953,7 +1953,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1961,7 +1961,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -1973,7 +1973,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -1981,7 +1981,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -1996,7 +1996,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2004,7 +2004,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2019,7 +2019,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2027,7 +2027,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -2039,7 +2039,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2047,7 +2047,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2062,7 +2062,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2070,7 +2070,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2085,7 +2085,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2093,7 +2093,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 @@ -2105,7 +2105,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2113,7 +2113,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2128,7 +2128,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "color.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2136,7 +2136,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print color.jpg-4x6 @ 720dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_16 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2151,7 +2151,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "color.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2159,7 +2159,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/document-a4-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -2171,7 +2171,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-150dpi-20150616/black-1/document-a4-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2179,7 +2179,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/document-a4-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2194,7 +2194,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/black-1/document-a4-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2202,7 +2202,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/document-a4-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2217,7 +2217,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/black-1/document-a4-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2225,7 +2225,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/document-a4-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -2237,7 +2237,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/document-a4-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2245,7 +2245,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/document-a4-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2260,7 +2260,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/document-a4-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2268,7 +2268,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/document-a4-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2283,7 +2283,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/document-a4-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2291,7 +2291,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/document-a4-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -2303,7 +2303,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-150dpi-20150616/sgray-8/document-a4-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2311,7 +2311,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/document-a4-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2326,7 +2326,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/sgray-8/document-a4-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2334,7 +2334,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/document-a4-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2349,7 +2349,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/sgray-8/document-a4-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2357,7 +2357,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/document-a4-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -2369,7 +2369,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-150dpi-20150616/srgb-8/document-a4-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2377,7 +2377,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/document-a4-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2392,7 +2392,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/srgb-8/document-a4-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2400,7 +2400,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/document-a4-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2415,7 +2415,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/srgb-8/document-a4-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2423,7 +2423,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/document-a4-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -2435,7 +2435,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-180dpi-20150616/black-1/document-a4-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2443,7 +2443,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/document-a4-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2458,7 +2458,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/black-1/document-a4-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2466,7 +2466,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/document-a4-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2481,7 +2481,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/black-1/document-a4-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2489,7 +2489,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/document-a4-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -2501,7 +2501,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/document-a4-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2509,7 +2509,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/document-a4-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2524,7 +2524,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/document-a4-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2532,7 +2532,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/document-a4-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2547,7 +2547,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/document-a4-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2555,7 +2555,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/document-a4-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -2567,7 +2567,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-180dpi-20150616/sgray-8/document-a4-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2575,7 +2575,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/document-a4-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2590,7 +2590,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/sgray-8/document-a4-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2598,7 +2598,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/document-a4-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2613,7 +2613,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/sgray-8/document-a4-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2621,7 +2621,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/document-a4-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -2633,7 +2633,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-180dpi-20150616/srgb-8/document-a4-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2641,7 +2641,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/document-a4-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2656,7 +2656,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/srgb-8/document-a4-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2664,7 +2664,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/document-a4-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2679,7 +2679,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/srgb-8/document-a4-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2687,7 +2687,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/document-a4-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -2699,7 +2699,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-300dpi-20150616/black-1/document-a4-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2707,7 +2707,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/document-a4-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2722,7 +2722,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/black-1/document-a4-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2730,7 +2730,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/document-a4-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2745,7 +2745,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/black-1/document-a4-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2753,7 +2753,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/document-a4-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -2765,7 +2765,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/document-a4-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2773,7 +2773,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/document-a4-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2788,7 +2788,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/document-a4-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2796,7 +2796,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/document-a4-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2811,7 +2811,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/document-a4-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2819,7 +2819,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/document-a4-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -2831,7 +2831,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-300dpi-20150616/sgray-8/document-a4-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2839,7 +2839,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/document-a4-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2854,7 +2854,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/sgray-8/document-a4-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2862,7 +2862,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/document-a4-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2877,7 +2877,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/sgray-8/document-a4-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2885,7 +2885,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/document-a4-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -2897,7 +2897,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-300dpi-20150616/srgb-8/document-a4-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2905,7 +2905,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/document-a4-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2920,7 +2920,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/srgb-8/document-a4-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2928,7 +2928,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/document-a4-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -2943,7 +2943,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/srgb-8/document-a4-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2951,7 +2951,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/document-a4-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -2963,7 +2963,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-360dpi-20150616/black-1/document-a4-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2971,7 +2971,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/document-a4-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -2986,7 +2986,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/black-1/document-a4-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -2994,7 +2994,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/document-a4-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3009,7 +3009,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/black-1/document-a4-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3017,7 +3017,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/document-a4-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -3029,7 +3029,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/document-a4-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3037,7 +3037,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/document-a4-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3052,7 +3052,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/document-a4-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3060,7 +3060,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/document-a4-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3075,7 +3075,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/document-a4-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3083,7 +3083,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/document-a4-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -3095,7 +3095,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-360dpi-20150616/sgray-8/document-a4-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3103,7 +3103,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/document-a4-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3118,7 +3118,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/sgray-8/document-a4-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3126,7 +3126,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/document-a4-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3141,7 +3141,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/sgray-8/document-a4-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3149,7 +3149,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/document-a4-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -3161,7 +3161,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-360dpi-20150616/srgb-8/document-a4-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3169,7 +3169,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/document-a4-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3184,7 +3184,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/srgb-8/document-a4-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3192,7 +3192,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/document-a4-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3207,7 +3207,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/srgb-8/document-a4-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3215,7 +3215,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/document-a4-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -3227,7 +3227,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-600dpi-20150616/black-1/document-a4-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3235,7 +3235,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/document-a4-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3250,7 +3250,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/black-1/document-a4-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3258,7 +3258,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/document-a4-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3273,7 +3273,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/black-1/document-a4-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3281,7 +3281,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/document-a4-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -3293,7 +3293,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/document-a4-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3301,7 +3301,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/document-a4-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3316,7 +3316,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/document-a4-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3324,7 +3324,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/document-a4-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3339,7 +3339,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/document-a4-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3347,7 +3347,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/document-a4-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -3359,7 +3359,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-600dpi-20150616/sgray-8/document-a4-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3367,7 +3367,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/document-a4-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3382,7 +3382,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/sgray-8/document-a4-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3390,7 +3390,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/document-a4-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3405,7 +3405,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/sgray-8/document-a4-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3413,7 +3413,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/document-a4-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -3425,7 +3425,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-600dpi-20150616/srgb-8/document-a4-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3433,7 +3433,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/document-a4-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3448,7 +3448,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/srgb-8/document-a4-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3456,7 +3456,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/document-a4-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3471,7 +3471,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/srgb-8/document-a4-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3479,7 +3479,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/document-a4-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -3491,7 +3491,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-720dpi-20150616/black-1/document-a4-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3499,7 +3499,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/document-a4-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3514,7 +3514,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/black-1/document-a4-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3522,7 +3522,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/document-a4-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3537,7 +3537,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/black-1/document-a4-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3545,7 +3545,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/document-a4-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -3557,7 +3557,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/document-a4-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3565,7 +3565,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/document-a4-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3580,7 +3580,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/document-a4-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3588,7 +3588,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/document-a4-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3603,7 +3603,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/document-a4-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3611,7 +3611,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/document-a4-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -3623,7 +3623,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-720dpi-20150616/sgray-8/document-a4-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3631,7 +3631,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/document-a4-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3646,7 +3646,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/sgray-8/document-a4-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3654,7 +3654,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/document-a4-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3669,7 +3669,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/sgray-8/document-a4-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3677,7 +3677,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/document-a4-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -3689,7 +3689,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-a4" - FILE pwg-raster-samples-720dpi-20150616/srgb-8/document-a4-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3697,7 +3697,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/document-a4-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3712,7 +3712,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-a4" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/srgb-8/document-a4-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3720,7 +3720,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-a4 @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/document-a4-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3735,7 +3735,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-a4" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/srgb-8/document-a4-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3743,7 +3743,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/document-letter-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -3755,7 +3755,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-150dpi-20150616/black-1/document-letter-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3763,7 +3763,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/document-letter-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3778,7 +3778,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/black-1/document-letter-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3786,7 +3786,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/document-letter-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3801,7 +3801,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/black-1/document-letter-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3809,7 +3809,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/document-letter-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -3821,7 +3821,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/document-letter-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3829,7 +3829,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/document-letter-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3844,7 +3844,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/document-letter-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3852,7 +3852,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/document-letter-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3867,7 +3867,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/document-letter-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3875,7 +3875,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/document-letter-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -3887,7 +3887,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-150dpi-20150616/sgray-8/document-letter-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3895,7 +3895,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/document-letter-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3910,7 +3910,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/sgray-8/document-letter-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3918,7 +3918,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/document-letter-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3933,7 +3933,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/sgray-8/document-letter-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3941,7 +3941,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/document-letter-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -3953,7 +3953,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-150dpi-20150616/srgb-8/document-letter-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3961,7 +3961,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/document-letter-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -3976,7 +3976,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/srgb-8/document-letter-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -3984,7 +3984,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/document-letter-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -3999,7 +3999,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/srgb-8/document-letter-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4007,7 +4007,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/document-letter-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -4019,7 +4019,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-180dpi-20150616/black-1/document-letter-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4027,7 +4027,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/document-letter-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4042,7 +4042,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/black-1/document-letter-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4050,7 +4050,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/document-letter-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4065,7 +4065,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/black-1/document-letter-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4073,7 +4073,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/document-letter-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -4085,7 +4085,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/document-letter-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4093,7 +4093,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/document-letter-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4108,7 +4108,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/document-letter-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4116,7 +4116,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/document-letter-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4131,7 +4131,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/document-letter-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4139,7 +4139,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/document-letter-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -4151,7 +4151,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-180dpi-20150616/sgray-8/document-letter-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4159,7 +4159,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/document-letter-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4174,7 +4174,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/sgray-8/document-letter-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4182,7 +4182,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/document-letter-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4197,7 +4197,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/sgray-8/document-letter-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4205,7 +4205,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/document-letter-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -4217,7 +4217,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-180dpi-20150616/srgb-8/document-letter-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4225,7 +4225,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/document-letter-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4240,7 +4240,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/srgb-8/document-letter-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4248,7 +4248,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/document-letter-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4263,7 +4263,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/srgb-8/document-letter-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4271,7 +4271,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/document-letter-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -4283,7 +4283,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-300dpi-20150616/black-1/document-letter-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4291,7 +4291,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/document-letter-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4306,7 +4306,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/black-1/document-letter-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4314,7 +4314,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/document-letter-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4329,7 +4329,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/black-1/document-letter-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4337,7 +4337,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/document-letter-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -4349,7 +4349,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/document-letter-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4357,7 +4357,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/document-letter-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4372,7 +4372,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/document-letter-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4380,7 +4380,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/document-letter-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4395,7 +4395,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/document-letter-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4403,7 +4403,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/document-letter-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -4415,7 +4415,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-300dpi-20150616/sgray-8/document-letter-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4423,7 +4423,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/document-letter-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4438,7 +4438,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/sgray-8/document-letter-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4446,7 +4446,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/document-letter-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4461,7 +4461,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/sgray-8/document-letter-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4469,7 +4469,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/document-letter-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -4481,7 +4481,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-300dpi-20150616/srgb-8/document-letter-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4489,7 +4489,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/document-letter-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4504,7 +4504,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/srgb-8/document-letter-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4512,7 +4512,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/document-letter-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4527,7 +4527,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/srgb-8/document-letter-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4535,7 +4535,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/document-letter-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -4547,7 +4547,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-360dpi-20150616/black-1/document-letter-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4555,7 +4555,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/document-letter-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4570,7 +4570,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/black-1/document-letter-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4578,7 +4578,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/document-letter-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4593,7 +4593,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/black-1/document-letter-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4601,7 +4601,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/document-letter-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -4613,7 +4613,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/document-letter-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4621,7 +4621,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/document-letter-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4636,7 +4636,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/document-letter-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4644,7 +4644,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/document-letter-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4659,7 +4659,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/document-letter-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4667,7 +4667,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/document-letter-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -4679,7 +4679,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-360dpi-20150616/sgray-8/document-letter-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4687,7 +4687,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/document-letter-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4702,7 +4702,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/sgray-8/document-letter-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4710,7 +4710,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/document-letter-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4725,7 +4725,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/sgray-8/document-letter-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4733,7 +4733,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/document-letter-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -4745,7 +4745,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-360dpi-20150616/srgb-8/document-letter-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4753,7 +4753,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/document-letter-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4768,7 +4768,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/srgb-8/document-letter-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4776,7 +4776,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/document-letter-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4791,7 +4791,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/srgb-8/document-letter-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4799,7 +4799,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/document-letter-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -4811,7 +4811,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-600dpi-20150616/black-1/document-letter-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4819,7 +4819,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/document-letter-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4834,7 +4834,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/black-1/document-letter-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4842,7 +4842,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/document-letter-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4857,7 +4857,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/black-1/document-letter-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4865,7 +4865,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/document-letter-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -4877,7 +4877,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/document-letter-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4885,7 +4885,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/document-letter-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4900,7 +4900,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/document-letter-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4908,7 +4908,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/document-letter-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4923,7 +4923,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/document-letter-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4931,7 +4931,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/document-letter-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -4943,7 +4943,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-600dpi-20150616/sgray-8/document-letter-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4951,7 +4951,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/document-letter-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -4966,7 +4966,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/sgray-8/document-letter-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4974,7 +4974,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/document-letter-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -4989,7 +4989,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/sgray-8/document-letter-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -4997,7 +4997,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/document-letter-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -5009,7 +5009,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-600dpi-20150616/srgb-8/document-letter-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5017,7 +5017,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/document-letter-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5032,7 +5032,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/srgb-8/document-letter-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5040,7 +5040,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/document-letter-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5055,7 +5055,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/srgb-8/document-letter-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5063,7 +5063,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/document-letter-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -5075,7 +5075,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-720dpi-20150616/black-1/document-letter-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5083,7 +5083,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/document-letter-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5098,7 +5098,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/black-1/document-letter-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5106,7 +5106,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/document-letter-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5121,7 +5121,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/black-1/document-letter-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5129,7 +5129,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/document-letter-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -5141,7 +5141,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/document-letter-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5149,7 +5149,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/document-letter-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5164,7 +5164,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/document-letter-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5172,7 +5172,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/document-letter-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5187,7 +5187,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/document-letter-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5195,7 +5195,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/document-letter-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -5207,7 +5207,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-720dpi-20150616/sgray-8/document-letter-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5215,7 +5215,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/document-letter-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5230,7 +5230,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/sgray-8/document-letter-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5238,7 +5238,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/document-letter-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5253,7 +5253,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/sgray-8/document-letter-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5261,7 +5261,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/document-letter-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -5273,7 +5273,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "document-letter" - FILE pwg-raster-samples-720dpi-20150616/srgb-8/document-letter-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5281,7 +5281,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/document-letter-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5296,7 +5296,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "document-letter" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/srgb-8/document-letter-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5304,7 +5304,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print document-letter @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/document-letter-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5319,7 +5319,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "document-letter" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/srgb-8/document-letter-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5327,7 +5327,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/gray.jpg-4x6-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -5339,7 +5339,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-150dpi-20150616/black-1/gray.jpg-4x6-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5347,7 +5347,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/gray.jpg-4x6-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5362,7 +5362,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/black-1/gray.jpg-4x6-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5370,7 +5370,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/gray.jpg-4x6-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5385,7 +5385,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/black-1/gray.jpg-4x6-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5393,7 +5393,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -5405,7 +5405,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5413,7 +5413,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5428,7 +5428,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5436,7 +5436,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5451,7 +5451,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5459,7 +5459,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -5471,7 +5471,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-150dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5479,7 +5479,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5494,7 +5494,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5502,7 +5502,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5517,7 +5517,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5525,7 +5525,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/gray.jpg-4x6-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -5537,7 +5537,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-180dpi-20150616/black-1/gray.jpg-4x6-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5545,7 +5545,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/gray.jpg-4x6-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5560,7 +5560,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/black-1/gray.jpg-4x6-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5568,7 +5568,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/gray.jpg-4x6-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5583,7 +5583,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/black-1/gray.jpg-4x6-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5591,7 +5591,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -5603,7 +5603,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5611,7 +5611,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5626,7 +5626,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5634,7 +5634,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5649,7 +5649,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5657,7 +5657,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -5669,7 +5669,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-180dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5677,7 +5677,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5692,7 +5692,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5700,7 +5700,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5715,7 +5715,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5723,7 +5723,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/gray.jpg-4x6-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -5735,7 +5735,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-300dpi-20150616/black-1/gray.jpg-4x6-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5743,7 +5743,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/gray.jpg-4x6-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5758,7 +5758,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/black-1/gray.jpg-4x6-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5766,7 +5766,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/gray.jpg-4x6-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5781,7 +5781,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/black-1/gray.jpg-4x6-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5789,7 +5789,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -5801,7 +5801,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5809,7 +5809,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5824,7 +5824,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5832,7 +5832,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5847,7 +5847,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5855,7 +5855,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -5867,7 +5867,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-300dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5875,7 +5875,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5890,7 +5890,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5898,7 +5898,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5913,7 +5913,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5921,7 +5921,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/gray.jpg-4x6-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -5933,7 +5933,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-360dpi-20150616/black-1/gray.jpg-4x6-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5941,7 +5941,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/gray.jpg-4x6-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -5956,7 +5956,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/black-1/gray.jpg-4x6-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5964,7 +5964,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/gray.jpg-4x6-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -5979,7 +5979,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/black-1/gray.jpg-4x6-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -5987,7 +5987,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -5999,7 +5999,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6007,7 +6007,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6022,7 +6022,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6030,7 +6030,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6045,7 +6045,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6053,7 +6053,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -6065,7 +6065,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-360dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6073,7 +6073,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6088,7 +6088,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6096,7 +6096,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6111,7 +6111,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6119,7 +6119,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/gray.jpg-4x6-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -6131,7 +6131,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-600dpi-20150616/black-1/gray.jpg-4x6-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6139,7 +6139,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/gray.jpg-4x6-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6154,7 +6154,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/black-1/gray.jpg-4x6-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6162,7 +6162,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/gray.jpg-4x6-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6177,7 +6177,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/black-1/gray.jpg-4x6-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6185,7 +6185,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -6197,7 +6197,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6205,7 +6205,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6220,7 +6220,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6228,7 +6228,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6243,7 +6243,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6251,7 +6251,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -6263,7 +6263,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-600dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6271,7 +6271,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6286,7 +6286,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6294,7 +6294,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6309,7 +6309,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6317,7 +6317,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/gray.jpg-4x6-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -6329,7 +6329,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-720dpi-20150616/black-1/gray.jpg-4x6-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6337,7 +6337,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/gray.jpg-4x6-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6352,7 +6352,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/black-1/gray.jpg-4x6-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6360,7 +6360,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/gray.jpg-4x6-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6375,7 +6375,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/black-1/gray.jpg-4x6-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6383,7 +6383,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -6395,7 +6395,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6403,7 +6403,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6418,7 +6418,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6426,7 +6426,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6441,7 +6441,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6449,7 +6449,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -6461,7 +6461,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-720dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6469,7 +6469,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6484,7 +6484,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "gray.jpg-4x6" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6492,7 +6492,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print gray.jpg-4x6 @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6507,7 +6507,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "gray.jpg-4x6" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6515,7 +6515,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/onepage-a4-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -6527,7 +6527,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-150dpi-20150616/black-1/onepage-a4-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6535,7 +6535,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/onepage-a4-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6550,7 +6550,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/black-1/onepage-a4-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6558,7 +6558,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/onepage-a4-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6573,7 +6573,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/black-1/onepage-a4-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6581,7 +6581,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -6593,7 +6593,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6601,7 +6601,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6616,7 +6616,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6624,7 +6624,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6639,7 +6639,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6647,7 +6647,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/onepage-a4-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -6659,7 +6659,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-150dpi-20150616/sgray-8/onepage-a4-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6667,7 +6667,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/onepage-a4-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6682,7 +6682,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/sgray-8/onepage-a4-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6690,7 +6690,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/onepage-a4-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6705,7 +6705,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/sgray-8/onepage-a4-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6713,7 +6713,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/onepage-a4-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -6725,7 +6725,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-150dpi-20150616/srgb-8/onepage-a4-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6733,7 +6733,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/onepage-a4-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6748,7 +6748,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/srgb-8/onepage-a4-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6756,7 +6756,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/onepage-a4-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6771,7 +6771,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/srgb-8/onepage-a4-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6779,7 +6779,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/onepage-a4-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -6791,7 +6791,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-180dpi-20150616/black-1/onepage-a4-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6799,7 +6799,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/onepage-a4-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6814,7 +6814,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/black-1/onepage-a4-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6822,7 +6822,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/onepage-a4-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6837,7 +6837,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/black-1/onepage-a4-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6845,7 +6845,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -6857,7 +6857,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6865,7 +6865,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6880,7 +6880,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6888,7 +6888,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6903,7 +6903,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6911,7 +6911,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/onepage-a4-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -6923,7 +6923,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-180dpi-20150616/sgray-8/onepage-a4-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6931,7 +6931,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/onepage-a4-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -6946,7 +6946,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/sgray-8/onepage-a4-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6954,7 +6954,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/onepage-a4-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -6969,7 +6969,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/sgray-8/onepage-a4-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6977,7 +6977,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/onepage-a4-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -6989,7 +6989,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-180dpi-20150616/srgb-8/onepage-a4-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -6997,7 +6997,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/onepage-a4-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7012,7 +7012,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/srgb-8/onepage-a4-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7020,7 +7020,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/onepage-a4-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7035,7 +7035,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/srgb-8/onepage-a4-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7043,7 +7043,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/onepage-a4-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -7055,7 +7055,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-300dpi-20150616/black-1/onepage-a4-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7063,7 +7063,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/onepage-a4-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7078,7 +7078,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/black-1/onepage-a4-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7086,7 +7086,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/onepage-a4-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7101,7 +7101,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/black-1/onepage-a4-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7109,7 +7109,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -7121,7 +7121,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7129,7 +7129,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7144,7 +7144,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7152,7 +7152,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7167,7 +7167,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7175,7 +7175,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/onepage-a4-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -7187,7 +7187,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-300dpi-20150616/sgray-8/onepage-a4-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7195,7 +7195,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/onepage-a4-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7210,7 +7210,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/sgray-8/onepage-a4-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7218,7 +7218,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/onepage-a4-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7233,7 +7233,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/sgray-8/onepage-a4-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7241,7 +7241,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/onepage-a4-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -7253,7 +7253,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-300dpi-20150616/srgb-8/onepage-a4-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7261,7 +7261,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/onepage-a4-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7276,7 +7276,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/srgb-8/onepage-a4-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7284,7 +7284,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/onepage-a4-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7299,7 +7299,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/srgb-8/onepage-a4-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7307,7 +7307,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/onepage-a4-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -7319,7 +7319,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-360dpi-20150616/black-1/onepage-a4-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7327,7 +7327,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/onepage-a4-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7342,7 +7342,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/black-1/onepage-a4-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7350,7 +7350,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/onepage-a4-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7365,7 +7365,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/black-1/onepage-a4-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7373,7 +7373,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -7385,7 +7385,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7393,7 +7393,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7408,7 +7408,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7416,7 +7416,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7431,7 +7431,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7439,7 +7439,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/onepage-a4-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -7451,7 +7451,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-360dpi-20150616/sgray-8/onepage-a4-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7459,7 +7459,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/onepage-a4-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7474,7 +7474,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/sgray-8/onepage-a4-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7482,7 +7482,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/onepage-a4-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7497,7 +7497,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/sgray-8/onepage-a4-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7505,7 +7505,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/onepage-a4-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -7517,7 +7517,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-360dpi-20150616/srgb-8/onepage-a4-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7525,7 +7525,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/onepage-a4-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7540,7 +7540,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/srgb-8/onepage-a4-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7548,7 +7548,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/onepage-a4-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7563,7 +7563,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/srgb-8/onepage-a4-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7571,7 +7571,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/onepage-a4-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -7583,7 +7583,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-600dpi-20150616/black-1/onepage-a4-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7591,7 +7591,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/onepage-a4-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7606,7 +7606,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/black-1/onepage-a4-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7614,7 +7614,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/onepage-a4-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7629,7 +7629,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/black-1/onepage-a4-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7637,7 +7637,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -7649,7 +7649,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7657,7 +7657,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7672,7 +7672,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7680,7 +7680,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7695,7 +7695,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7703,7 +7703,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/onepage-a4-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -7715,7 +7715,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-600dpi-20150616/sgray-8/onepage-a4-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7723,7 +7723,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/onepage-a4-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7738,7 +7738,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/sgray-8/onepage-a4-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7746,7 +7746,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/onepage-a4-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7761,7 +7761,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/sgray-8/onepage-a4-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7769,7 +7769,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/onepage-a4-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -7781,7 +7781,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-600dpi-20150616/srgb-8/onepage-a4-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7789,7 +7789,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/onepage-a4-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7804,7 +7804,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/srgb-8/onepage-a4-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7812,7 +7812,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/onepage-a4-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7827,7 +7827,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/srgb-8/onepage-a4-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7835,7 +7835,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/onepage-a4-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -7847,7 +7847,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-720dpi-20150616/black-1/onepage-a4-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7855,7 +7855,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/onepage-a4-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7870,7 +7870,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/black-1/onepage-a4-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7878,7 +7878,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/onepage-a4-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7893,7 +7893,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/black-1/onepage-a4-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7901,7 +7901,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -7913,7 +7913,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7921,7 +7921,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -7936,7 +7936,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7944,7 +7944,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -7959,7 +7959,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7967,7 +7967,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/onepage-a4-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -7979,7 +7979,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-720dpi-20150616/sgray-8/onepage-a4-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -7987,7 +7987,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/onepage-a4-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8002,7 +8002,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/sgray-8/onepage-a4-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8010,7 +8010,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/onepage-a4-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8025,7 +8025,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/sgray-8/onepage-a4-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8033,7 +8033,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/onepage-a4-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -8045,7 +8045,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-720dpi-20150616/srgb-8/onepage-a4-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8053,7 +8053,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/onepage-a4-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8068,7 +8068,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-a4" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/srgb-8/onepage-a4-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8076,7 +8076,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-a4 @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/onepage-a4-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8091,7 +8091,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-a4" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/srgb-8/onepage-a4-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8099,7 +8099,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/onepage-letter-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -8111,7 +8111,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-150dpi-20150616/black-1/onepage-letter-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8119,7 +8119,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/onepage-letter-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8134,7 +8134,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/black-1/onepage-letter-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8142,7 +8142,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/black-1/onepage-letter-black-1-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8157,7 +8157,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/black-1/onepage-letter-black-1-150dpi.pwg + FILE pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8165,7 +8165,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -8177,7 +8177,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8185,7 +8185,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8200,7 +8200,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8208,7 +8208,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8223,7 +8223,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8231,7 +8231,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/onepage-letter-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -8243,7 +8243,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-150dpi-20150616/sgray-8/onepage-letter-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8251,7 +8251,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/onepage-letter-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8266,7 +8266,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/sgray-8/onepage-letter-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8274,7 +8274,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/sgray-8/onepage-letter-sgray-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8289,7 +8289,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/sgray-8/onepage-letter-sgray-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8297,7 +8297,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/onepage-letter-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -8309,7 +8309,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-150dpi-20150616/srgb-8/onepage-letter-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8317,7 +8317,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/onepage-letter-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8332,7 +8332,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-150dpi-20150616/srgb-8/onepage-letter-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8340,7 +8340,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi-20150616/srgb-8/onepage-letter-srgb-8-150dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg SKIP-IF-NOT-DEFINED HAVE_150DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8355,7 +8355,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-150dpi-20150616/srgb-8/onepage-letter-srgb-8-150dpi.pwg + FILE pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8363,7 +8363,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/onepage-letter-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -8375,7 +8375,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-180dpi-20150616/black-1/onepage-letter-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8383,7 +8383,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/onepage-letter-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8398,7 +8398,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/black-1/onepage-letter-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8406,7 +8406,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/black-1/onepage-letter-black-1-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8421,7 +8421,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/black-1/onepage-letter-black-1-180dpi.pwg + FILE pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8429,7 +8429,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -8441,7 +8441,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8449,7 +8449,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8464,7 +8464,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8472,7 +8472,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8487,7 +8487,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8495,7 +8495,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/onepage-letter-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -8507,7 +8507,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-180dpi-20150616/sgray-8/onepage-letter-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8515,7 +8515,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/onepage-letter-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8530,7 +8530,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/sgray-8/onepage-letter-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8538,7 +8538,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/sgray-8/onepage-letter-sgray-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8553,7 +8553,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/sgray-8/onepage-letter-sgray-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8561,7 +8561,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/onepage-letter-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -8573,7 +8573,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-180dpi-20150616/srgb-8/onepage-letter-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8581,7 +8581,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/onepage-letter-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8596,7 +8596,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-180dpi-20150616/srgb-8/onepage-letter-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8604,7 +8604,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi-20150616/srgb-8/onepage-letter-srgb-8-180dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg SKIP-IF-NOT-DEFINED HAVE_180DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8619,7 +8619,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-180dpi-20150616/srgb-8/onepage-letter-srgb-8-180dpi.pwg + FILE pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8627,7 +8627,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/onepage-letter-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -8639,7 +8639,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-300dpi-20150616/black-1/onepage-letter-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8647,7 +8647,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/onepage-letter-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8662,7 +8662,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/black-1/onepage-letter-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8670,7 +8670,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/black-1/onepage-letter-black-1-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8685,7 +8685,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/black-1/onepage-letter-black-1-300dpi.pwg + FILE pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8693,7 +8693,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -8705,7 +8705,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8713,7 +8713,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8728,7 +8728,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8736,7 +8736,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8751,7 +8751,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8759,7 +8759,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/onepage-letter-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -8771,7 +8771,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-300dpi-20150616/sgray-8/onepage-letter-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8779,7 +8779,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/onepage-letter-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8794,7 +8794,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/sgray-8/onepage-letter-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8802,7 +8802,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/sgray-8/onepage-letter-sgray-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8817,7 +8817,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/sgray-8/onepage-letter-sgray-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8825,7 +8825,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/onepage-letter-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -8837,7 +8837,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-300dpi-20150616/srgb-8/onepage-letter-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8845,7 +8845,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/onepage-letter-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8860,7 +8860,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-300dpi-20150616/srgb-8/onepage-letter-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8868,7 +8868,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi-20150616/srgb-8/onepage-letter-srgb-8-300dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg SKIP-IF-NOT-DEFINED HAVE_300DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8883,7 +8883,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-300dpi-20150616/srgb-8/onepage-letter-srgb-8-300dpi.pwg + FILE pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8891,7 +8891,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/onepage-letter-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -8903,7 +8903,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-360dpi-20150616/black-1/onepage-letter-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8911,7 +8911,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/onepage-letter-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8926,7 +8926,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/black-1/onepage-letter-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8934,7 +8934,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/black-1/onepage-letter-black-1-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -8949,7 +8949,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/black-1/onepage-letter-black-1-360dpi.pwg + FILE pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8957,7 +8957,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -8969,7 +8969,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -8977,7 +8977,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -8992,7 +8992,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9000,7 +9000,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9015,7 +9015,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9023,7 +9023,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/onepage-letter-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -9035,7 +9035,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-360dpi-20150616/sgray-8/onepage-letter-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9043,7 +9043,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/onepage-letter-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9058,7 +9058,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/sgray-8/onepage-letter-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9066,7 +9066,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/sgray-8/onepage-letter-sgray-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9081,7 +9081,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/sgray-8/onepage-letter-sgray-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9089,7 +9089,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/onepage-letter-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -9101,7 +9101,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-360dpi-20150616/srgb-8/onepage-letter-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9109,7 +9109,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/onepage-letter-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9124,7 +9124,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-360dpi-20150616/srgb-8/onepage-letter-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9132,7 +9132,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi-20150616/srgb-8/onepage-letter-srgb-8-360dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg SKIP-IF-NOT-DEFINED HAVE_360DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9147,7 +9147,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-360dpi-20150616/srgb-8/onepage-letter-srgb-8-360dpi.pwg + FILE pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9155,7 +9155,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/onepage-letter-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -9167,7 +9167,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-600dpi-20150616/black-1/onepage-letter-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9175,7 +9175,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/onepage-letter-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9190,7 +9190,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/black-1/onepage-letter-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9198,7 +9198,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/black-1/onepage-letter-black-1-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9213,7 +9213,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/black-1/onepage-letter-black-1-600dpi.pwg + FILE pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9221,7 +9221,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -9233,7 +9233,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9241,7 +9241,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9256,7 +9256,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9264,7 +9264,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9279,7 +9279,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9287,7 +9287,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/onepage-letter-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -9299,7 +9299,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-600dpi-20150616/sgray-8/onepage-letter-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9307,7 +9307,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/onepage-letter-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9322,7 +9322,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/sgray-8/onepage-letter-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9330,7 +9330,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/sgray-8/onepage-letter-sgray-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9345,7 +9345,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/sgray-8/onepage-letter-sgray-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9353,7 +9353,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/onepage-letter-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -9365,7 +9365,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-600dpi-20150616/srgb-8/onepage-letter-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9373,7 +9373,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/onepage-letter-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9388,7 +9388,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-600dpi-20150616/srgb-8/onepage-letter-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9396,7 +9396,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi-20150616/srgb-8/onepage-letter-srgb-8-600dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg SKIP-IF-NOT-DEFINED HAVE_600DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9411,7 +9411,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-600dpi-20150616/srgb-8/onepage-letter-srgb-8-600dpi.pwg + FILE pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9419,7 +9419,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/onepage-letter-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 @@ -9431,7 +9431,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-720dpi-20150616/black-1/onepage-letter-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9439,7 +9439,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/onepage-letter-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9454,7 +9454,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/black-1/onepage-letter-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9462,7 +9462,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/black-1/onepage-letter-black-1-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_BLACK_1 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9477,7 +9477,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/black-1/onepage-letter-black-1-720dpi.pwg + FILE pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9485,7 +9485,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 @@ -9497,7 +9497,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9505,7 +9505,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9520,7 +9520,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9528,7 +9528,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_CMYK_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9543,7 +9543,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9551,7 +9551,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/onepage-letter-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 @@ -9563,7 +9563,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-720dpi-20150616/sgray-8/onepage-letter-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9571,7 +9571,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/onepage-letter-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9586,7 +9586,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/sgray-8/onepage-letter-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9594,7 +9594,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/sgray-8/onepage-letter-sgray-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9609,7 +9609,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/sgray-8/onepage-letter-sgray-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9617,7 +9617,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/onepage-letter-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 @@ -9629,7 +9629,7 @@ INCLUDE "ipp-2.0.test" ATTR name requesting-user-name $user ATTR mimeMediaType document-format image/pwg-raster ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-720dpi-20150616/srgb-8/onepage-letter-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9637,7 +9637,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/onepage-letter-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_DEFLATE @@ -9652,7 +9652,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression deflate ATTR name job-name "onepage-letter" COMPRESSION deflate - FILE pwg-raster-samples-720dpi-20150616/srgb-8/onepage-letter-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH @@ -9660,7 +9660,7 @@ INCLUDE "ipp-2.0.test" { NAME "Print onepage-letter @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi-20150616/srgb-8/onepage-letter-srgb-8-720dpi.pwg + SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg SKIP-IF-NOT-DEFINED HAVE_720DPI SKIP-IF-NOT-DEFINED HAVE_SRGB_8 SKIP-IF-NOT-DEFINED HAVE_GZIP @@ -9675,7 +9675,7 @@ INCLUDE "ipp-2.0.test" ATTR keyword compression gzip ATTR name job-name "onepage-letter" COMPRESSION gzip - FILE pwg-raster-samples-720dpi-20150616/srgb-8/onepage-letter-srgb-8-720dpi.pwg + FILE pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg STATUS successful-ok STATUS server-error-busy REPEAT-MATCH diff --git a/test/ippfind.c b/test/ippfind.c index 2c93873..012609d 100644 --- a/test/ippfind.c +++ b/test/ippfind.c @@ -3,7 +3,7 @@ * commands such as IPP and Bonjour conformance tests. This tool is * inspired by the UNIX "find" command, thus its name. * - * Copyright 2008-2015 by Apple Inc. + * Copyright 2008-2018 by Apple Inc. * * These coded instructions, statements, and computer programs are the * property of Apple Inc. and are protected by Federal copyright @@ -20,12 +20,12 @@ #define _CUPS_NO_DEPRECATED #include <cups/cups-private.h> -#ifdef WIN32 +#ifdef _WIN32 # include <process.h> # include <sys/timeb.h> #else # include <sys/wait.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #include <regex.h> #ifdef HAVE_DNSSD # include <dns_sd.h> @@ -39,9 +39,9 @@ # define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX #endif /* HAVE_DNSSD */ -#ifndef WIN32 +#ifndef _WIN32 extern char **environ; /* Process environment variables */ -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* @@ -156,7 +156,7 @@ static void DNSSD_API browse_callback(DNSServiceRef sdRef, const char *serviceName, const char *regtype, const char *replyDomain, void *context) - __attribute__((nonnull(1,5,6,7,8))); + _CUPS_NONNULL((1,5,6,7,8)); static void DNSSD_API browse_local_callback(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, @@ -165,7 +165,7 @@ static void DNSSD_API browse_local_callback(DNSServiceRef sdRef, const char *regtype, const char *replyDomain, void *context) - __attribute__((nonnull(1,5,6,7,8))); + _CUPS_NONNULL((1,5,6,7,8)); #elif defined(HAVE_AVAHI) static void browse_callback(AvahiServiceBrowser *browser, AvahiIfIndex interface, @@ -191,7 +191,7 @@ static ippfind_srv_t *get_service(cups_array_t *services, const char *serviceName, const char *regtype, const char *replyDomain) - __attribute__((nonnull(1,2,3,4))); + _CUPS_NONNULL((1,2,3,4)); static double get_time(void); static int list_service(ippfind_srv_t *service); static ippfind_expr_t *new_expr(ippfind_op_t op, int invert, @@ -207,7 +207,7 @@ static void DNSSD_API resolve_callback(DNSServiceRef sdRef, uint16_t txtLen, const unsigned char *txtRecord, void *context) - __attribute__((nonnull(1,5,6,9, 10))); + _CUPS_NONNULL((1,5,6,9, 10)); #elif defined(HAVE_AVAHI) static int poll_callback(struct pollfd *pollfds, unsigned int num_pollfds, int timeout, @@ -227,8 +227,8 @@ static void resolve_callback(AvahiServiceResolver *res, void *context); #endif /* HAVE_DNSSD */ static void set_service_uri(ippfind_srv_t *service); -static void show_usage(void) __attribute__((noreturn)); -static void show_version(void) __attribute__((noreturn)); +static void show_usage(void) _CUPS_NORETURN; +static void show_version(void) _CUPS_NORETURN; /* @@ -1766,10 +1766,10 @@ dnssd_error_string(int error) /* I - Error number */ case kDNSServiceErr_PollingMode : return ("Service polling mode error."); -#ifndef WIN32 +#ifndef _WIN32 case kDNSServiceErr_Timeout : return ("Service timeout."); -#endif /* !WIN32 */ +#endif /* !_WIN32 */ } # elif defined(HAVE_AVAHI) @@ -1920,10 +1920,10 @@ exec_program(ippfind_srv_t *service, /* I - Service */ int i, /* Looping var */ myenvc, /* Number of environment variables */ status; /* Exit status of program */ -#ifndef WIN32 +#ifndef _WIN32 char program[1024]; /* Program to execute */ int pid; /* Process ID */ -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* @@ -2058,7 +2058,7 @@ exec_program(ippfind_srv_t *service, /* I - Service */ myargv[i] = strdup(args[i]); } -#ifdef WIN32 +#ifdef _WIN32 if (getenv("IPPFIND_DEBUG")) { printf("\nProgram:\n %s\n", args[0]); @@ -2121,7 +2121,7 @@ exec_program(ippfind_srv_t *service, /* I - Service */ while (wait(&status) != pid) ; } -#endif /* WIN32 */ +#endif /* _WIN32 */ /* * Free memory... @@ -2139,14 +2139,14 @@ exec_program(ippfind_srv_t *service, /* I - Service */ if (getenv("IPPFIND_DEBUG")) { -#ifdef WIN32 +#ifdef _WIN32 printf("Exit Status: %d\n", status); #else if (WIFEXITED(status)) printf("Exit Status: %d\n", WEXITSTATUS(status)); else printf("Terminating Signal: %d\n", WTERMSIG(status)); -#endif /* WIN32 */ +#endif /* _WIN32 */ } return (status == 0); @@ -2220,7 +2220,7 @@ get_service(cups_array_t *services, /* I - Service array */ static double get_time(void) { -#ifdef WIN32 +#ifdef _WIN32 struct _timeb curtime; /* Current Windows time */ _ftime(&curtime); @@ -2234,7 +2234,7 @@ get_time(void) return (0.0); else return (curtime.tv_sec + 0.000001 * curtime.tv_usec); -#endif /* WIN32 */ +#endif /* _WIN32 */ } diff --git a/test/ippserver.c b/test/ippserver.c index 38b304f..237727e 100644 --- a/test/ippserver.c +++ b/test/ippserver.c @@ -1,7 +1,7 @@ /* * Sample IPP Everywhere server for CUPS. * - * Copyright 2010-2017 by Apple Inc. + * Copyright 2010-2018 by Apple Inc. * * These coded instructions, statements, and computer programs are the * property of Apple Inc. and are protected by Federal copyright @@ -37,7 +37,7 @@ #include <limits.h> #include <sys/stat.h> -#ifdef WIN32 +#ifdef _WIN32 # include <fcntl.h> # include <io.h> # include <process.h> @@ -51,7 +51,7 @@ extern char **environ; # include <sys/fcntl.h> # include <sys/wait.h> # include <poll.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #ifdef HAVE_DNSSD # include <dns_sd.h> @@ -411,8 +411,7 @@ static void html_escape(_ipp_client_t *client, const char *s, static void html_footer(_ipp_client_t *client); static void html_header(_ipp_client_t *client, const char *title); static void html_printf(_ipp_client_t *client, const char *format, - ...) __attribute__((__format__(__printf__, - 2, 3))); + ...) _CUPS_FORMAT(2, 3); static void ipp_cancel_job(_ipp_client_t *client); static void ipp_close_job(_ipp_client_t *client); static void ipp_create_job(_ipp_client_t *client); @@ -437,14 +436,12 @@ static int register_printer(_ipp_printer_t *printer, const char *location, cons static int respond_http(_ipp_client_t *client, http_status_t code, const char *content_coding, const char *type, size_t length); -static void respond_ipp(_ipp_client_t *client, ipp_status_t status, - const char *message, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); +static void respond_ipp(_ipp_client_t *client, ipp_status_t status, const char *message, ...) _CUPS_FORMAT(3, 4); static void respond_unsupported(_ipp_client_t *client, ipp_attribute_t *attr); static void run_printer(_ipp_printer_t *printer); static char *time_string(time_t tv, char *buffer, size_t bufsize); -static void usage(int status) __attribute__((noreturn)); +static void usage(int status) _CUPS_NORETURN; static int valid_doc_attributes(_ipp_client_t *client); static int valid_job_attributes(_ipp_client_t *client); @@ -652,7 +649,7 @@ main(int argc, /* I - Number of command-line args */ if (!port) { -#ifdef WIN32 +#ifdef _WIN32 /* * Windows is almost always used as a single user system, so use a default * port number of 8631. @@ -666,7 +663,7 @@ main(int argc, /* I - Number of command-line args */ */ port = 8000 + ((int)getuid() % 1000); -#endif /* WIN32 */ +#endif /* _WIN32 */ fprintf(stderr, "Listening on port %d.\n", port); } @@ -675,7 +672,7 @@ main(int argc, /* I - Number of command-line args */ { const char *tmpdir; /* Temporary directory */ -#ifdef WIN32 +#ifdef _WIN32 if ((tmpdir = getenv("TEMP")) == NULL) tmpdir = "C:/TEMP"; #elif defined(__APPLE__) && !TARGET_OS_IOS @@ -684,7 +681,7 @@ main(int argc, /* I - Number of command-line args */ #else if ((tmpdir = getenv("TMPDIR")) == NULL) tmpdir = "/tmp"; -#endif /* WIN32 */ +#endif /* _WIN32 */ snprintf(directory, sizeof(directory), "%s/ippserver.%d", tmpdir, (int)getpid()); @@ -1280,9 +1277,9 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default) { int i, j; /* Looping vars */ _ipp_printer_t *printer; /* Printer */ -#ifndef WIN32 +#ifndef _WIN32 char path[1024]; /* Full path to command */ -#endif /* !WIN32 */ +#endif /* !_WIN32 */ char uri[1024], /* Printer URI */ #ifdef HAVE_SSL securi[1024], /* Secure printer URI */ @@ -1484,7 +1481,7 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default) }; -#ifndef WIN32 +#ifndef _WIN32 /* * If a command was specified, make sure it exists and is executable... */ @@ -1510,7 +1507,7 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default) command = path; } } -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* * Allocate memory for the printer... @@ -2481,9 +2478,9 @@ filter_cb(_ipp_filter_t *filter, /* I - Filter parameters */ * Filter attributes as needed... */ -#ifndef WIN32 /* Avoid MS compiler bug */ +#ifndef _WIN32 /* Avoid MS compiler bug */ (void)dst; -#endif /* !WIN32 */ +#endif /* !_WIN32 */ ipp_tag_t group = ippGetGroupTag(attr); const char *name = ippGetName(attr); @@ -6032,13 +6029,13 @@ process_job(_ipp_job_t *job) /* I - Job */ ipp_attribute_t *attr; /* Job attribute */ char val[1280], /* IPP_NAME=value */ *valptr; /* Pointer into string */ -#ifndef WIN32 +#ifndef _WIN32 int mypipe[2]; /* Pipe for stderr */ char line[2048], /* Line from stderr */ *ptr, /* Pointer into line */ *endptr; /* End of line */ ssize_t bytes; /* Bytes read */ -#endif /* !WIN32 */ +#endif /* !_WIN32 */ fprintf(stderr, "Running command \"%s %s\".\n", job->printer->command, job->filename); @@ -6096,7 +6093,7 @@ process_job(_ipp_job_t *job) /* I - Job */ * Now run the program... */ -#ifdef WIN32 +#ifdef _WIN32 status = _spawnvpe(_P_WAIT, job->printer->command, myargv, myenvp); #else @@ -6206,20 +6203,20 @@ process_job(_ipp_job_t *job) /* I - Job */ while (wait(&status) < 0); # endif /* HAVE_WAITPID */ } -#endif /* WIN32 */ +#endif /* _WIN32 */ if (status) { -#ifndef WIN32 +#ifndef _WIN32 if (WIFEXITED(status)) -#endif /* !WIN32 */ +#endif /* !_WIN32 */ fprintf(stderr, "Command \"%s\" exited with status %d.\n", job->printer->command, WEXITSTATUS(status)); -#ifndef WIN32 +#ifndef _WIN32 else fprintf(stderr, "Command \"%s\" terminated with signal %d.\n", job->printer->command, WTERMSIG(status)); -#endif /* !WIN32 */ +#endif /* !_WIN32 */ job->state = IPP_JSTATE_ABORTED; } else if (status < 0) diff --git a/test/ipptool.c b/test/ipptool.c index 9c57ca2..703e681 100644 --- a/test/ipptool.c +++ b/test/ipptool.c @@ -1,7 +1,7 @@ /* * ipptool command for CUPS. * - * Copyright 2007-2017 by Apple Inc. + * Copyright 2007-2018 by Apple Inc. * Copyright 1997-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -21,7 +21,7 @@ #include <cups/file-private.h> #include <regex.h> #include <sys/stat.h> -#ifdef WIN32 +#ifdef _WIN32 # include <windows.h> # ifndef R_OK # define R_OK 0 @@ -29,7 +29,7 @@ #else # include <signal.h> # include <termios.h> -#endif /* WIN32 */ +#endif /* _WIN32 */ #ifndef O_BINARY # define O_BINARY 0 #endif /* !O_BINARY */ @@ -152,11 +152,11 @@ static int PasswordTries = 0; /* Number of tries with password */ * Local functions... */ -static void add_stringf(cups_array_t *a, const char *s, ...) __attribute__ ((__format__ (__printf__, 2, 3))); +static void add_stringf(cups_array_t *a, const char *s, ...) _CUPS_FORMAT(2, 3); static int compare_uris(const char *a, const char *b); static int compare_vars(_cups_var_t *a, _cups_var_t *b); static int do_tests(cups_file_t *outfile, _cups_vars_t *vars, const char *testfile); -static void expand_variables(_cups_vars_t *vars, char *dst, const char *src, size_t dstsize) __attribute__((nonnull(1,2,3))); +static void expand_variables(_cups_vars_t *vars, char *dst, const char *src, size_t dstsize) _CUPS_NONNULL((1,2,3)); static int expect_matches(_cups_expect_t *expect, ipp_tag_t value_tag); static ipp_t *get_collection(cups_file_t *outfile, _cups_vars_t *vars, cups_file_t *fp, int *linenum); static char *get_filename(const char *testfile, char *dst, const char *src, size_t dstsize); @@ -168,17 +168,17 @@ static const char *password_cb(const char *prompt); static void pause_message(const char *message); static void print_attr(cups_file_t *outfile, int format, ipp_attribute_t *attr, ipp_tag_t *group); static void print_csv(cups_file_t *outfile, ipp_attribute_t *attr, int num_displayed, char **displayed, size_t *widths); -static void print_fatal_error(cups_file_t *outfile, const char *s, ...) __attribute__ ((__format__ (__printf__, 2, 3))); +static void print_fatal_error(cups_file_t *outfile, const char *s, ...) _CUPS_FORMAT(2, 3); static void print_line(cups_file_t *outfile, ipp_attribute_t *attr, int num_displayed, char **displayed, size_t *widths); static void print_xml_header(cups_file_t *outfile); static void print_xml_string(cups_file_t *outfile, const char *element, const char *s); static void print_xml_trailer(cups_file_t *outfile, int success, const char *message); static void set_variable(cups_file_t *outfile, _cups_vars_t *vars, const char *name, const char *value); -#ifndef WIN32 +#ifndef _WIN32 static void sigterm_handler(int sig); -#endif /* WIN32 */ +#endif /* _WIN32 */ static int timeout_cb(http_t *http, void *user_data); -static void usage(void) __attribute__((noreturn)); +static void usage(void) _CUPS_NORETURN; static int validate_attr(cups_file_t *outfile, cups_array_t *errors, ipp_attribute_t *attr); static const char *with_flags_string(int flags); static int with_value(cups_file_t *outfile, cups_array_t *errors, char *value, int flags, ipp_attribute_t *attr, char *matchbuf, size_t matchlen); @@ -213,14 +213,14 @@ main(int argc, /* I - Number of command-line args */ /* Global data */ -#ifndef WIN32 +#ifndef _WIN32 /* * Catch SIGINT and SIGTERM... */ signal(SIGINT, sigterm_handler); signal(SIGTERM, sigterm_handler); -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* * Initialize the locale and variables... @@ -432,9 +432,9 @@ main(int argc, /* I - Number of command-line args */ snprintf(filename, sizeof(filename), "%s.gz", argv[i]); if (access(filename, 0) && filename[0] != '/' -#ifdef WIN32 +#ifdef _WIN32 && (!isalpha(filename[0] & 255) || filename[1] != ':') -#endif /* WIN32 */ +#endif /* _WIN32 */ ) { snprintf(filename, sizeof(filename), "%s/ipptool/%s", @@ -650,9 +650,9 @@ main(int argc, /* I - Number of command-line args */ } if (access(argv[i], 0) && argv[i][0] != '/' -#ifdef WIN32 +#ifdef _WIN32 && (!isalpha(argv[i][0] & 255) || argv[i][1] != ':') -#endif /* WIN32 */ +#endif /* _WIN32 */ ) { snprintf(testname, sizeof(testname), "%s/ipptool/%s", cg->cups_datadir, @@ -2757,11 +2757,11 @@ do_tests(cups_file_t *outfile, /* I - Output file */ } if (!Cancel && status == HTTP_STATUS_ERROR && http->error != EINVAL && -#ifdef WIN32 +#ifdef _WIN32 http->error != WSAETIMEDOUT) #else http->error != ETIMEDOUT) -#endif /* WIN32 */ +#endif /* _WIN32 */ { if (httpReconnect2(http, 30000, NULL)) prev_pass = 0; @@ -2784,11 +2784,11 @@ do_tests(cups_file_t *outfile, /* I - Output file */ } if (!Cancel && status == HTTP_STATUS_ERROR && http->error != EINVAL && -#ifdef WIN32 +#ifdef _WIN32 http->error != WSAETIMEDOUT) #else http->error != ETIMEDOUT) -#endif /* WIN32 */ +#endif /* _WIN32 */ { if (httpReconnect2(http, 30000, NULL)) prev_pass = 0; @@ -4056,9 +4056,9 @@ get_filename(const char *testfile, /* I - Current test file */ *dstptr = '\0'; } else if (*src == '/' || !strchr(testfile, '/') -#ifdef WIN32 +#ifdef _WIN32 || (isalpha(*src & 255) && src[1] == ':') -#endif /* WIN32 */ +#endif /* _WIN32 */ ) { /* @@ -4353,7 +4353,7 @@ password_cb(const char *prompt) /* I - Prompt (unused) */ static void pause_message(const char *message) /* I - Message */ { -#ifdef WIN32 +#ifdef _WIN32 HANDLE tty; /* Console handle */ DWORD mode; /* Console mode */ char key; /* Key press */ @@ -4401,7 +4401,7 @@ pause_message(const char *message) /* I - Message */ close(tty); return; } -#endif /* WIN32 */ +#endif /* _WIN32 */ /* * Display the prompt... @@ -4409,7 +4409,7 @@ pause_message(const char *message) /* I - Message */ cupsFilePrintf(cupsFileStdout(), "%s\n---- PRESS ANY KEY ----", message); -#ifdef WIN32 +#ifdef _WIN32 /* * Read a key... */ @@ -4435,7 +4435,7 @@ pause_message(const char *message) /* I - Message */ tcsetattr(tty, TCSAFLUSH, &original); close(tty); -#endif /* WIN32 */ +#endif /* _WIN32 */ /* * Erase the "press any key" prompt... @@ -4997,7 +4997,7 @@ set_variable(cups_file_t *outfile, /* I - Output file */ } -#ifndef WIN32 +#ifndef _WIN32 /* * 'sigterm_handler()' - Handle SIGINT and SIGTERM. */ @@ -5012,7 +5012,7 @@ sigterm_handler(int sig) /* I - Signal number (unused) */ signal(SIGINT, SIG_DFL); signal(SIGTERM, SIG_DFL); } -#endif /* !WIN32 */ +#endif /* !_WIN32 */ /* diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh index 056e8e5..8a263fb 100755 --- a/test/run-stp-tests.sh +++ b/test/run-stp-tests.sh @@ -94,40 +94,35 @@ echo "" case "$testtype" in 0) echo "Running in test mode (0)" - nprinters1=0 - nprinters2=0 + nprinters=0 pjobs=0 pprinters=0 loglevel="debug2" ;; 2) echo "Running the medium tests (2)" - nprinters1=10 - nprinters2=20 + nprinters=20 pjobs=20 pprinters=10 loglevel="debug" ;; 3) echo "Running the extreme tests (3)" - nprinters1=500 - nprinters2=1000 + nprinters=1000 pjobs=100 pprinters=50 loglevel="debug" ;; 4) echo "Running the torture tests (4)" - nprinters1=10000 - nprinters2=20000 + nprinters=20000 pjobs=200 pprinters=100 loglevel="debug" ;; *) echo "Running the timid tests (1)" - nprinters1=0 - nprinters2=0 + nprinters=0 pjobs=10 pprinters=0 loglevel="debug2" @@ -528,6 +523,7 @@ AccessLog $BASE/log/access_log ErrorLog $BASE/log/error_log PageLog $BASE/log/page_log +PassEnv DYLD_INSERT_LIBRARIES PassEnv DYLD_LIBRARY_PATH PassEnv LD_LIBRARY_PATH PassEnv LD_PRELOAD @@ -540,13 +536,13 @@ if test $ssltype != 0 -a `uname` = Darwin; then fi # -# Setup lots of test queues - half with PPD files, half without... +# Setup lots of test queues with PPD files... # echo "Creating printers.conf for test..." i=1 -while test $i -le $nprinters1; do +while test $i -le $nprinters; do cat >>$BASE/printers.conf <<EOF <Printer test-$i> Accepting Yes @@ -564,22 +560,6 @@ EOF i=`expr $i + 1` done -while test $i -le $nprinters2; do - cat >>$BASE/printers.conf <<EOF -<Printer test-$i> -Accepting Yes -DeviceURI file:/dev/null -Info Test raw printer $i -JobSheets none none -Location CUPS test suite -State Idle -StateMessage Printer $1 is idle. -</Printer> -EOF - - i=`expr $i + 1` -done - if test -f $BASE/printers.conf; then cp $BASE/printers.conf $BASE/printers.conf.orig else @@ -587,58 +567,74 @@ else fi # -# Setup the paths... +# Create a helper script to run programs with... # echo "Setting up environment variables for test..." if test "x$LD_LIBRARY_PATH" = x; then - LD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc" + LD_LIBRARY_PATH="$root/cups:$root/filter" else - LD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$LD_LIBRARY_PATH" + LD_LIBRARY_PATH="$root/cups:$root/filter:$LD_LIBRARY_PATH" fi -export LD_LIBRARY_PATH - -LD_PRELOAD="$root/cups/libcups.so.2:$root/filter/libcupsimage.so.2:$root/cgi-bin/libcupscgi.so.1:$root/scheduler/libcupsmime.so.1:$root/ppdc/libcupsppdc.so.1" +LD_PRELOAD="$root/cups/libcups.so.2:$root/filter/libcupsimage.so.2" if test `uname` = SunOS -a -r /usr/lib/libCrun.so.1; then LD_PRELOAD="/usr/lib/libCrun.so.1:$LD_PRELOAD" fi -export LD_PRELOAD if test -f $root/cups/libcups.2.dylib; then if test "x$DYLD_INSERT_LIBRARIES" = x; then - DYLD_INSERT_LIBRARIES="$root/cups/libcups.2.dylib:$root/filter/libcupsimage.2.dylib:$root/cgi-bin/libcupscgi.1.dylib:$root/scheduler/libcupsmime.1.dylib:$root/ppdc/libcupsppdc.1.dylib" + DYLD_INSERT_LIBRARIES="$root/cups/libcups.2.dylib:$root/filter/libcupsimage.2.dylib" else - DYLD_INSERT_LIBRARIES="$root/cups/libcups.2.dylib:$root/filter/libcupsimage.2.dylib:$root/cgi-bin/libcupscgi.1.dylib:$root/scheduler/libcupsmime.1.dylib:$root/ppdc/libcupsppdc.1.dylib:$DYLD_INSERT_LIBRARIES" + DYLD_INSERT_LIBRARIES="$root/cups/libcups.2.dylib:$root/filter/libcupsimage.2.dylib:$DYLD_INSERT_LIBRARIES" fi - - export DYLD_INSERT_LIBRARIES fi if test "x$DYLD_LIBRARY_PATH" = x; then - DYLD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc" + DYLD_LIBRARY_PATH="$root/cups:$root/filter" else - DYLD_LIBRARY_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$DYLD_LIBRARY_PATH" + DYLD_LIBRARY_PATH="$root/cups:$root/filter:$DYLD_LIBRARY_PATH" fi -export DYLD_LIBRARY_PATH - -if test "x$SHLIB_PATH" = x; then - SHLIB_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc" -else - SHLIB_PATH="$root/cups:$root/filter:$root/cgi-bin:$root/scheduler:$root/ppdc:$SHLIB_PATH" -fi - -export SHLIB_PATH - +# These get exported because they don't have side-effects... CUPS_DISABLE_APPLE_DEFAULT=yes; export CUPS_DISABLE_APPLE_DEFAULT CUPS_SERVER=localhost:$port; export CUPS_SERVER CUPS_SERVERROOT=$BASE; export CUPS_SERVERROOT CUPS_STATEDIR=$BASE; export CUPS_STATEDIR CUPS_DATADIR=$BASE/share; export CUPS_DATADIR +IPP_PORT=$port; export IPP_PORT LOCALEDIR=$BASE/share/locale; export LOCALEDIR +echo "Creating wrapper script..." + +runcups="$BASE/runcups"; export runcups + +echo "#!/bin/sh" >$runcups +echo "# Helper script for running CUPS test instance." >>$runcups +echo "" >>$runcups +echo "# Set required environment variables..." >>$runcups +echo "CUPS_DATADIR=\"$CUPS_DATADIR\"; export CUPS_DATADIR" >>$runcups +echo "CUPS_SERVER=\"$CUPS_SERVER\"; export CUPS_SERVER" >>$runcups +echo "CUPS_SERVERROOT=\"$CUPS_SERVERROOT\"; export CUPS_SERVERROOT" >>$runcups +echo "CUPS_STATEDIR=\"$CUPS_STATEDIR\"; export CUPS_STATEDIR" >>$runcups +echo "DYLD_INSERT_LIBRARIES=\"$DYLD_INSERT_LIBRARIES\"; export DYLD_INSERT_LIBRARIES" >>$runcups +echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"; export DYLD_LIBRARY_PATH" >>$runcups +# IPP_PORT=$port; export IPP_PORT +echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"; export LD_LIBRARY_PATH" >>$runcups +echo "LD_PRELOAD=\"$LD_PRELOAD\"; export LD_PRELOAD" >>$runcups +echo "LOCALEDIR=\"$LOCALEDIR\"; export LOCALEDIR" >>$runcups +if test "x$CUPS_DEBUG_LEVEL" != x; then + echo "CUPS_DEBUG_FILTER='$CUPS_DEBUG_FILTER'; export CUPS_DEBUG_FILTER" >>$runcups + echo "CUPS_DEBUG_LEVEL=$CUPS_DEBUG_LEVEL; export CUPS_DEBUG_LEVEL" >>$runcups + echo "CUPS_DEBUG_LOG='$CUPS_DEBUG_LOG'; export CUPS_DEBUG_LOG" >>$runcups +fi +echo "" >>$runcups +echo "# Run command..." >>$runcups +echo "exec \"\$@\"" >>$runcups + +chmod +x $runcups + # # Set a new home directory to avoid getting user options mixed in... # @@ -661,7 +657,7 @@ export LC_MESSAGES # echo "Starting scheduler:" -echo " $VALGRIND ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 &" +echo " $runcups $VALGRIND ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 &" echo "" if test `uname` = Darwin -a "x$VALGRIND" = x; then @@ -671,9 +667,9 @@ if test `uname` = Darwin -a "x$VALGRIND" = x; then insert="/usr/lib/libgmalloc.dylib:$DYLD_INSERT_LIBRARIES" fi - DYLD_INSERT_LIBRARIES="$insert" MallocStackLogging=1 ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 & + DYLD_INSERT_LIBRARIES="$insert" MallocStackLogging=1 $runcups ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 & else - $VALGRIND ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 & + $runcups $VALGRIND ../scheduler/cupsd -c $BASE/cupsd.conf -f >$BASE/log/debug_log 2>&1 & fi cupsd=$! @@ -683,33 +679,6 @@ if test "x$testtype" = x0; then echo "Scheduler is PID $cupsd and is listening on port $port." echo "" - # Create a helper script to run programs with... - runcups="$BASE/runcups" - - echo "#!/bin/sh" >$runcups - echo "# Helper script for running CUPS test instance." >>$runcups - echo "" >>$runcups - echo "# Set required environment variables..." >>$runcups - echo "CUPS_DATADIR=\"$CUPS_DATADIR\"; export CUPS_DATADIR" >>$runcups - echo "CUPS_SERVER=\"$CUPS_SERVER\"; export CUPS_SERVER" >>$runcups - echo "CUPS_SERVERROOT=\"$CUPS_SERVERROOT\"; export CUPS_SERVERROOT" >>$runcups - echo "CUPS_STATEDIR=\"$CUPS_STATEDIR\"; export CUPS_STATEDIR" >>$runcups - echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"; export DYLD_LIBRARY_PATH" >>$runcups - echo "LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\"; export LD_LIBRARY_PATH" >>$runcups - echo "LD_PRELOAD=\"$LD_PRELOAD\"; export LD_PRELOAD" >>$runcups - echo "LOCALEDIR=\"$LOCALEDIR\"; export LOCALEDIR" >>$runcups - echo "SHLIB_PATH=\"$SHLIB_PATH\"; export SHLIB_PATH" >>$runcups - if test "x$CUPS_DEBUG_LEVEL" != x; then - echo "CUPS_DEBUG_FILTER='$CUPS_DEBUG_FILTER'; export CUPS_DEBUG_FILTER" >>$runcups - echo "CUPS_DEBUG_LEVEL=$CUPS_DEBUG_LEVEL; export CUPS_DEBUG_LEVEL" >>$runcups - echo "CUPS_DEBUG_LOG='$CUPS_DEBUG_LOG'; export CUPS_DEBUG_LOG" >>$runcups - fi - echo "" >>$runcups - echo "# Run command..." >>$runcups - echo "exec \"\$@\"" >>$runcups - - chmod +x $runcups - echo "The $runcups helper script can be used to test programs" echo "with the server." exit 0 @@ -725,10 +694,8 @@ else sleep 2 fi -IPP_PORT=$port; export IPP_PORT - while true; do - running=`../systemv/lpstat -r 2>/dev/null` + running=`$runcups ../systemv/lpstat -r 2>/dev/null` if test "x$running" = "xscheduler is running"; then break fi @@ -765,6 +732,7 @@ fail=0 for file in 4*.test ipp-2.1.test; do echo $ac_n "Performing $file: $ac_c" echo "" >>$strfile + echo $ac_n "`date '+[%d/%b/%Y:%H:%M:%S %z]'` $ac_c" >>$strfile if test $file = ipp-2.1.test; then uri="ipp://localhost:$port/printers/Test1" @@ -773,7 +741,7 @@ for file in 4*.test ipp-2.1.test; do uri="ipp://localhost:$port/printers" options="" fi - $VALGRIND ./ipptool -tI $options $uri $file >> $strfile + $runcups $VALGRIND ./ipptool -tI $options $uri $file >> $strfile status=$? if test $status != 0; then @@ -802,7 +770,7 @@ echo " <pre>" >>$strfile for file in 5*.sh; do echo $ac_n "Performing $file: $ac_c" echo "" >>$strfile - echo "\"$file\":" >>$strfile + echo "`date '+[%d/%b/%Y:%H:%M:%S %z]'` \"$file\":" >>$strfile sh $file $pjobs $pprinters >> $strfile status=$? @@ -829,20 +797,20 @@ fi echo $ac_n "Performing restart test: $ac_c" echo "" >>$strfile -echo "\"5.10-restart\":" >>$strfile +echo "`date '+[%d/%b/%Y:%H:%M:%S %z]'` \"5.10-restart\":" >>$strfile kill -HUP $cupsd while true; do sleep 10 - running=`../systemv/lpstat -r 2>/dev/null` + running=`$runcups ../systemv/lpstat -r 2>/dev/null` if test "x$running" = "xscheduler is running"; then break fi done -description="`../systemv/lpstat -l -p Test1 | grep Description | sed -e '1,$s/^[^:]*: //g'`" +description="`$runcups ../systemv/lpstat -l -p Test1 | grep Description | sed -e '1,$s/^[^:]*: //g'`" if test "x$description" != "xTest Printer 1"; then echo "Failed, printer-info for Test1 is '$description', expected 'Test Printer 1'." >>$strfile echo "FAIL (got '$description', expected 'Test Printer 1')" @@ -918,8 +886,8 @@ fi # Paged printed on Test3 count=`$GREP '^Test3 ' $BASE/log/page_log | awk 'BEGIN{count=0}{count=count+$7}END{print count}'` -expected=2 -if test $count -lt $expected; then +expected=4 +if test $count != $expected; then echo "FAIL: Printer 'Test3' produced $count page(s), expected $expected." echo " <p>FAIL: Printer 'Test3' produced $count page(s), expected $expected.</p>" >>$strfile fail=`expr $fail + 1` @@ -930,7 +898,7 @@ fi # Requests logged count=`wc -l $BASE/log/access_log | awk '{print $1}'` -expected=`expr 37 + 18 + 30 + $pjobs \* 8 + $pprinters \* $pjobs \* 4` +expected=`expr 35 + 18 + 30 + $pjobs \* 8 + $pprinters \* $pjobs \* 4` if test $count != $expected; then echo "FAIL: $count requests logged, expected $expected." echo " <p>FAIL: $count requests logged, expected $expected.</p>" >>$strfile diff --git a/test/waitjobs.sh b/test/waitjobs.sh index dee7b1b..6e20e3c 100755 --- a/test/waitjobs.sh +++ b/test/waitjobs.sh @@ -2,13 +2,10 @@ # # Script to wait for jobs to complete. # -# Copyright 2008-2009 by Apple Inc. +# Copyright © 2008-2009 by Apple Inc. # -# These coded instructions, statements, and computer programs are the -# property of Apple Inc. and are protected by Federal copyright -# law. Distribution and use rights are outlined in the file "LICENSE.txt" -# which should have been included with this file. If this file is -# file is missing or damaged, see the license at "http://www.cups.org/". +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. # # @@ -37,7 +34,7 @@ echo $ac_n "Waiting for jobs to complete...$ac_c" oldjobs=0 while test $timeout -gt 0; do - jobs=`../systemv/lpstat 2>/dev/null | wc -l | tr -d ' '` + jobs=`$runcups ../systemv/lpstat 2>/dev/null | wc -l | tr -d ' '` if test $jobs = 0; then break fi diff --git a/vcnet/config.h b/vcnet/config.h index 8e06946..7f2a9de 100644 --- a/vcnet/config.h +++ b/vcnet/config.h @@ -52,8 +52,8 @@ /* - * Map the POSIX strcasecmp() and strncasecmp() functions to the Win32 stricmp() - * and strnicmp() functions... + * Map the POSIX strcasecmp() and strncasecmp() functions to the Win32 + * _stricmp() and _strnicmp() functions... */ #define strcasecmp _stricmp @@ -94,8 +94,8 @@ typedef unsigned long useconds_t; * Version of software... */ -#define CUPS_SVERSION "CUPS v2.2.8" -#define CUPS_MINIMAL "CUPS/2.2.8" +#define CUPS_SVERSION "CUPS v2.2.9" +#define CUPS_MINIMAL "CUPS/2.2.9" /* diff --git a/vcnet/cups.sln b/vcnet/cups.sln index a53b963..9ffa383 100644 --- a/vcnet/cups.sln +++ b/vcnet/cups.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.40629.0
+# Visual Studio 15
+VisualStudioVersion = 15.0.28010.2036
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcups2", "libcups2.vcxproj", "{CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}"
EndProject
@@ -20,83 +20,59 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ippfind", "ippfind.vcxproj" EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ippserver", "ippserver.vcxproj", "{82A03BC7-0746-4B85-8908-3C7A3FAA58A9}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dnssdstub", "dnssdstub.vcxproj", "{C0899B3A-43E7-4BC3-A785-659E1FD2EA83}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Debug|Win32.ActiveCfg = Debug|Win32
- {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Debug|Win32.Build.0 = Debug|Win32
{CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Debug|x64.ActiveCfg = Debug|x64
{CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Debug|x64.Build.0 = Debug|x64
- {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release|Win32.ActiveCfg = Release|Win32
- {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release|Win32.Build.0 = Release|Win32
- {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release|x64.ActiveCfg = Release|x64
- {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release|x64.Build.0 = Release|x64
- {CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Debug|Win32.ActiveCfg = Debug|Win32
- {CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Debug|Win32.Build.0 = Debug|Win32
+ {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release|x64.ActiveCfg = Debug|x64
+ {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release|x64.Build.0 = Debug|x64
{CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Debug|x64.ActiveCfg = Debug|x64
{CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Debug|x64.Build.0 = Debug|x64
- {CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Release|Win32.ActiveCfg = Release|Win32
- {CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Release|Win32.Build.0 = Release|Win32
- {CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Release|x64.ActiveCfg = Release|x64
- {CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Release|x64.Build.0 = Release|x64
- {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug|Win32.ActiveCfg = Debug|Win32
- {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug|Win32.Build.0 = Debug|Win32
- {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug|x64.ActiveCfg = Debug|Win32
- {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release|Win32.ActiveCfg = Release|Win32
- {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release|Win32.Build.0 = Release|Win32
- {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release|x64.ActiveCfg = Release|Win32
- {90B0058C-8393-411F-BD3B-E2C831D4E883}.Debug|Win32.ActiveCfg = Debug|Win32
- {90B0058C-8393-411F-BD3B-E2C831D4E883}.Debug|Win32.Build.0 = Debug|Win32
- {90B0058C-8393-411F-BD3B-E2C831D4E883}.Debug|x64.ActiveCfg = Debug|Win32
- {90B0058C-8393-411F-BD3B-E2C831D4E883}.Release|Win32.ActiveCfg = Release|Win32
- {90B0058C-8393-411F-BD3B-E2C831D4E883}.Release|Win32.Build.0 = Release|Win32
- {90B0058C-8393-411F-BD3B-E2C831D4E883}.Release|x64.ActiveCfg = Release|Win32
- {6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Debug|Win32.ActiveCfg = Debug|Win32
- {6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Debug|Win32.Build.0 = Debug|Win32
+ {CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Release|x64.ActiveCfg = Debug|x64
+ {CB4AA6F2-3E84-45BE-B505-95CD375E1234}.Release|x64.Build.0 = Debug|x64
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug|x64.ActiveCfg = Debug|x64
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug|x64.Build.0 = Debug|x64
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release|x64.ActiveCfg = Debug|x64
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release|x64.Build.0 = Debug|x64
+ {90B0058C-8393-411F-BD3B-E2C831D4E883}.Debug|x64.ActiveCfg = Debug|x64
+ {90B0058C-8393-411F-BD3B-E2C831D4E883}.Debug|x64.Build.0 = Debug|x64
+ {90B0058C-8393-411F-BD3B-E2C831D4E883}.Release|x64.ActiveCfg = Debug|x64
+ {90B0058C-8393-411F-BD3B-E2C831D4E883}.Release|x64.Build.0 = Debug|x64
{6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Debug|x64.ActiveCfg = Debug|x64
{6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Debug|x64.Build.0 = Debug|x64
- {6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Release|Win32.ActiveCfg = Release|Win32
- {6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Release|Win32.Build.0 = Release|Win32
- {6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Release|x64.ActiveCfg = Release|x64
- {6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Release|x64.Build.0 = Release|x64
- {B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Debug|Win32.ActiveCfg = Debug|Win32
- {B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Debug|Win32.Build.0 = Debug|Win32
+ {6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Release|x64.ActiveCfg = Debug|x64
+ {6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}.Release|x64.Build.0 = Debug|x64
{B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Debug|x64.ActiveCfg = Debug|x64
{B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Debug|x64.Build.0 = Debug|x64
- {B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Release|Win32.ActiveCfg = Release|Win32
- {B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Release|Win32.Build.0 = Release|Win32
- {B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Release|x64.ActiveCfg = Release|x64
- {B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Release|x64.Build.0 = Release|x64
- {18950A1B-D37A-40C7-B2DF-C12986C0526E}.Debug|Win32.ActiveCfg = Debug|Win32
- {18950A1B-D37A-40C7-B2DF-C12986C0526E}.Debug|Win32.Build.0 = Debug|Win32
+ {B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Release|x64.ActiveCfg = Debug|x64
+ {B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}.Release|x64.Build.0 = Debug|x64
{18950A1B-D37A-40C7-B2DF-C12986C0526E}.Debug|x64.ActiveCfg = Debug|x64
{18950A1B-D37A-40C7-B2DF-C12986C0526E}.Debug|x64.Build.0 = Debug|x64
- {18950A1B-D37A-40C7-B2DF-C12986C0526E}.Release|Win32.ActiveCfg = Release|Win32
- {18950A1B-D37A-40C7-B2DF-C12986C0526E}.Release|Win32.Build.0 = Release|Win32
- {18950A1B-D37A-40C7-B2DF-C12986C0526E}.Release|x64.ActiveCfg = Release|x64
- {B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Debug|Win32.ActiveCfg = Debug|Win32
- {B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Debug|Win32.Build.0 = Debug|Win32
+ {18950A1B-D37A-40C7-B2DF-C12986C0526E}.Release|x64.ActiveCfg = Debug|x64
+ {18950A1B-D37A-40C7-B2DF-C12986C0526E}.Release|x64.Build.0 = Debug|x64
{B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Debug|x64.ActiveCfg = Debug|x64
{B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Debug|x64.Build.0 = Debug|x64
- {B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Release|Win32.ActiveCfg = Release|Win32
- {B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Release|Win32.Build.0 = Release|Win32
- {B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Release|x64.ActiveCfg = Release|x64
- {B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Release|x64.Build.0 = Release|x64
- {82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Debug|Win32.ActiveCfg = Debug|Win32
- {82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Debug|Win32.Build.0 = Debug|Win32
+ {B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Release|x64.ActiveCfg = Debug|x64
+ {B484DA0C-62C8-4C32-83B6-CCEB58968B85}.Release|x64.Build.0 = Debug|x64
{82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Debug|x64.ActiveCfg = Debug|x64
{82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Debug|x64.Build.0 = Debug|x64
- {82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Release|Win32.ActiveCfg = Release|Win32
- {82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Release|Win32.Build.0 = Release|Win32
- {82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Release|x64.ActiveCfg = Release|x64
- {82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Release|x64.Build.0 = Release|x64
+ {82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Release|x64.ActiveCfg = Debug|x64
+ {82A03BC7-0746-4B85-8908-3C7A3FAA58A9}.Release|x64.Build.0 = Debug|x64
+ {C0899B3A-43E7-4BC3-A785-659E1FD2EA83}.Debug|x64.ActiveCfg = Debug|x64
+ {C0899B3A-43E7-4BC3-A785-659E1FD2EA83}.Debug|x64.Build.0 = Debug|x64
+ {C0899B3A-43E7-4BC3-A785-659E1FD2EA83}.Release|x64.ActiveCfg = Debug|x64
+ {C0899B3A-43E7-4BC3-A785-659E1FD2EA83}.Release|x64.Build.0 = Debug|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {AC4F0BA1-DDA2-4C4D-A64B-ECA84022B8C2}
+ EndGlobalSection
EndGlobal
diff --git a/vcnet/cupstestppd.vcxproj b/vcnet/cupstestppd.vcxproj index 0d1bab8..4e5f18a 100644 --- a/vcnet/cupstestppd.vcxproj +++ b/vcnet/cupstestppd.vcxproj @@ -1,18 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> <Platform>x64</Platform> </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Release|x64"> <Configuration>Release</Configuration> <Platform>x64</Platform> @@ -22,20 +14,8 @@ <ProjectGuid>{6BE0CDD3-4ED7-409C-A80F-19DF73664B1F}</ProjectGuid> <RootNamespace>cupstestppd</RootNamespace> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - <WholeProgramOptimization>true</WholeProgramOptimization> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v141</PlatformToolset> @@ -50,12 +30,6 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -66,46 +40,16 @@ <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>true</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>false</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <Optimization>Disabled</Optimization> - <AdditionalIncludeDirectories>..;..\vcnet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MinimalRebuild>true</MinimalRebuild> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level1</WarningLevel> - <DebugInformationFormat>EditAndContinue</DebugInformationFormat> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> @@ -113,7 +57,7 @@ <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..;..\vcnet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> @@ -129,32 +73,13 @@ <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <AdditionalIncludeDirectories>..;..\vcnet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level1</WarningLevel> - <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <OptimizeReferences>true</OptimizeReferences> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> </Midl> <ClCompile> <AdditionalIncludeDirectories>..;..\vcnet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <PrecompiledHeader /> <WarningLevel>Level1</WarningLevel> diff --git a/vcnet/cupstestppd.vcxproj.user b/vcnet/cupstestppd.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/cupstestppd.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/dns_sd.c b/vcnet/dns_sd.c new file mode 100644 index 0000000..25131dd --- /dev/null +++ b/vcnet/dns_sd.c @@ -0,0 +1,444 @@ +/* + * Dynamic wrapper for Bonjour SDK for Windows. + * + * Copyright 2018 by Apple Inc. + * + * Licensed under Apache License v2.0. See the file "LICENSE" for more + * information. + */ + +//#include <cups/http-private.h> +#include <cups/thread-private.h> +#include "dns_sd.h" + + +/* + * Pointers for functions... + */ + +static int dnssd_initialized = 0; +static _cups_mutex_t dnssd_mutex = _CUPS_MUTEX_INITIALIZER; +static DNSServiceErrorType (*dnssd_add_record)(DNSServiceRef sdRef, DNSRecordRef *RecordRef, DNSServiceFlags flags, uint16_t rrtype, uint16_t rdlen, const void *rdata, uint32_t ttl); +static DNSServiceErrorType (*dnssd_browse)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, const char *regtype, const char *domain, DNSServiceBrowseReply callBack, void *context); +static DNSServiceErrorType (*dnssd_construct_full_name)(char * const fullName, const char * const service, const char * const regtype, const char * const domain); +static DNSServiceErrorType (*dnssd_create_connection)(DNSServiceRef *sdRef); +static DNSServiceErrorType (*dnssd_process_result)(DNSServiceRef sdRef); +static DNSServiceErrorType (*dnssd_query_record)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, const char *fullname, uint16_t rrtype, uint16_t rrclass, DNSServiceQueryRecordReply callBack, void *context); +static void (*dnssd_deallocate)(DNSServiceRef sdRef); +static int (*dnssd_sock_fd)(DNSServiceRef sdRef); +static DNSServiceErrorType (*dnssd_register)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, const char *name, const char *regtype, const char *domain, const char *host, uint16_t port, uint16_t txtLen, const void *txtRecord, DNSServiceRegisterReply callBack, void *context); +static DNSServiceErrorType (*dnssd_remove_record)(DNSServiceRef sdRef, DNSRecordRef RecordRef, DNSServiceFlags flags); +static DNSServiceErrorType (*dnssd_resolve)(DNSServiceRef *sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, const char *name, const char *regtype, const char *domain, DNSServiceResolveReply callBack, void *context); +static DNSServiceErrorType (*dnssd_update_record)(DNSServiceRef sdRef, DNSRecordRef RecordRef, DNSServiceFlags flags, uint16_t rdlen, const void *rdata, uint32_t ttl); + +static void (*dnssd_txt_create)(TXTRecordRef *txtRecord, uint16_t bufferLen, void *buffer); +static void (*dnssd_txt_deallocate)(TXTRecordRef *txtRecord); +static const void *(*dnssd_txt_get_bytes_ptr)(const TXTRecordRef *txtRecord); +static uint16_t (*dnssd_txt_get_count)(uint16_t txtLen, const void *txtRecord); +static uint16_t (*dnssd_txt_get_length)(const TXTRecordRef *txtRecord); +static DNSServiceErrorType (*dnssd_txt_get_item_at_index)(uint16_t txtLen, const void *txtRecord, uint16_t itemIndex, uint16_t keyBufLen, char *key, uint8_t *valueLen, const void **value); +static const void *(*dnssd_txt_get_value_ptr)(uint16_t txtLen, const void *txtRecord, const char *key, uint8_t *valueLen); +static DNSServiceErrorType (*dnssd_txt_set_value)(TXTRecordRef *txtRecord, const char *key, uint8_t valueSize, const void *value); + + +/* + * Function to initialize pointers... + */ + +static void +dnssd_init(void) +{ + _cupsMutexLock(&dnssd_mutex); + if (!dnssd_initialized) + { + HINSTANCE dll_handle = LoadLibraryA("dnssd.dll"); + + if (dll_handle) + { + dnssd_add_record = (DNSServiceErrorType (*)(DNSServiceRef, DNSRecordRef *, DNSServiceFlags, uint16_t, uint16_t, const void *, uint32_t))GetProcAddress(dll_handle, "DNSServiceAddRecord"); + dnssd_browse = (DNSServiceErrorType(*)(DNSServiceRef *, DNSServiceFlags, uint32_t, const char *, const char *, DNSServiceBrowseReply, void *))GetProcAddress(dll_handle, "DNSServiceBrowse"); + dnssd_construct_full_name = (DNSServiceErrorType(*)(char * const, const char * const, const char * const, const char * const))GetProcAddress(dll_handle, "DNSServiceConstructFullName"); + dnssd_create_connection = (DNSServiceErrorType(*)(DNSServiceRef *))GetProcAddress(dll_handle, "DNSServiceCreateConnection"); + dnssd_deallocate = (DNSServiceErrorType(*)(DNSServiceRef))GetProcAddress(dll_handle, "DNSServiceRefDeallocate"); + dnssd_process_result = (DNSServiceErrorType(*)(DNSServiceRef))GetProcAddress(dll_handle, "DNSServiceProcessResult"); + dnssd_query_record = (DNSServiceErrorType(*)(DNSServiceRef *, DNSServiceFlags, uint32_t, const char *, uint16_t, uint16_t, DNSServiceQueryRecordReply, void *))GetProcAddress(dll_handle, "DNSServiceQueryRecord"); + dnssd_register = (DNSServiceErrorType(*)(DNSServiceRef *, DNSServiceFlags, uint32_t, const char *, const char *, const char *, const char *, uint16_t, uint16_t, const void *, DNSServiceRegisterReply, void *))GetProcAddress(dll_handle, "DNSServiceRegister"); + dnssd_remove_record = (DNSServiceErrorType(*)(DNSServiceRef, DNSRecordRef, DNSServiceFlags))GetProcAddress(dll_handle, "DNSServiceRemoveRecord"); + dnssd_resolve = (DNSServiceErrorType(*)(DNSServiceRef *, DNSServiceFlags, uint32_t, const char *, const char *, const char *, DNSServiceResolveReply, void *))GetProcAddress(dll_handle, "DNSServiceResolve"); + dnssd_sock_fd = (int(*)(DNSServiceRef))GetProcAddress(dll_handle, "DNSServiceRefSockFD"); + dnssd_update_record = (DNSServiceErrorType(*)(DNSServiceRef, DNSRecordRef, DNSServiceFlags, uint16_t, const void *, uint32_t))GetProcAddress(dll_handle, "DNSServiceUpdateRecord"); + + dnssd_txt_create = (void (*)(TXTRecordRef *, uint16_t, void *))GetProcAddress(dll_handle, "TXTRecordCreate"); + dnssd_txt_deallocate = (void (*)(TXTRecordRef *))GetProcAddress(dll_handle, "TXTRecordDeallocate"); + dnssd_txt_get_bytes_ptr = (const void *(*)(const TXTRecordRef *))GetProcAddress(dll_handle, "TXTRecordGetBytesPtr"); + dnssd_txt_get_count = (uint16_t (*)(uint16_t, const void *))GetProcAddress(dll_handle, "TXTRecordGetCount"); + dnssd_txt_get_item_at_index = (DNSServiceErrorType (*)(uint16_t, const void *, uint16_t, uint16_t, char *, uint8_t *, const void **))GetProcAddress(dll_handle, "TXTRecordGetItemAtIndex"); + dnssd_txt_get_length = (uint16_t (*)(const TXTRecordRef *))GetProcAddress(dll_handle, "TXTRecordGetLength"); + dnssd_txt_get_value_ptr = (const void *(*)(uint16_t, const void *, const char *, uint8_t *))GetProcAddress(dll_handle, "TXTRecordGetValuePtr"); + dnssd_txt_set_value = (DNSServiceErrorType (*)(TXTRecordRef *, const char *, uint8_t, const void *))GetProcAddress(dll_handle, "TXTRecordSetValue"); + } + + dnssd_initialized = 1; + } + _cupsMutexUnlock(&dnssd_mutex); +} + + +// DNSServiceAddRecord +DNSServiceErrorType DNSSD_API DNSServiceAddRecord + ( + DNSServiceRef sdRef, + DNSRecordRef *RecordRef, + DNSServiceFlags flags, + uint16_t rrtype, + uint16_t rdlen, + const void *rdata, + uint32_t ttl + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_add_record) + return (*dnssd_add_record)(sdRef, RecordRef, flags, rrtype, rdlen, rdata, ttl); + else + return (-1); +} + + +// DNSServiceBrowse +DNSServiceErrorType DNSSD_API DNSServiceBrowse + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *regtype, + const char *domain, /* may be NULL */ + DNSServiceBrowseReply callBack, + void *context /* may be NULL */ + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_browse) + return (*dnssd_browse)(sdRef, flags, interfaceIndex, regtype, domain, callBack, context); + else + return (-1); +} + + +// DNSServiceConstructFullName +DNSServiceErrorType DNSSD_API DNSServiceConstructFullName + ( + char * const fullName, + const char * const service, /* may be NULL */ + const char * const regtype, + const char * const domain + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_construct_full_name) + return (*dnssd_construct_full_name)(fullName, service, regtype, domain); + else + return (-1); +} + + +// DNSServiceCreateConnection +DNSServiceErrorType DNSSD_API DNSServiceCreateConnection(DNSServiceRef *sdRef) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_create_connection) + return (*dnssd_create_connection)(sdRef); + else + return (-1); +} + + +// DNSServiceProcessResult +DNSServiceErrorType DNSSD_API DNSServiceProcessResult(DNSServiceRef sdRef) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_process_result) + return (*dnssd_process_result)(sdRef); + else + return (-1); +} + + +// DNSServiceQueryRecord +DNSServiceErrorType DNSSD_API DNSServiceQueryRecord + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + DNSServiceQueryRecordReply callBack, + void *context /* may be NULL */ + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_query_record) + return (*dnssd_query_record)(sdRef, flags, interfaceIndex, fullname, rrtype, rrclass, callBack, context); + else + return (-1); +} + + +// DNSServiceRefDeallocate +void DNSSD_API DNSServiceRefDeallocate(DNSServiceRef sdRef) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_deallocate) + (*dnssd_deallocate)(sdRef); +} + + +// DNSServiceRefSockFD +int DNSSD_API DNSServiceRefSockFD(DNSServiceRef sdRef) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_sock_fd) + return (*dnssd_sock_fd)(sdRef); + else + return (-1); +} + + +// DNSServiceRegister +DNSServiceErrorType DNSSD_API DNSServiceRegister + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *name, /* may be NULL */ + const char *regtype, + const char *domain, /* may be NULL */ + const char *host, /* may be NULL */ + uint16_t port, /* In network byte order */ + uint16_t txtLen, + const void *txtRecord, /* may be NULL */ + DNSServiceRegisterReply callBack, /* may be NULL */ + void *context /* may be NULL */ + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_register) + return (*dnssd_register)(sdRef, flags, interfaceIndex, name, regtype, domain, host, port, txtLen, txtRecord, callBack, context); + else + return (-1); +} + + +// DNSServiceRemoveRecord +DNSServiceErrorType DNSSD_API DNSServiceRemoveRecord + ( + DNSServiceRef sdRef, + DNSRecordRef RecordRef, + DNSServiceFlags flags + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_remove_record) + return (*dnssd_remove_record)(sdRef, RecordRef, flags); + else + return (-1); +} + + +// DNSServiceResolve +DNSServiceErrorType DNSSD_API DNSServiceResolve + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *name, + const char *regtype, + const char *domain, + DNSServiceResolveReply callBack, + void *context /* may be NULL */ + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_resolve) + return (*dnssd_resolve)(sdRef, flags, interfaceIndex, name, regtype, domain, callBack, context); + else + return (-1); +} + + +// DNSServiceUpdateRecord +DNSServiceErrorType DNSSD_API DNSServiceUpdateRecord + ( + DNSServiceRef sdRef, + DNSRecordRef RecordRef, /* may be NULL */ + DNSServiceFlags flags, + uint16_t rdlen, + const void *rdata, + uint32_t ttl + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_update_record) + return (*dnssd_update_record)(sdRef, RecordRef, flags, rdlen, rdata, ttl); + else + return (-1); +} + + +// TXTRecordCreate +void DNSSD_API +TXTRecordCreate( + TXTRecordRef *txtRecord, + uint16_t bufferLen, + void *buffer) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_txt_create) + (*dnssd_txt_create)(txtRecord, bufferLen, buffer); +} + + +// TXTRecordDeallocate +void DNSSD_API TXTRecordDeallocate + ( + TXTRecordRef *txtRecord + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_txt_deallocate) + (*dnssd_txt_deallocate)(txtRecord); +} + + +// TXTRecordGetBytesPtr +const void * DNSSD_API TXTRecordGetBytesPtr + ( + const TXTRecordRef *txtRecord + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_txt_get_bytes_ptr) + return (*dnssd_txt_get_bytes_ptr)(txtRecord); + else + return (NULL); +} + + +// TXTRecordGetLength +uint16_t DNSSD_API TXTRecordGetLength + ( + const TXTRecordRef *txtRecord + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_txt_get_length) + return (*dnssd_txt_get_length)(txtRecord); + else + return (0); +} + + +// TXTRecordSetValue +DNSServiceErrorType DNSSD_API TXTRecordSetValue + ( + TXTRecordRef *txtRecord, + const char *key, + uint8_t valueSize, /* may be zero */ + const void *value /* may be NULL */ + ) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_txt_set_value) + return (*dnssd_txt_set_value)(txtRecord, key, valueSize, value); + else + return (-1); +} + + +// TXTRecordGetCount +uint16_t DNSSD_API +TXTRecordGetCount( + uint16_t txtLen, + const void *txtRecord) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_txt_get_count) + return (*dnssd_txt_get_count)(txtLen, txtRecord); + else + return (0); +} + + +// TXTRecordGetItemAtIndex +DNSServiceErrorType DNSSD_API +TXTRecordGetItemAtIndex( + uint16_t txtLen, + const void *txtRecord, + uint16_t itemIndex, + uint16_t keyBufLen, + char *key, + uint8_t *valueLen, + const void **value) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_txt_get_item_at_index) + return (*dnssd_txt_get_item_at_index)(txtLen, txtRecord, itemIndex, keyBufLen, key, valueLen, value); + else + return (-1); +} + + +// TXTRecordGetValuePtr +const void * DNSSD_API +TXTRecordGetValuePtr( + uint16_t txtLen, + const void *txtRecord, + const char *key, + uint8_t *valueLen) +{ + if (!dnssd_initialized) + dnssd_init(); + + if (dnssd_txt_get_value_ptr) + return (*dnssd_txt_get_value_ptr)(txtLen, txtRecord, key, valueLen); + else + return (NULL); +} diff --git a/vcnet/dns_sd.h b/vcnet/dns_sd.h new file mode 100644 index 0000000..54f4e11 --- /dev/null +++ b/vcnet/dns_sd.h @@ -0,0 +1,2434 @@ +/* -*- Mode: C; tab-width: 4 -*- + * + * Copyright (c) 2003-2004, Apple Computer, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +/*! @header DNS Service Discovery + * + * @discussion This section describes the functions, callbacks, and data structures + * that make up the DNS Service Discovery API. + * + * The DNS Service Discovery API is part of Bonjour, Apple's implementation + * of zero-configuration networking (ZEROCONF). + * + * Bonjour allows you to register a network service, such as a + * printer or file server, so that it can be found by name or browsed + * for by service type and domain. Using Bonjour, applications can + * discover what services are available on the network, along with + * all the information -- such as name, IP address, and port -- + * necessary to access a particular service. + * + * In effect, Bonjour combines the functions of a local DNS server and + * AppleTalk. Bonjour allows applications to provide user-friendly printer + * and server browsing, among other things, over standard IP networks. + * This behavior is a result of combining protocols such as multicast and + * DNS to add new functionality to the network (such as multicast DNS). + * + * Bonjour gives applications easy access to services over local IP + * networks without requiring the service or the application to support + * an AppleTalk or a Netbeui stack, and without requiring a DNS server + * for the local network. + */ + + +/* _DNS_SD_H contains the mDNSResponder version number for this header file, formatted as follows: + * Major part of the build number * 10000 + + * minor part of the build number * 100 + * For example, Mac OS X 10.4.9 has mDNSResponder-108.4, which would be represented as + * version 1080400. This allows C code to do simple greater-than and less-than comparisons: + * e.g. an application that requires the DNSServiceGetProperty() call (new in mDNSResponder-126) can check: + * + * #if _DNS_SD_H+0 >= 1260000 + * ... some C code that calls DNSServiceGetProperty() ... + * #endif + * + * The version defined in this header file symbol allows for compile-time + * checking, so that C code building with earlier versions of the header file + * can avoid compile errors trying to use functions that aren't even defined + * in those earlier versions. Similar checks may also be performed at run-time: + * => weak linking -- to avoid link failures if run with an earlier + * version of the library that's missing some desired symbol, or + * => DNSServiceGetProperty(DaemonVersion) -- to verify whether the running daemon + * ("system service" on Windows) meets some required minimum functionality level. + */ + +#ifndef _DNS_SD_H +#define _DNS_SD_H 3331000 + +#ifdef __cplusplus + extern "C" { +#endif + +/* Set to 1 if libdispatch is supported + * Note: May also be set by project and/or Makefile + */ +#ifndef _DNS_SD_LIBDISPATCH +#define _DNS_SD_LIBDISPATCH 0 +#endif /* ndef _DNS_SD_LIBDISPATCH */ + +/* standard calling convention under Win32 is __stdcall */ +/* Note: When compiling Intel EFI (Extensible Firmware Interface) under MS Visual Studio, the */ +/* _WIN32 symbol is defined by the compiler even though it's NOT compiling code for Windows32 */ +#if defined(_WIN32) && !defined(EFI32) && !defined(EFI64) +#define DNSSD_API __stdcall +#else +#define DNSSD_API +#endif + +/* stdint.h does not exist on FreeBSD 4.x; its types are defined in sys/types.h instead */ +#if defined(__FreeBSD__) && (__FreeBSD__ < 5) +#include <sys/types.h> + +/* Likewise, on Sun, standard integer types are in sys/types.h */ +#elif defined(__sun__) +#include <sys/types.h> + +/* EFI does not have stdint.h, or anything else equivalent */ +#elif defined(EFI32) || defined(EFI64) || defined(EFIX64) +#include "Tiano.h" +#if !defined(_STDINT_H_) +typedef UINT8 uint8_t; +typedef INT8 int8_t; +typedef UINT16 uint16_t; +typedef INT16 int16_t; +typedef UINT32 uint32_t; +typedef INT32 int32_t; +#endif +/* Windows has its own differences */ +#elif defined(_WIN32) +#include <windows.h> +#define _UNUSED +#ifndef _MSL_STDINT_H +typedef UINT8 uint8_t; +typedef INT8 int8_t; +typedef UINT16 uint16_t; +typedef INT16 int16_t; +typedef UINT32 uint32_t; +typedef INT32 int32_t; +#endif + +/* All other Posix platforms use stdint.h */ +#else +#include <stdint.h> +#endif + +#if _DNS_SD_LIBDISPATCH +#include <dispatch/dispatch.h> +#endif + +/* DNSServiceRef, DNSRecordRef + * + * Opaque internal data types. + * Note: client is responsible for serializing access to these structures if + * they are shared between concurrent threads. + */ + +typedef struct _DNSServiceRef_t *DNSServiceRef; +typedef struct _DNSRecordRef_t *DNSRecordRef; + +struct sockaddr; + +/*! @enum General flags + * Most DNS-SD API functions and callbacks include a DNSServiceFlags parameter. + * As a general rule, any given bit in the 32-bit flags field has a specific fixed meaning, + * regardless of the function or callback being used. For any given function or callback, + * typically only a subset of the possible flags are meaningful, and all others should be zero. + * The discussion section for each API call describes which flags are valid for that call + * and callback. In some cases, for a particular call, it may be that no flags are currently + * defined, in which case the DNSServiceFlags parameter exists purely to allow future expansion. + * In all cases, developers should expect that in future releases, it is possible that new flag + * values will be defined, and write code with this in mind. For example, code that tests + * if (flags == kDNSServiceFlagsAdd) ... + * will fail if, in a future release, another bit in the 32-bit flags field is also set. + * The reliable way to test whether a particular bit is set is not with an equality test, + * but with a bitwise mask: + * if (flags & kDNSServiceFlagsAdd) ... + */ +enum + { + kDNSServiceFlagsMoreComing = 0x1, + /* MoreComing indicates to a callback that at least one more result is + * queued and will be delivered following immediately after this one. + * When the MoreComing flag is set, applications should not immediately + * update their UI, because this can result in a great deal of ugly flickering + * on the screen, and can waste a great deal of CPU time repeatedly updating + * the screen with content that is then immediately erased, over and over. + * Applications should wait until until MoreComing is not set, and then + * update their UI when no more changes are imminent. + * When MoreComing is not set, that doesn't mean there will be no more + * answers EVER, just that there are no more answers immediately + * available right now at this instant. If more answers become available + * in the future they will be delivered as usual. + */ + + kDNSServiceFlagsAdd = 0x2, + kDNSServiceFlagsDefault = 0x4, + /* Flags for domain enumeration and browse/query reply callbacks. + * "Default" applies only to enumeration and is only valid in + * conjunction with "Add". An enumeration callback with the "Add" + * flag NOT set indicates a "Remove", i.e. the domain is no longer + * valid. + */ + + kDNSServiceFlagsNoAutoRename = 0x8, + /* Flag for specifying renaming behavior on name conflict when registering + * non-shared records. By default, name conflicts are automatically handled + * by renaming the service. NoAutoRename overrides this behavior - with this + * flag set, name conflicts will result in a callback. The NoAutorename flag + * is only valid if a name is explicitly specified when registering a service + * (i.e. the default name is not used.) + */ + + kDNSServiceFlagsShared = 0x10, + kDNSServiceFlagsUnique = 0x20, + /* Flag for registering individual records on a connected + * DNSServiceRef. Shared indicates that there may be multiple records + * with this name on the network (e.g. PTR records). Unique indicates that the + * record's name is to be unique on the network (e.g. SRV records). + */ + + kDNSServiceFlagsBrowseDomains = 0x40, + kDNSServiceFlagsRegistrationDomains = 0x80, + /* Flags for specifying domain enumeration type in DNSServiceEnumerateDomains. + * BrowseDomains enumerates domains recommended for browsing, RegistrationDomains + * enumerates domains recommended for registration. + */ + + kDNSServiceFlagsLongLivedQuery = 0x100, + /* Flag for creating a long-lived unicast query for the DNSServiceQueryRecord call. */ + + kDNSServiceFlagsAllowRemoteQuery = 0x200, + /* Flag for creating a record for which we will answer remote queries + * (queries from hosts more than one hop away; hosts not directly connected to the local link). + */ + + kDNSServiceFlagsForceMulticast = 0x400, + /* Flag for signifying that a query or registration should be performed exclusively via multicast + * DNS, even for a name in a domain (e.g. foo.apple.com.) that would normally imply unicast DNS. + */ + + kDNSServiceFlagsForce = 0x800, + /* Flag for signifying a "stronger" variant of an operation. + * Currently defined only for DNSServiceReconfirmRecord(), where it forces a record to + * be removed from the cache immediately, instead of querying for a few seconds before + * concluding that the record is no longer valid and then removing it. This flag should + * be used with caution because if a service browsing PTR record is indeed still valid + * on the network, forcing its removal will result in a user-interface flap -- the + * discovered service instance will disappear, and then re-appear moments later. + */ + + kDNSServiceFlagsReturnIntermediates = 0x1000, + /* Flag for returning intermediate results. + * For example, if a query results in an authoritative NXDomain (name does not exist) + * then that result is returned to the client. However the query is not implicitly + * cancelled -- it remains active and if the answer subsequently changes + * (e.g. because a VPN tunnel is subsequently established) then that positive + * result will still be returned to the client. + * Similarly, if a query results in a CNAME record, then in addition to following + * the CNAME referral, the intermediate CNAME result is also returned to the client. + * When this flag is not set, NXDomain errors are not returned, and CNAME records + * are followed silently without informing the client of the intermediate steps. + * (In earlier builds this flag was briefly calledkDNSServiceFlagsReturnCNAME) + */ + + kDNSServiceFlagsNonBrowsable = 0x2000, + /* A service registered with the NonBrowsable flag set can be resolved using + * DNSServiceResolve(), but will not be discoverable using DNSServiceBrowse(). + * This is for cases where the name is actually a GUID; it is found by other means; + * there is no end-user benefit to browsing to find a long list of opaque GUIDs. + * Using the NonBrowsable flag creates SRV+TXT without the cost of also advertising + * an associated PTR record. + */ + + kDNSServiceFlagsShareConnection = 0x4000, + /* For efficiency, clients that perform many concurrent operations may want to use a + * single Unix Domain Socket connection with the background daemon, instead of having a + * separate connection for each independent operation. To use this mode, clients first + * call DNSServiceCreateConnection(&MainRef) to initialize the main DNSServiceRef. + * For each subsequent operation that is to share that same connection, the client copies + * the MainRef, and then passes the address of that copy, setting the ShareConnection flag + * to tell the library that this DNSServiceRef is not a typical uninitialized DNSServiceRef; + * it's a copy of an existing DNSServiceRef whose connection information should be reused. + * + * For example: + * + * DNSServiceErrorType error; + * DNSServiceRef MainRef; + * error = DNSServiceCreateConnection(&MainRef); + * if (error) ... + * DNSServiceRef BrowseRef = MainRef; // Important: COPY the primary DNSServiceRef first... + * error = DNSServiceBrowse(&BrowseRef, kDNSServiceFlagsShareConnection, ...); // then use the copy + * if (error) ... + * ... + * DNSServiceRefDeallocate(BrowseRef); // Terminate the browse operation + * DNSServiceRefDeallocate(MainRef); // Terminate the shared connection + * + * Notes: + * + * 1. Collective kDNSServiceFlagsMoreComing flag + * When callbacks are invoked using a shared DNSServiceRef, the + * kDNSServiceFlagsMoreComing flag applies collectively to *all* active + * operations sharing the same parent DNSServiceRef. If the MoreComing flag is + * set it means that there are more results queued on this parent DNSServiceRef, + * but not necessarily more results for this particular callback function. + * The implication of this for client programmers is that when a callback + * is invoked with the MoreComing flag set, the code should update its + * internal data structures with the new result, and set a variable indicating + * that its UI needs to be updated. Then, later when a callback is eventually + * invoked with the MoreComing flag not set, the code should update *all* + * stale UI elements related to that shared parent DNSServiceRef that need + * updating, not just the UI elements related to the particular callback + * that happened to be the last one to be invoked. + * + * 2. Canceling operations and kDNSServiceFlagsMoreComing + * Whenever you cancel any operation for which you had deferred UI updates + * waiting because of a kDNSServiceFlagsMoreComing flag, you should perform + * those deferred UI updates. This is because, after cancelling the operation, + * you can no longer wait for a callback *without* MoreComing set, to tell + * you do perform your deferred UI updates (the operation has been canceled, + * so there will be no more callbacks). An implication of the collective + * kDNSServiceFlagsMoreComing flag for shared connections is that this + * guideline applies more broadly -- any time you cancel an operation on + * a shared connection, you should perform all deferred UI updates for all + * operations sharing that connection. This is because the MoreComing flag + * might have been referring to events coming for the operation you canceled, + * which will now not be coming because the operation has been canceled. + * + * 3. Only share DNSServiceRef's created with DNSServiceCreateConnection + * Calling DNSServiceCreateConnection(&ref) creates a special shareable DNSServiceRef. + * DNSServiceRef's created by other calls like DNSServiceBrowse() or DNSServiceResolve() + * cannot be shared by copying them and using kDNSServiceFlagsShareConnection. + * + * 4. Don't Double-Deallocate + * Calling DNSServiceRefDeallocate(ref) for a particular operation's DNSServiceRef terminates + * just that operation. Calling DNSServiceRefDeallocate(ref) for the main shared DNSServiceRef + * (the parent DNSServiceRef, originally created by DNSServiceCreateConnection(&ref)) + * automatically terminates the shared connection and all operations that were still using it. + * After doing this, DO NOT then attempt to deallocate any remaining subordinate DNSServiceRef's. + * The memory used by those subordinate DNSServiceRef's has already been freed, so any attempt + * to do a DNSServiceRefDeallocate (or any other operation) on them will result in accesses + * to freed memory, leading to crashes or other equally undesirable results. + * + * 5. Thread Safety + * The dns_sd.h API does not presuppose any particular threading model, and consequently + * does no locking of its own (which would require linking some specific threading library). + * If client code calls API routines on the same DNSServiceRef concurrently + * from multiple threads, it is the client's responsibility to use a mutext + * lock or take similar appropriate precautions to serialize those calls. + */ + + kDNSServiceFlagsSuppressUnusable = 0x8000, + /* + * This flag is meaningful only in DNSServiceQueryRecord which suppresses unusable queries on the + * wire. If "hostname" is a wide-area unicast DNS hostname (i.e. not a ".local." name) + * but this host has no routable IPv6 address, then the call will not try to look up IPv6 addresses + * for "hostname", since any addresses it found would be unlikely to be of any use anyway. Similarly, + * if this host has no routable IPv4 address, the call will not try to look up IPv4 addresses for + * "hostname". + */ + + kDNSServiceFlagsTimeout = 0x10000, + /* + * When kDNServiceFlagsTimeout is passed to DNSServiceQueryRecord or DNSServiceGetAddrInfo, the query is + * stopped after a certain number of seconds have elapsed. The time at which the query will be stopped + * is determined by the system and cannot be configured by the user. The query will be stopped irrespective + * of whether a response was given earlier or not. When the query is stopped, the callback will be called + * with an error code of kDNSServiceErr_Timeout and a NULL sockaddr will be returned for DNSServiceGetAddrInfo + * and zero length rdata will be returned for DNSServiceQueryRecord. + */ + + kDNSServiceFlagsIncludeP2P = 0x20000, + /* + * Include P2P interfaces when kDNSServiceInterfaceIndexAny is specified. + * By default, specifying kDNSServiceInterfaceIndexAny does not include P2P interfaces. + */ + kDNSServiceFlagsWakeOnResolve = 0x40000 + /* + * This flag is meaningful only in DNSServiceResolve. When set, it tries to send a magic packet + * to wake up the client. + */ + }; + +/* Possible protocols for DNSServiceNATPortMappingCreate(). */ +enum + { + kDNSServiceProtocol_IPv4 = 0x01, + kDNSServiceProtocol_IPv6 = 0x02, + /* 0x04 and 0x08 reserved for future internetwork protocols */ + + kDNSServiceProtocol_UDP = 0x10, + kDNSServiceProtocol_TCP = 0x20 + /* 0x40 and 0x80 reserved for future transport protocols, e.g. SCTP [RFC 2960] + * or DCCP [RFC 4340]. If future NAT gateways are created that support port + * mappings for these protocols, new constants will be defined here. + */ + }; + +/* + * The values for DNS Classes and Types are listed in RFC 1035, and are available + * on every OS in its DNS header file. Unfortunately every OS does not have the + * same header file containing DNS Class and Type constants, and the names of + * the constants are not consistent. For example, BIND 8 uses "T_A", + * BIND 9 uses "ns_t_a", Windows uses "DNS_TYPE_A", etc. + * For this reason, these constants are also listed here, so that code using + * the DNS-SD programming APIs can use these constants, so that the same code + * can compile on all our supported platforms. + */ + +enum + { + kDNSServiceClass_IN = 1 /* Internet */ + }; + +enum + { + kDNSServiceType_A = 1, /* Host address. */ + kDNSServiceType_NS = 2, /* Authoritative server. */ + kDNSServiceType_MD = 3, /* Mail destination. */ + kDNSServiceType_MF = 4, /* Mail forwarder. */ + kDNSServiceType_CNAME = 5, /* Canonical name. */ + kDNSServiceType_SOA = 6, /* Start of authority zone. */ + kDNSServiceType_MB = 7, /* Mailbox domain name. */ + kDNSServiceType_MG = 8, /* Mail group member. */ + kDNSServiceType_MR = 9, /* Mail rename name. */ + kDNSServiceType_NULL = 10, /* Null resource record. */ + kDNSServiceType_WKS = 11, /* Well known service. */ + kDNSServiceType_PTR = 12, /* Domain name pointer. */ + kDNSServiceType_HINFO = 13, /* Host information. */ + kDNSServiceType_MINFO = 14, /* Mailbox information. */ + kDNSServiceType_MX = 15, /* Mail routing information. */ + kDNSServiceType_TXT = 16, /* One or more text strings (NOT "zero or more..."). */ + kDNSServiceType_RP = 17, /* Responsible person. */ + kDNSServiceType_AFSDB = 18, /* AFS cell database. */ + kDNSServiceType_X25 = 19, /* X_25 calling address. */ + kDNSServiceType_ISDN = 20, /* ISDN calling address. */ + kDNSServiceType_RT = 21, /* Router. */ + kDNSServiceType_NSAP = 22, /* NSAP address. */ + kDNSServiceType_NSAP_PTR = 23, /* Reverse NSAP lookup (deprecated). */ + kDNSServiceType_SIG = 24, /* Security signature. */ + kDNSServiceType_KEY = 25, /* Security key. */ + kDNSServiceType_PX = 26, /* X.400 mail mapping. */ + kDNSServiceType_GPOS = 27, /* Geographical position (withdrawn). */ + kDNSServiceType_AAAA = 28, /* IPv6 Address. */ + kDNSServiceType_LOC = 29, /* Location Information. */ + kDNSServiceType_NXT = 30, /* Next domain (security). */ + kDNSServiceType_EID = 31, /* Endpoint identifier. */ + kDNSServiceType_NIMLOC = 32, /* Nimrod Locator. */ + kDNSServiceType_SRV = 33, /* Server Selection. */ + kDNSServiceType_ATMA = 34, /* ATM Address */ + kDNSServiceType_NAPTR = 35, /* Naming Authority PoinTeR */ + kDNSServiceType_KX = 36, /* Key Exchange */ + kDNSServiceType_CERT = 37, /* Certification record */ + kDNSServiceType_A6 = 38, /* IPv6 Address (deprecated) */ + kDNSServiceType_DNAME = 39, /* Non-terminal DNAME (for IPv6) */ + kDNSServiceType_SINK = 40, /* Kitchen sink (experimental) */ + kDNSServiceType_OPT = 41, /* EDNS0 option (meta-RR) */ + kDNSServiceType_APL = 42, /* Address Prefix List */ + kDNSServiceType_DS = 43, /* Delegation Signer */ + kDNSServiceType_SSHFP = 44, /* SSH Key Fingerprint */ + kDNSServiceType_IPSECKEY = 45, /* IPSECKEY */ + kDNSServiceType_RRSIG = 46, /* RRSIG */ + kDNSServiceType_NSEC = 47, /* Denial of Existence */ + kDNSServiceType_DNSKEY = 48, /* DNSKEY */ + kDNSServiceType_DHCID = 49, /* DHCP Client Identifier */ + kDNSServiceType_NSEC3 = 50, /* Hashed Authenticated Denial of Existence */ + kDNSServiceType_NSEC3PARAM = 51, /* Hashed Authenticated Denial of Existence */ + + kDNSServiceType_HIP = 55, /* Host Identity Protocol */ + + kDNSServiceType_SPF = 99, /* Sender Policy Framework for E-Mail */ + kDNSServiceType_UINFO = 100, /* IANA-Reserved */ + kDNSServiceType_UID = 101, /* IANA-Reserved */ + kDNSServiceType_GID = 102, /* IANA-Reserved */ + kDNSServiceType_UNSPEC = 103, /* IANA-Reserved */ + + kDNSServiceType_TKEY = 249, /* Transaction key */ + kDNSServiceType_TSIG = 250, /* Transaction signature. */ + kDNSServiceType_IXFR = 251, /* Incremental zone transfer. */ + kDNSServiceType_AXFR = 252, /* Transfer zone of authority. */ + kDNSServiceType_MAILB = 253, /* Transfer mailbox records. */ + kDNSServiceType_MAILA = 254, /* Transfer mail agent records. */ + kDNSServiceType_ANY = 255 /* Wildcard match. */ + }; + +/* possible error code values */ +enum + { + kDNSServiceErr_NoError = 0, + kDNSServiceErr_Unknown = -65537, /* 0xFFFE FFFF */ + kDNSServiceErr_NoSuchName = -65538, + kDNSServiceErr_NoMemory = -65539, + kDNSServiceErr_BadParam = -65540, + kDNSServiceErr_BadReference = -65541, + kDNSServiceErr_BadState = -65542, + kDNSServiceErr_BadFlags = -65543, + kDNSServiceErr_Unsupported = -65544, + kDNSServiceErr_NotInitialized = -65545, + kDNSServiceErr_AlreadyRegistered = -65547, + kDNSServiceErr_NameConflict = -65548, + kDNSServiceErr_Invalid = -65549, + kDNSServiceErr_Firewall = -65550, + kDNSServiceErr_Incompatible = -65551, /* client library incompatible with daemon */ + kDNSServiceErr_BadInterfaceIndex = -65552, + kDNSServiceErr_Refused = -65553, + kDNSServiceErr_NoSuchRecord = -65554, + kDNSServiceErr_NoAuth = -65555, + kDNSServiceErr_NoSuchKey = -65556, + kDNSServiceErr_NATTraversal = -65557, + kDNSServiceErr_DoubleNAT = -65558, + kDNSServiceErr_BadTime = -65559, /* Codes up to here existed in Tiger */ + kDNSServiceErr_BadSig = -65560, + kDNSServiceErr_BadKey = -65561, + kDNSServiceErr_Transient = -65562, + kDNSServiceErr_ServiceNotRunning = -65563, /* Background daemon not running */ + kDNSServiceErr_NATPortMappingUnsupported = -65564, /* NAT doesn't support NAT-PMP or UPnP */ + kDNSServiceErr_NATPortMappingDisabled = -65565, /* NAT supports NAT-PMP or UPnP but it's disabled by the administrator */ + kDNSServiceErr_NoRouter = -65566, /* No router currently configured (probably no network connectivity) */ + kDNSServiceErr_PollingMode = -65567, + kDNSServiceErr_Timeout = -65568 + + /* mDNS Error codes are in the range + * FFFE FF00 (-65792) to FFFE FFFF (-65537) */ + }; + +/* Maximum length, in bytes, of a service name represented as a */ +/* literal C-String, including the terminating NULL at the end. */ + +#define kDNSServiceMaxServiceName 64 + +/* Maximum length, in bytes, of a domain name represented as an *escaped* C-String */ +/* including the final trailing dot, and the C-String terminating NULL at the end. */ + +#define kDNSServiceMaxDomainName 1009 + +/* + * Notes on DNS Name Escaping + * -- or -- + * "Why is kDNSServiceMaxDomainName 1009, when the maximum legal domain name is 256 bytes?" + * + * All strings used in the DNS-SD APIs are UTF-8 strings. Apart from the exceptions noted below, + * the APIs expect the strings to be properly escaped, using the conventional DNS escaping rules: + * + * '\\' represents a single literal '\' in the name + * '\.' represents a single literal '.' in the name + * '\ddd', where ddd is a three-digit decimal value from 000 to 255, + * represents a single literal byte with that value. + * A bare unescaped '.' is a label separator, marking a boundary between domain and subdomain. + * + * The exceptions, that do not use escaping, are the routines where the full + * DNS name of a resource is broken, for convenience, into servicename/regtype/domain. + * In these routines, the "servicename" is NOT escaped. It does not need to be, since + * it is, by definition, just a single literal string. Any characters in that string + * represent exactly what they are. The "regtype" portion is, technically speaking, + * escaped, but since legal regtypes are only allowed to contain letters, digits, + * and hyphens, there is nothing to escape, so the issue is moot. The "domain" + * portion is also escaped, though most domains in use on the public Internet + * today, like regtypes, don't contain any characters that need to be escaped. + * As DNS-SD becomes more popular, rich-text domains for service discovery will + * become common, so software should be written to cope with domains with escaping. + * + * The servicename may be up to 63 bytes of UTF-8 text (not counting the C-String + * terminating NULL at the end). The regtype is of the form _service._tcp or + * _service._udp, where the "service" part is 1-15 characters, which may be + * letters, digits, or hyphens. The domain part of the three-part name may be + * any legal domain, providing that the resulting servicename+regtype+domain + * name does not exceed 256 bytes. + * + * For most software, these issues are transparent. When browsing, the discovered + * servicenames should simply be displayed as-is. When resolving, the discovered + * servicename/regtype/domain are simply passed unchanged to DNSServiceResolve(). + * When a DNSServiceResolve() succeeds, the returned fullname is already in + * the correct format to pass to standard system DNS APIs such as res_query(). + * For converting from servicename/regtype/domain to a single properly-escaped + * full DNS name, the helper function DNSServiceConstructFullName() is provided. + * + * The following (highly contrived) example illustrates the escaping process. + * Suppose you have an service called "Dr. Smith\Dr. Johnson", of type "_ftp._tcp" + * in subdomain "4th. Floor" of subdomain "Building 2" of domain "apple.com." + * The full (escaped) DNS name of this service's SRV record would be: + * Dr\.\032Smith\\Dr\.\032Johnson._ftp._tcp.4th\.\032Floor.Building\0322.apple.com. + */ + + +/* + * Constants for specifying an interface index + * + * Specific interface indexes are identified via a 32-bit unsigned integer returned + * by the if_nametoindex() family of calls. + * + * If the client passes 0 for interface index, that means "do the right thing", + * which (at present) means, "if the name is in an mDNS local multicast domain + * (e.g. 'local.', '254.169.in-addr.arpa.', '{8,9,A,B}.E.F.ip6.arpa.') then multicast + * on all applicable interfaces, otherwise send via unicast to the appropriate + * DNS server." Normally, most clients will use 0 for interface index to + * automatically get the default sensible behaviour. + * + * If the client passes a positive interface index, then for multicast names that + * indicates to do the operation only on that one interface. For unicast names the + * interface index is ignored unless kDNSServiceFlagsForceMulticast is also set. + * + * If the client passes kDNSServiceInterfaceIndexLocalOnly when registering + * a service, then that service will be found *only* by other local clients + * on the same machine that are browsing using kDNSServiceInterfaceIndexLocalOnly + * or kDNSServiceInterfaceIndexAny. + * If a client has a 'private' service, accessible only to other processes + * running on the same machine, this allows the client to advertise that service + * in a way such that it does not inadvertently appear in service lists on + * all the other machines on the network. + * + * If the client passes kDNSServiceInterfaceIndexLocalOnly when browsing + * then it will find *all* records registered on that same local machine. + * Clients explicitly wishing to discover *only* LocalOnly services can + * accomplish this by inspecting the interfaceIndex of each service reported + * to their DNSServiceBrowseReply() callback function, and discarding those + * where the interface index is not kDNSServiceInterfaceIndexLocalOnly. + * + * kDNSServiceInterfaceIndexP2P is meaningful only in Browse, QueryRecord, + * and Resolve operations. It should not be used in other DNSService APIs. + * + * - If kDNSServiceInterfaceIndexP2P is passed to DNSServiceBrowse or + * DNSServiceQueryRecord, it restricts the operation to P2P. + * + * - If kDNSServiceInterfaceIndexP2P is passed to DNSServiceResolve, it is + * mapped internally to kDNSServiceInterfaceIndexAny, because resolving + * a P2P service may create and/or enable an interface whose index is not + * known a priori. The resolve callback will indicate the index of the + * interface via which the service can be accessed. + * + * If applications pass kDNSServiceInterfaceIndexAny to DNSServiceBrowse + * or DNSServiceQueryRecord, they must set the kDNSServiceFlagsIncludeP2P flag + * to include P2P. In this case, if a service instance or the record being queried + * is found over P2P, the resulting ADD event will indicate kDNSServiceInterfaceIndexP2P + * as the interface index. + */ + +#define kDNSServiceInterfaceIndexAny 0 +#define kDNSServiceInterfaceIndexLocalOnly ((uint32_t)-1) +#define kDNSServiceInterfaceIndexUnicast ((uint32_t)-2) +#define kDNSServiceInterfaceIndexP2P ((uint32_t)-3) + +typedef uint32_t DNSServiceFlags; +typedef uint32_t DNSServiceProtocol; +typedef int32_t DNSServiceErrorType; + + +/********************************************************************************************* + * + * Version checking + * + *********************************************************************************************/ + +/* DNSServiceGetProperty() Parameters: + * + * property: The requested property. + * Currently the only property defined is kDNSServiceProperty_DaemonVersion. + * + * result: Place to store result. + * For retrieving DaemonVersion, this should be the address of a uint32_t. + * + * size: Pointer to uint32_t containing size of the result location. + * For retrieving DaemonVersion, this should be sizeof(uint32_t). + * On return the uint32_t is updated to the size of the data returned. + * For DaemonVersion, the returned size is always sizeof(uint32_t), but + * future properties could be defined which return variable-sized results. + * + * return value: Returns kDNSServiceErr_NoError on success, or kDNSServiceErr_ServiceNotRunning + * if the daemon (or "system service" on Windows) is not running. + */ + +DNSServiceErrorType DNSSD_API DNSServiceGetProperty + ( + const char *property, /* Requested property (i.e. kDNSServiceProperty_DaemonVersion) */ + void *result, /* Pointer to place to store result */ + uint32_t *size /* size of result location */ + ); + +/* + * When requesting kDNSServiceProperty_DaemonVersion, the result pointer must point + * to a 32-bit unsigned integer, and the size parameter must be set to sizeof(uint32_t). + * + * On return, the 32-bit unsigned integer contains the version number, formatted as follows: + * Major part of the build number * 10000 + + * minor part of the build number * 100 + * + * For example, Mac OS X 10.4.9 has mDNSResponder-108.4, which would be represented as + * version 1080400. This allows applications to do simple greater-than and less-than comparisons: + * e.g. an application that requires at least mDNSResponder-108.4 can check: + * + * if (version >= 1080400) ... + * + * Example usage: + * + * uint32_t version; + * uint32_t size = sizeof(version); + * DNSServiceErrorType err = DNSServiceGetProperty(kDNSServiceProperty_DaemonVersion, &version, &size); + * if (!err) printf("Bonjour version is %d.%d\n", version / 10000, version / 100 % 100); + */ + +#define kDNSServiceProperty_DaemonVersion "DaemonVersion" + + +/********************************************************************************************* + * + * Unix Domain Socket access, DNSServiceRef deallocation, and data processing functions + * + *********************************************************************************************/ + +/* DNSServiceRefSockFD() + * + * Access underlying Unix domain socket for an initialized DNSServiceRef. + * The DNS Service Discovery implementation uses this socket to communicate between the client and + * the mDNSResponder daemon. The application MUST NOT directly read from or write to this socket. + * Access to the socket is provided so that it can be used as a kqueue event source, a CFRunLoop + * event source, in a select() loop, etc. When the underlying event management subsystem (kqueue/ + * select/CFRunLoop etc.) indicates to the client that data is available for reading on the + * socket, the client should call DNSServiceProcessResult(), which will extract the daemon's + * reply from the socket, and pass it to the appropriate application callback. By using a run + * loop or select(), results from the daemon can be processed asynchronously. Alternatively, + * a client can choose to fork a thread and have it loop calling "DNSServiceProcessResult(ref);" + * If DNSServiceProcessResult() is called when no data is available for reading on the socket, it + * will block until data does become available, and then process the data and return to the caller. + * When data arrives on the socket, the client is responsible for calling DNSServiceProcessResult(ref) + * in a timely fashion -- if the client allows a large backlog of data to build up the daemon + * may terminate the connection. + * + * sdRef: A DNSServiceRef initialized by any of the DNSService calls. + * + * return value: The DNSServiceRef's underlying socket descriptor, or -1 on + * error. + */ + +int DNSSD_API DNSServiceRefSockFD(DNSServiceRef sdRef); + + +/* DNSServiceProcessResult() + * + * Read a reply from the daemon, calling the appropriate application callback. This call will + * block until the daemon's response is received. Use DNSServiceRefSockFD() in + * conjunction with a run loop or select() to determine the presence of a response from the + * server before calling this function to process the reply without blocking. Call this function + * at any point if it is acceptable to block until the daemon's response arrives. Note that the + * client is responsible for ensuring that DNSServiceProcessResult() is called whenever there is + * a reply from the daemon - the daemon may terminate its connection with a client that does not + * process the daemon's responses. + * + * sdRef: A DNSServiceRef initialized by any of the DNSService calls + * that take a callback parameter. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns + * an error code indicating the specific failure that occurred. + */ + +DNSServiceErrorType DNSSD_API DNSServiceProcessResult(DNSServiceRef sdRef); + + +/* DNSServiceRefDeallocate() + * + * Terminate a connection with the daemon and free memory associated with the DNSServiceRef. + * Any services or records registered with this DNSServiceRef will be deregistered. Any + * Browse, Resolve, or Query operations called with this reference will be terminated. + * + * Note: If the reference's underlying socket is used in a run loop or select() call, it should + * be removed BEFORE DNSServiceRefDeallocate() is called, as this function closes the reference's + * socket. + * + * Note: If the reference was initialized with DNSServiceCreateConnection(), any DNSRecordRefs + * created via this reference will be invalidated by this call - the resource records are + * deregistered, and their DNSRecordRefs may not be used in subsequent functions. Similarly, + * if the reference was initialized with DNSServiceRegister, and an extra resource record was + * added to the service via DNSServiceAddRecord(), the DNSRecordRef created by the Add() call + * is invalidated when this function is called - the DNSRecordRef may not be used in subsequent + * functions. + * + * Note: This call is to be used only with the DNSServiceRef defined by this API. It is + * not compatible with dns_service_discovery_ref objects defined in the legacy Mach-based + * DNSServiceDiscovery.h API. + * + * sdRef: A DNSServiceRef initialized by any of the DNSService calls. + * + */ + +void DNSSD_API DNSServiceRefDeallocate(DNSServiceRef sdRef); + + +/********************************************************************************************* + * + * Domain Enumeration + * + *********************************************************************************************/ + +/* DNSServiceEnumerateDomains() + * + * Asynchronously enumerate domains available for browsing and registration. + * + * The enumeration MUST be cancelled via DNSServiceRefDeallocate() when no more domains + * are to be found. + * + * Note that the names returned are (like all of DNS-SD) UTF-8 strings, + * and are escaped using standard DNS escaping rules. + * (See "Notes on DNS Name Escaping" earlier in this file for more details.) + * A graphical browser displaying a hierarchical tree-structured view should cut + * the names at the bare dots to yield individual labels, then de-escape each + * label according to the escaping rules, and then display the resulting UTF-8 text. + * + * DNSServiceDomainEnumReply Callback Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceEnumerateDomains(). + * + * flags: Possible values are: + * kDNSServiceFlagsMoreComing + * kDNSServiceFlagsAdd + * kDNSServiceFlagsDefault + * + * interfaceIndex: Specifies the interface on which the domain exists. (The index for a given + * interface is determined via the if_nametoindex() family of calls.) + * + * errorCode: Will be kDNSServiceErr_NoError (0) on success, otherwise indicates + * the failure that occurred (other parameters are undefined if errorCode is nonzero). + * + * replyDomain: The name of the domain. + * + * context: The context pointer passed to DNSServiceEnumerateDomains. + * + */ + +typedef void (DNSSD_API *DNSServiceDomainEnumReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *replyDomain, + void *context + ); + + +/* DNSServiceEnumerateDomains() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the enumeration operation will run indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: Possible values are: + * kDNSServiceFlagsBrowseDomains to enumerate domains recommended for browsing. + * kDNSServiceFlagsRegistrationDomains to enumerate domains recommended + * for registration. + * + * interfaceIndex: If non-zero, specifies the interface on which to look for domains. + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Most applications will pass 0 to enumerate domains on + * all interfaces. See "Constants for specifying an interface index" for more details. + * + * callBack: The function to be called when a domain is found or the call asynchronously + * fails. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on success (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is not invoked and the DNSServiceRef + * is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceEnumerateDomains + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceDomainEnumReply callBack, + void *context /* may be NULL */ + ); + + +/********************************************************************************************* + * + * Service Registration + * + *********************************************************************************************/ + +/* Register a service that is discovered via Browse() and Resolve() calls. + * + * DNSServiceRegisterReply() Callback Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceRegister(). + * + * flags: When a name is successfully registered, the callback will be + * invoked with the kDNSServiceFlagsAdd flag set. When Wide-Area + * DNS-SD is in use, it is possible for a single service to get + * more than one success callback (e.g. one in the "local" multicast + * DNS domain, and another in a wide-area unicast DNS domain). + * If a successfully-registered name later suffers a name conflict + * or similar problem and has to be deregistered, the callback will + * be invoked with the kDNSServiceFlagsAdd flag not set. The callback + * is *not* invoked in the case where the caller explicitly terminates + * the service registration by calling DNSServiceRefDeallocate(ref); + * + * errorCode: Will be kDNSServiceErr_NoError on success, otherwise will + * indicate the failure that occurred (including name conflicts, + * if the kDNSServiceFlagsNoAutoRename flag was used when registering.) + * Other parameters are undefined if errorCode is nonzero. + * + * name: The service name registered (if the application did not specify a name in + * DNSServiceRegister(), this indicates what name was automatically chosen). + * + * regtype: The type of service registered, as it was passed to the callout. + * + * domain: The domain on which the service was registered (if the application did not + * specify a domain in DNSServiceRegister(), this indicates the default domain + * on which the service was registered). + * + * context: The context pointer that was passed to the callout. + * + */ + +typedef void (DNSSD_API *DNSServiceRegisterReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + DNSServiceErrorType errorCode, + const char *name, + const char *regtype, + const char *domain, + void *context + ); + + +/* DNSServiceRegister() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the registration will remain active indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * interfaceIndex: If non-zero, specifies the interface on which to register the service + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Most applications will pass 0 to register on all + * available interfaces. See "Constants for specifying an interface index" for more details. + * + * flags: Indicates the renaming behavior on name conflict (most applications + * will pass 0). See flag definitions above for details. + * + * name: If non-NULL, specifies the service name to be registered. + * Most applications will not specify a name, in which case the computer + * name is used (this name is communicated to the client via the callback). + * If a name is specified, it must be 1-63 bytes of UTF-8 text. + * If the name is longer than 63 bytes it will be automatically truncated + * to a legal length, unless the NoAutoRename flag is set, + * in which case kDNSServiceErr_BadParam will be returned. + * + * regtype: The service type followed by the protocol, separated by a dot + * (e.g. "_ftp._tcp"). The service type must be an underscore, followed + * by 1-15 characters, which may be letters, digits, or hyphens. + * The transport protocol must be "_tcp" or "_udp". New service types + * should be registered at <http://www.dns-sd.org/ServiceTypes.html>. + * + * Additional subtypes of the primary service type (where a service + * type has defined subtypes) follow the primary service type in a + * comma-separated list, with no additional spaces, e.g. + * "_primarytype._tcp,_subtype1,_subtype2,_subtype3" + * Subtypes provide a mechanism for filtered browsing: A client browsing + * for "_primarytype._tcp" will discover all instances of this type; + * a client browsing for "_primarytype._tcp,_subtype2" will discover only + * those instances that were registered with "_subtype2" in their list of + * registered subtypes. + * + * The subtype mechanism can be illustrated with some examples using the + * dns-sd command-line tool: + * + * % dns-sd -R Simple _test._tcp "" 1001 & + * % dns-sd -R Better _test._tcp,HasFeatureA "" 1002 & + * % dns-sd -R Best _test._tcp,HasFeatureA,HasFeatureB "" 1003 & + * + * Now: + * % dns-sd -B _test._tcp # will find all three services + * % dns-sd -B _test._tcp,HasFeatureA # finds "Better" and "Best" + * % dns-sd -B _test._tcp,HasFeatureB # finds only "Best" + * + * Subtype labels may be up to 63 bytes long, and may contain any eight- + * bit byte values, including zero bytes. However, due to the nature of + * using a C-string-based API, conventional DNS escaping must be used for + * dots ('.'), commas (','), backslashes ('\') and zero bytes, as shown below: + * + * % dns-sd -R Test '_test._tcp,s\.one,s\,two,s\\three,s\000four' local 123 + * + * domain: If non-NULL, specifies the domain on which to advertise the service. + * Most applications will not specify a domain, instead automatically + * registering in the default domain(s). + * + * host: If non-NULL, specifies the SRV target host name. Most applications + * will not specify a host, instead automatically using the machine's + * default host name(s). Note that specifying a non-NULL host does NOT + * create an address record for that host - the application is responsible + * for ensuring that the appropriate address record exists, or creating it + * via DNSServiceRegisterRecord(). + * + * port: The port, in network byte order, on which the service accepts connections. + * Pass 0 for a "placeholder" service (i.e. a service that will not be discovered + * by browsing, but will cause a name conflict if another client tries to + * register that same name). Most clients will not use placeholder services. + * + * txtLen: The length of the txtRecord, in bytes. Must be zero if the txtRecord is NULL. + * + * txtRecord: The TXT record rdata. A non-NULL txtRecord MUST be a properly formatted DNS + * TXT record, i.e. <length byte> <data> <length byte> <data> ... + * Passing NULL for the txtRecord is allowed as a synonym for txtLen=1, txtRecord="", + * i.e. it creates a TXT record of length one containing a single empty string. + * RFC 1035 doesn't allow a TXT record to contain *zero* strings, so a single empty + * string is the smallest legal DNS TXT record. + * As with the other parameters, the DNSServiceRegister call copies the txtRecord + * data; e.g. if you allocated the storage for the txtRecord parameter with malloc() + * then you can safely free that memory right after the DNSServiceRegister call returns. + * + * callBack: The function to be called when the registration completes or asynchronously + * fails. The client MAY pass NULL for the callback - The client will NOT be notified + * of the default values picked on its behalf, and the client will NOT be notified of any + * asynchronous errors (e.g. out of memory errors, etc.) that may prevent the registration + * of the service. The client may NOT pass the NoAutoRename flag if the callback is NULL. + * The client may still deregister the service at any time via DNSServiceRefDeallocate(). + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on success (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is never invoked and the DNSServiceRef + * is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceRegister + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *name, /* may be NULL */ + const char *regtype, + const char *domain, /* may be NULL */ + const char *host, /* may be NULL */ + uint16_t port, /* In network byte order */ + uint16_t txtLen, + const void *txtRecord, /* may be NULL */ + DNSServiceRegisterReply callBack, /* may be NULL */ + void *context /* may be NULL */ + ); + + +/* DNSServiceAddRecord() + * + * Add a record to a registered service. The name of the record will be the same as the + * registered service's name. + * The record can later be updated or deregistered by passing the RecordRef initialized + * by this function to DNSServiceUpdateRecord() or DNSServiceRemoveRecord(). + * + * Note that the DNSServiceAddRecord/UpdateRecord/RemoveRecord are *NOT* thread-safe + * with respect to a single DNSServiceRef. If you plan to have multiple threads + * in your program simultaneously add, update, or remove records from the same + * DNSServiceRef, then it's the caller's responsibility to use a mutext lock + * or take similar appropriate precautions to serialize those calls. + * + * Parameters; + * + * sdRef: A DNSServiceRef initialized by DNSServiceRegister(). + * + * RecordRef: A pointer to an uninitialized DNSRecordRef. Upon succesfull completion of this + * call, this ref may be passed to DNSServiceUpdateRecord() or DNSServiceRemoveRecord(). + * If the above DNSServiceRef is passed to DNSServiceRefDeallocate(), RecordRef is also + * invalidated and may not be used further. + * + * flags: Currently ignored, reserved for future use. + * + * rrtype: The type of the record (e.g. kDNSServiceType_TXT, kDNSServiceType_SRV, etc) + * + * rdlen: The length, in bytes, of the rdata. + * + * rdata: The raw rdata to be contained in the added resource record. + * + * ttl: The time to live of the resource record, in seconds. + * Most clients should pass 0 to indicate that the system should + * select a sensible default value. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns an + * error code indicating the error that occurred (the RecordRef is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceAddRecord + ( + DNSServiceRef sdRef, + DNSRecordRef *RecordRef, + DNSServiceFlags flags, + uint16_t rrtype, + uint16_t rdlen, + const void *rdata, + uint32_t ttl + ); + + +/* DNSServiceUpdateRecord + * + * Update a registered resource record. The record must either be: + * - The primary txt record of a service registered via DNSServiceRegister() + * - A record added to a registered service via DNSServiceAddRecord() + * - An individual record registered by DNSServiceRegisterRecord() + * + * Parameters: + * + * sdRef: A DNSServiceRef that was initialized by DNSServiceRegister() + * or DNSServiceCreateConnection(). + * + * RecordRef: A DNSRecordRef initialized by DNSServiceAddRecord, or NULL to update the + * service's primary txt record. + * + * flags: Currently ignored, reserved for future use. + * + * rdlen: The length, in bytes, of the new rdata. + * + * rdata: The new rdata to be contained in the updated resource record. + * + * ttl: The time to live of the updated resource record, in seconds. + * Most clients should pass 0 to indicate that the system should + * select a sensible default value. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns an + * error code indicating the error that occurred. + */ + +DNSServiceErrorType DNSSD_API DNSServiceUpdateRecord + ( + DNSServiceRef sdRef, + DNSRecordRef RecordRef, /* may be NULL */ + DNSServiceFlags flags, + uint16_t rdlen, + const void *rdata, + uint32_t ttl + ); + + +/* DNSServiceRemoveRecord + * + * Remove a record previously added to a service record set via DNSServiceAddRecord(), or deregister + * an record registered individually via DNSServiceRegisterRecord(). + * + * Parameters: + * + * sdRef: A DNSServiceRef initialized by DNSServiceRegister() (if the + * record being removed was registered via DNSServiceAddRecord()) or by + * DNSServiceCreateConnection() (if the record being removed was registered via + * DNSServiceRegisterRecord()). + * + * recordRef: A DNSRecordRef initialized by a successful call to DNSServiceAddRecord() + * or DNSServiceRegisterRecord(). + * + * flags: Currently ignored, reserved for future use. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns an + * error code indicating the error that occurred. + */ + +DNSServiceErrorType DNSSD_API DNSServiceRemoveRecord + ( + DNSServiceRef sdRef, + DNSRecordRef RecordRef, + DNSServiceFlags flags + ); + + +/********************************************************************************************* + * + * Service Discovery + * + *********************************************************************************************/ + +/* Browse for instances of a service. + * + * DNSServiceBrowseReply() Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceBrowse(). + * + * flags: Possible values are kDNSServiceFlagsMoreComing and kDNSServiceFlagsAdd. + * See flag definitions for details. + * + * interfaceIndex: The interface on which the service is advertised. This index should + * be passed to DNSServiceResolve() when resolving the service. + * + * errorCode: Will be kDNSServiceErr_NoError (0) on success, otherwise will + * indicate the failure that occurred. Other parameters are undefined if + * the errorCode is nonzero. + * + * serviceName: The discovered service name. This name should be displayed to the user, + * and stored for subsequent use in the DNSServiceResolve() call. + * + * regtype: The service type, which is usually (but not always) the same as was passed + * to DNSServiceBrowse(). One case where the discovered service type may + * not be the same as the requested service type is when using subtypes: + * The client may want to browse for only those ftp servers that allow + * anonymous connections. The client will pass the string "_ftp._tcp,_anon" + * to DNSServiceBrowse(), but the type of the service that's discovered + * is simply "_ftp._tcp". The regtype for each discovered service instance + * should be stored along with the name, so that it can be passed to + * DNSServiceResolve() when the service is later resolved. + * + * domain: The domain of the discovered service instance. This may or may not be the + * same as the domain that was passed to DNSServiceBrowse(). The domain for each + * discovered service instance should be stored along with the name, so that + * it can be passed to DNSServiceResolve() when the service is later resolved. + * + * context: The context pointer that was passed to the callout. + * + */ + +typedef void (DNSSD_API *DNSServiceBrowseReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *serviceName, + const char *regtype, + const char *replyDomain, + void *context + ); + + +/* DNSServiceBrowse() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the browse operation will run indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: Currently ignored, reserved for future use. + * + * interfaceIndex: If non-zero, specifies the interface on which to browse for services + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Most applications will pass 0 to browse on all available + * interfaces. See "Constants for specifying an interface index" for more details. + * + * regtype: The service type being browsed for followed by the protocol, separated by a + * dot (e.g. "_ftp._tcp"). The transport protocol must be "_tcp" or "_udp". + * A client may optionally specify a single subtype to perform filtered browsing: + * e.g. browsing for "_primarytype._tcp,_subtype" will discover only those + * instances of "_primarytype._tcp" that were registered specifying "_subtype" + * in their list of registered subtypes. + * + * domain: If non-NULL, specifies the domain on which to browse for services. + * Most applications will not specify a domain, instead browsing on the + * default domain(s). + * + * callBack: The function to be called when an instance of the service being browsed for + * is found, or if the call asynchronously fails. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on success (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is not invoked and the DNSServiceRef + * is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceBrowse + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *regtype, + const char *domain, /* may be NULL */ + DNSServiceBrowseReply callBack, + void *context /* may be NULL */ + ); + + +/* DNSServiceResolve() + * + * Resolve a service name discovered via DNSServiceBrowse() to a target host name, port number, and + * txt record. + * + * Note: Applications should NOT use DNSServiceResolve() solely for txt record monitoring - use + * DNSServiceQueryRecord() instead, as it is more efficient for this task. + * + * Note: When the desired results have been returned, the client MUST terminate the resolve by calling + * DNSServiceRefDeallocate(). + * + * Note: DNSServiceResolve() behaves correctly for typical services that have a single SRV record + * and a single TXT record. To resolve non-standard services with multiple SRV or TXT records, + * DNSServiceQueryRecord() should be used. + * + * DNSServiceResolveReply Callback Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceResolve(). + * + * flags: Possible values: kDNSServiceFlagsMoreComing + * + * interfaceIndex: The interface on which the service was resolved. + * + * errorCode: Will be kDNSServiceErr_NoError (0) on success, otherwise will + * indicate the failure that occurred. Other parameters are undefined if + * the errorCode is nonzero. + * + * fullname: The full service domain name, in the form <servicename>.<protocol>.<domain>. + * (This name is escaped following standard DNS rules, making it suitable for + * passing to standard system DNS APIs such as res_query(), or to the + * special-purpose functions included in this API that take fullname parameters. + * See "Notes on DNS Name Escaping" earlier in this file for more details.) + * + * hosttarget: The target hostname of the machine providing the service. This name can + * be passed to functions like gethostbyname() to identify the host's IP address. + * + * port: The port, in network byte order, on which connections are accepted for this service. + * + * txtLen: The length of the txt record, in bytes. + * + * txtRecord: The service's primary txt record, in standard txt record format. + * + * context: The context pointer that was passed to the callout. + * + * NOTE: In earlier versions of this header file, the txtRecord parameter was declared "const char *" + * This is incorrect, since it contains length bytes which are values in the range 0 to 255, not -128 to +127. + * Depending on your compiler settings, this change may cause signed/unsigned mismatch warnings. + * These should be fixed by updating your own callback function definition to match the corrected + * function signature using "const unsigned char *txtRecord". Making this change may also fix inadvertent + * bugs in your callback function, where it could have incorrectly interpreted a length byte with value 250 + * as being -6 instead, with various bad consequences ranging from incorrect operation to software crashes. + * If you need to maintain portable code that will compile cleanly with both the old and new versions of + * this header file, you should update your callback function definition to use the correct unsigned value, + * and then in the place where you pass your callback function to DNSServiceResolve(), use a cast to eliminate + * the compiler warning, e.g.: + * DNSServiceResolve(sd, flags, index, name, regtype, domain, (DNSServiceResolveReply)MyCallback, context); + * This will ensure that your code compiles cleanly without warnings (and more importantly, works correctly) + * with both the old header and with the new corrected version. + * + */ + +typedef void (DNSSD_API *DNSServiceResolveReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *fullname, + const char *hosttarget, + uint16_t port, /* In network byte order */ + uint16_t txtLen, + const unsigned char *txtRecord, + void *context + ); + + +/* DNSServiceResolve() Parameters + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the resolve operation will run indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: Specifying kDNSServiceFlagsForceMulticast will cause query to be + * performed with a link-local mDNS query, even if the name is an + * apparently non-local name (i.e. a name not ending in ".local.") + * + * interfaceIndex: The interface on which to resolve the service. If this resolve call is + * as a result of a currently active DNSServiceBrowse() operation, then the + * interfaceIndex should be the index reported in the DNSServiceBrowseReply + * callback. If this resolve call is using information previously saved + * (e.g. in a preference file) for later use, then use interfaceIndex 0, because + * the desired service may now be reachable via a different physical interface. + * See "Constants for specifying an interface index" for more details. + * + * name: The name of the service instance to be resolved, as reported to the + * DNSServiceBrowseReply() callback. + * + * regtype: The type of the service instance to be resolved, as reported to the + * DNSServiceBrowseReply() callback. + * + * domain: The domain of the service instance to be resolved, as reported to the + * DNSServiceBrowseReply() callback. + * + * callBack: The function to be called when a result is found, or if the call + * asynchronously fails. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on success (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is never invoked and the DNSServiceRef + * is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceResolve + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *name, + const char *regtype, + const char *domain, + DNSServiceResolveReply callBack, + void *context /* may be NULL */ + ); + + +/********************************************************************************************* + * + * Querying Individual Specific Records + * + *********************************************************************************************/ + +/* DNSServiceQueryRecord + * + * Query for an arbitrary DNS record. + * + * DNSServiceQueryRecordReply() Callback Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceQueryRecord(). + * + * flags: Possible values are kDNSServiceFlagsMoreComing and + * kDNSServiceFlagsAdd. The Add flag is NOT set for PTR records + * with a ttl of 0, i.e. "Remove" events. + * + * interfaceIndex: The interface on which the query was resolved (the index for a given + * interface is determined via the if_nametoindex() family of calls). + * See "Constants for specifying an interface index" for more details. + * + * errorCode: Will be kDNSServiceErr_NoError on success, otherwise will + * indicate the failure that occurred. Other parameters are undefined if + * errorCode is nonzero. + * + * fullname: The resource record's full domain name. + * + * rrtype: The resource record's type (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc) + * + * rrclass: The class of the resource record (usually kDNSServiceClass_IN). + * + * rdlen: The length, in bytes, of the resource record rdata. + * + * rdata: The raw rdata of the resource record. + * + * ttl: If the client wishes to cache the result for performance reasons, + * the TTL indicates how long the client may legitimately hold onto + * this result, in seconds. After the TTL expires, the client should + * consider the result no longer valid, and if it requires this data + * again, it should be re-fetched with a new query. Of course, this + * only applies to clients that cancel the asynchronous operation when + * they get a result. Clients that leave the asynchronous operation + * running can safely assume that the data remains valid until they + * get another callback telling them otherwise. + * + * context: The context pointer that was passed to the callout. + * + */ + +typedef void (DNSSD_API *DNSServiceQueryRecordReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void *rdata, + uint32_t ttl, + void *context + ); + + +/* DNSServiceQueryRecord() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the query operation will run indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: kDNSServiceFlagsForceMulticast or kDNSServiceFlagsLongLivedQuery. + * Pass kDNSServiceFlagsLongLivedQuery to create a "long-lived" unicast + * query in a non-local domain. Without setting this flag, unicast queries + * will be one-shot - that is, only answers available at the time of the call + * will be returned. By setting this flag, answers (including Add and Remove + * events) that become available after the initial call is made will generate + * callbacks. This flag has no effect on link-local multicast queries. + * + * interfaceIndex: If non-zero, specifies the interface on which to issue the query + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Passing 0 causes the name to be queried for on all + * interfaces. See "Constants for specifying an interface index" for more details. + * + * fullname: The full domain name of the resource record to be queried for. + * + * rrtype: The numerical type of the resource record to be queried for + * (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc) + * + * rrclass: The class of the resource record (usually kDNSServiceClass_IN). + * + * callBack: The function to be called when a result is found, or if the call + * asynchronously fails. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on success (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is never invoked and the DNSServiceRef + * is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceQueryRecord + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + DNSServiceQueryRecordReply callBack, + void *context /* may be NULL */ + ); + + +/********************************************************************************************* + * + * Unified lookup of both IPv4 and IPv6 addresses for a fully qualified hostname + * + *********************************************************************************************/ + +/* DNSServiceGetAddrInfo + * + * Queries for the IP address of a hostname by using either Multicast or Unicast DNS. + * + * DNSServiceGetAddrInfoReply() parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceGetAddrInfo(). + * + * flags: Possible values are kDNSServiceFlagsMoreComing and + * kDNSServiceFlagsAdd. + * + * interfaceIndex: The interface to which the answers pertain. + * + * errorCode: Will be kDNSServiceErr_NoError on success, otherwise will + * indicate the failure that occurred. Other parameters are + * undefined if errorCode is nonzero. + * + * hostname: The fully qualified domain name of the host to be queried for. + * + * address: IPv4 or IPv6 address. + * + * ttl: If the client wishes to cache the result for performance reasons, + * the TTL indicates how long the client may legitimately hold onto + * this result, in seconds. After the TTL expires, the client should + * consider the result no longer valid, and if it requires this data + * again, it should be re-fetched with a new query. Of course, this + * only applies to clients that cancel the asynchronous operation when + * they get a result. Clients that leave the asynchronous operation + * running can safely assume that the data remains valid until they + * get another callback telling them otherwise. + * + * context: The context pointer that was passed to the callout. + * + */ + +typedef void (DNSSD_API *DNSServiceGetAddrInfoReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *hostname, + const struct sockaddr *address, + uint32_t ttl, + void *context + ); + + +/* DNSServiceGetAddrInfo() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds then it + * initializes the DNSServiceRef, returns kDNSServiceErr_NoError, and the query + * begins and will last indefinitely until the client terminates the query + * by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: kDNSServiceFlagsForceMulticast or kDNSServiceFlagsLongLivedQuery. + * Pass kDNSServiceFlagsLongLivedQuery to create a "long-lived" unicast + * query in a non-local domain. Without setting this flag, unicast queries + * will be one-shot - that is, only answers available at the time of the call + * will be returned. By setting this flag, answers (including Add and Remove + * events) that become available after the initial call is made will generate + * callbacks. This flag has no effect on link-local multicast queries. + * + * interfaceIndex: The interface on which to issue the query. Passing 0 causes the query to be + * sent on all active interfaces via Multicast or the primary interface via Unicast. + * + * protocol: Pass in kDNSServiceProtocol_IPv4 to look up IPv4 addresses, or kDNSServiceProtocol_IPv6 + * to look up IPv6 addresses, or both to look up both kinds. If neither flag is + * set, the system will apply an intelligent heuristic, which is (currently) + * that it will attempt to look up both, except: + * + * * If "hostname" is a wide-area unicast DNS hostname (i.e. not a ".local." name) + * but this host has no routable IPv6 address, then the call will not try to + * look up IPv6 addresses for "hostname", since any addresses it found would be + * unlikely to be of any use anyway. Similarly, if this host has no routable + * IPv4 address, the call will not try to look up IPv4 addresses for "hostname". + * + * hostname: The fully qualified domain name of the host to be queried for. + * + * callBack: The function to be called when the query succeeds or fails asynchronously. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on success (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred. + */ + +DNSServiceErrorType DNSSD_API DNSServiceGetAddrInfo + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceProtocol protocol, + const char *hostname, + DNSServiceGetAddrInfoReply callBack, + void *context /* may be NULL */ + ); + + +/********************************************************************************************* + * + * Special Purpose Calls: + * DNSServiceCreateConnection(), DNSServiceRegisterRecord(), DNSServiceReconfirmRecord() + * (most applications will not use these) + * + *********************************************************************************************/ + +/* DNSServiceCreateConnection() + * + * Create a connection to the daemon allowing efficient registration of + * multiple individual records. + * + * Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. Deallocating + * the reference (via DNSServiceRefDeallocate()) severs the + * connection and deregisters all records registered on this connection. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns + * an error code indicating the specific failure that occurred (in which + * case the DNSServiceRef is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceCreateConnection(DNSServiceRef *sdRef); + + +/* DNSServiceRegisterRecord + * + * Register an individual resource record on a connected DNSServiceRef. + * + * Note that name conflicts occurring for records registered via this call must be handled + * by the client in the callback. + * + * DNSServiceRegisterRecordReply() parameters: + * + * sdRef: The connected DNSServiceRef initialized by + * DNSServiceCreateConnection(). + * + * RecordRef: The DNSRecordRef initialized by DNSServiceRegisterRecord(). If the above + * DNSServiceRef is passed to DNSServiceRefDeallocate(), this DNSRecordRef is + * invalidated, and may not be used further. + * + * flags: Currently unused, reserved for future use. + * + * errorCode: Will be kDNSServiceErr_NoError on success, otherwise will + * indicate the failure that occurred (including name conflicts.) + * Other parameters are undefined if errorCode is nonzero. + * + * context: The context pointer that was passed to the callout. + * + */ + + typedef void (DNSSD_API *DNSServiceRegisterRecordReply) + ( + DNSServiceRef sdRef, + DNSRecordRef RecordRef, + DNSServiceFlags flags, + DNSServiceErrorType errorCode, + void *context + ); + + +/* DNSServiceRegisterRecord() Parameters: + * + * sdRef: A DNSServiceRef initialized by DNSServiceCreateConnection(). + * + * RecordRef: A pointer to an uninitialized DNSRecordRef. Upon succesfull completion of this + * call, this ref may be passed to DNSServiceUpdateRecord() or DNSServiceRemoveRecord(). + * (To deregister ALL records registered on a single connected DNSServiceRef + * and deallocate each of their corresponding DNSServiceRecordRefs, call + * DNSServiceRefDeallocate()). + * + * flags: Possible values are kDNSServiceFlagsShared or kDNSServiceFlagsUnique + * (see flag type definitions for details). + * + * interfaceIndex: If non-zero, specifies the interface on which to register the record + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Passing 0 causes the record to be registered on all interfaces. + * See "Constants for specifying an interface index" for more details. + * + * fullname: The full domain name of the resource record. + * + * rrtype: The numerical type of the resource record (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc) + * + * rrclass: The class of the resource record (usually kDNSServiceClass_IN) + * + * rdlen: Length, in bytes, of the rdata. + * + * rdata: A pointer to the raw rdata, as it is to appear in the DNS record. + * + * ttl: The time to live of the resource record, in seconds. + * Most clients should pass 0 to indicate that the system should + * select a sensible default value. + * + * callBack: The function to be called when a result is found, or if the call + * asynchronously fails (e.g. because of a name conflict.) + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on success (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is never invoked and the DNSRecordRef is + * not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceRegisterRecord + ( + DNSServiceRef sdRef, + DNSRecordRef *RecordRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void *rdata, + uint32_t ttl, + DNSServiceRegisterRecordReply callBack, + void *context /* may be NULL */ + ); + + +/* DNSServiceReconfirmRecord + * + * Instruct the daemon to verify the validity of a resource record that appears + * to be out of date (e.g. because TCP connection to a service's target failed.) + * Causes the record to be flushed from the daemon's cache (as well as all other + * daemons' caches on the network) if the record is determined to be invalid. + * Use this routine conservatively. Reconfirming a record necessarily consumes + * network bandwidth, so this should not be done indiscriminately. + * + * Parameters: + * + * flags: Pass kDNSServiceFlagsForce to force immediate deletion of record, + * instead of after some number of reconfirmation queries have gone unanswered. + * + * interfaceIndex: Specifies the interface of the record in question. + * The caller must specify the interface. + * This API (by design) causes increased network traffic, so it requires + * the caller to be precise about which record should be reconfirmed. + * It is not possible to pass zero for the interface index to perform + * a "wildcard" reconfirmation, where *all* matching records are reconfirmed. + * + * fullname: The resource record's full domain name. + * + * rrtype: The resource record's type (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc) + * + * rrclass: The class of the resource record (usually kDNSServiceClass_IN). + * + * rdlen: The length, in bytes, of the resource record rdata. + * + * rdata: The raw rdata of the resource record. + * + */ + +DNSServiceErrorType DNSSD_API DNSServiceReconfirmRecord + ( + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void *rdata + ); + + +/********************************************************************************************* + * + * NAT Port Mapping + * + *********************************************************************************************/ + +/* DNSServiceNATPortMappingCreate + * + * Request a port mapping in the NAT gateway, which maps a port on the local machine + * to an external port on the NAT. The NAT should support either the NAT-PMP or the UPnP IGD + * protocol for this API to create a successful mapping. + * + * The port mapping will be renewed indefinitely until the client process exits, or + * explicitly terminates the port mapping request by calling DNSServiceRefDeallocate(). + * The client callback will be invoked, informing the client of the NAT gateway's + * external IP address and the external port that has been allocated for this client. + * The client should then record this external IP address and port using whatever + * directory service mechanism it is using to enable peers to connect to it. + * (Clients advertising services using Wide-Area DNS-SD DO NOT need to use this API + * -- when a client calls DNSServiceRegister() NAT mappings are automatically created + * and the external IP address and port for the service are recorded in the global DNS. + * Only clients using some directory mechanism other than Wide-Area DNS-SD need to use + * this API to explicitly map their own ports.) + * + * It's possible that the client callback could be called multiple times, for example + * if the NAT gateway's IP address changes, or if a configuration change results in a + * different external port being mapped for this client. Over the lifetime of any long-lived + * port mapping, the client should be prepared to handle these notifications of changes + * in the environment, and should update its recorded address and/or port as appropriate. + * + * NOTE: There are two unusual aspects of how the DNSServiceNATPortMappingCreate API works, + * which were intentionally designed to help simplify client code: + * + * 1. It's not an error to request a NAT mapping when the machine is not behind a NAT gateway. + * In other NAT mapping APIs, if you request a NAT mapping and the machine is not behind a NAT + * gateway, then the API returns an error code -- it can't get you a NAT mapping if there's no + * NAT gateway. The DNSServiceNATPortMappingCreate API takes a different view. Working out + * whether or not you need a NAT mapping can be tricky and non-obvious, particularly on + * a machine with multiple active network interfaces. Rather than make every client recreate + * this logic for deciding whether a NAT mapping is required, the PortMapping API does that + * work for you. If the client calls the PortMapping API when the machine already has a + * routable public IP address, then instead of complaining about it and giving an error, + * the PortMapping API just invokes your callback, giving the machine's public address + * and your own port number. This means you don't need to write code to work out whether + * your client needs to call the PortMapping API -- just call it anyway, and if it wasn't + * necessary, no harm is done: + * + * - If the machine already has a routable public IP address, then your callback + * will just be invoked giving your own address and port. + * - If a NAT mapping is required and obtained, then your callback will be invoked + * giving you the external address and port. + * - If a NAT mapping is required but not obtained from the local NAT gateway, + * or the machine has no network connectivity, then your callback will be + * invoked giving zero address and port. + * + * 2. In other NAT mapping APIs, if a laptop computer is put to sleep and woken up on a new + * network, it's the client's job to notice this, and work out whether a NAT mapping + * is required on the new network, and make a new NAT mapping request if necessary. + * The DNSServiceNATPortMappingCreate API does this for you, automatically. + * The client just needs to make one call to the PortMapping API, and its callback will + * be invoked any time the mapping state changes. This property complements point (1) above. + * If the client didn't make a NAT mapping request just because it determined that one was + * not required at that particular moment in time, the client would then have to monitor + * for network state changes to determine if a NAT port mapping later became necessary. + * By unconditionally making a NAT mapping request, even when a NAT mapping not to be + * necessary, the PortMapping API will then begin monitoring network state changes on behalf of + * the client, and if a NAT mapping later becomes necessary, it will automatically create a NAT + * mapping and inform the client with a new callback giving the new address and port information. + * + * DNSServiceNATPortMappingReply() parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceNATPortMappingCreate(). + * + * flags: Currently unused, reserved for future use. + * + * interfaceIndex: The interface through which the NAT gateway is reached. + * + * errorCode: Will be kDNSServiceErr_NoError on success. + * Will be kDNSServiceErr_DoubleNAT when the NAT gateway is itself behind one or + * more layers of NAT, in which case the other parameters have the defined values. + * For other failures, will indicate the failure that occurred, and the other + * parameters are undefined. + * + * externalAddress: Four byte IPv4 address in network byte order. + * + * protocol: Will be kDNSServiceProtocol_UDP or kDNSServiceProtocol_TCP or both. + * + * internalPort: The port on the local machine that was mapped. + * + * externalPort: The actual external port in the NAT gateway that was mapped. + * This is likely to be different than the requested external port. + * + * ttl: The lifetime of the NAT port mapping created on the gateway. + * This controls how quickly stale mappings will be garbage-collected + * if the client machine crashes, suffers a power failure, is disconnected + * from the network, or suffers some other unfortunate demise which + * causes it to vanish without explicitly removing its NAT port mapping. + * It's possible that the ttl value will differ from the requested ttl value. + * + * context: The context pointer that was passed to the callout. + * + */ + +typedef void (DNSSD_API *DNSServiceNATPortMappingReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + uint32_t externalAddress, /* four byte IPv4 address in network byte order */ + DNSServiceProtocol protocol, + uint16_t internalPort, /* In network byte order */ + uint16_t externalPort, /* In network byte order and may be different than the requested port */ + uint32_t ttl, /* may be different than the requested ttl */ + void *context + ); + + +/* DNSServiceNATPortMappingCreate() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds then it + * initializes the DNSServiceRef, returns kDNSServiceErr_NoError, and the nat + * port mapping will last indefinitely until the client terminates the port + * mapping request by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: Currently ignored, reserved for future use. + * + * interfaceIndex: The interface on which to create port mappings in a NAT gateway. Passing 0 causes + * the port mapping request to be sent on the primary interface. + * + * protocol: To request a port mapping, pass in kDNSServiceProtocol_UDP, or kDNSServiceProtocol_TCP, + * or (kDNSServiceProtocol_UDP | kDNSServiceProtocol_TCP) to map both. + * The local listening port number must also be specified in the internalPort parameter. + * To just discover the NAT gateway's external IP address, pass zero for protocol, + * internalPort, externalPort and ttl. + * + * internalPort: The port number in network byte order on the local machine which is listening for packets. + * + * externalPort: The requested external port in network byte order in the NAT gateway that you would + * like to map to the internal port. Pass 0 if you don't care which external port is chosen for you. + * + * ttl: The requested renewal period of the NAT port mapping, in seconds. + * If the client machine crashes, suffers a power failure, is disconnected from + * the network, or suffers some other unfortunate demise which causes it to vanish + * unexpectedly without explicitly removing its NAT port mappings, then the NAT gateway + * will garbage-collect old stale NAT port mappings when their lifetime expires. + * Requesting a short TTL causes such orphaned mappings to be garbage-collected + * more promptly, but consumes system resources and network bandwidth with + * frequent renewal packets to keep the mapping from expiring. + * Requesting a long TTL is more efficient on the network, but in the event of the + * client vanishing, stale NAT port mappings will not be garbage-collected as quickly. + * Most clients should pass 0 to use a system-wide default value. + * + * callBack: The function to be called when the port mapping request succeeds or fails asynchronously. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on success (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred. + * + * If you don't actually want a port mapped, and are just calling the API + * because you want to find out the NAT's external IP address (e.g. for UI + * display) then pass zero for protocol, internalPort, externalPort and ttl. + */ + +DNSServiceErrorType DNSSD_API DNSServiceNATPortMappingCreate + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceProtocol protocol, /* TCP and/or UDP */ + uint16_t internalPort, /* network byte order */ + uint16_t externalPort, /* network byte order */ + uint32_t ttl, /* time to live in seconds */ + DNSServiceNATPortMappingReply callBack, + void *context /* may be NULL */ + ); + + +/********************************************************************************************* + * + * General Utility Functions + * + *********************************************************************************************/ + +/* DNSServiceConstructFullName() + * + * Concatenate a three-part domain name (as returned by the above callbacks) into a + * properly-escaped full domain name. Note that callbacks in the above functions ALREADY ESCAPE + * strings where necessary. + * + * Parameters: + * + * fullName: A pointer to a buffer that where the resulting full domain name is to be written. + * The buffer must be kDNSServiceMaxDomainName (1009) bytes in length to + * accommodate the longest legal domain name without buffer overrun. + * + * service: The service name - any dots or backslashes must NOT be escaped. + * May be NULL (to construct a PTR record name, e.g. + * "_ftp._tcp.apple.com."). + * + * regtype: The service type followed by the protocol, separated by a dot + * (e.g. "_ftp._tcp"). + * + * domain: The domain name, e.g. "apple.com.". Literal dots or backslashes, + * if any, must be escaped, e.g. "1st\. Floor.apple.com." + * + * return value: Returns kDNSServiceErr_NoError (0) on success, kDNSServiceErr_BadParam on error. + * + */ + +DNSServiceErrorType DNSSD_API DNSServiceConstructFullName + ( + char * const fullName, + const char * const service, /* may be NULL */ + const char * const regtype, + const char * const domain + ); + + +/********************************************************************************************* + * + * TXT Record Construction Functions + * + *********************************************************************************************/ + +/* + * A typical calling sequence for TXT record construction is something like: + * + * Client allocates storage for TXTRecord data (e.g. declare buffer on the stack) + * TXTRecordCreate(); + * TXTRecordSetValue(); + * TXTRecordSetValue(); + * TXTRecordSetValue(); + * ... + * DNSServiceRegister( ... TXTRecordGetLength(), TXTRecordGetBytesPtr() ... ); + * TXTRecordDeallocate(); + * Explicitly deallocate storage for TXTRecord data (if not allocated on the stack) + */ + + +/* TXTRecordRef + * + * Opaque internal data type. + * Note: Represents a DNS-SD TXT record. + */ + +typedef union _TXTRecordRef_t { char PrivateData[16]; char *ForceNaturalAlignment; } TXTRecordRef; + + +/* TXTRecordCreate() + * + * Creates a new empty TXTRecordRef referencing the specified storage. + * + * If the buffer parameter is NULL, or the specified storage size is not + * large enough to hold a key subsequently added using TXTRecordSetValue(), + * then additional memory will be added as needed using malloc(). + * + * On some platforms, when memory is low, malloc() may fail. In this + * case, TXTRecordSetValue() will return kDNSServiceErr_NoMemory, and this + * error condition will need to be handled as appropriate by the caller. + * + * You can avoid the need to handle this error condition if you ensure + * that the storage you initially provide is large enough to hold all + * the key/value pairs that are to be added to the record. + * The caller can precompute the exact length required for all of the + * key/value pairs to be added, or simply provide a fixed-sized buffer + * known in advance to be large enough. + * A no-value (key-only) key requires (1 + key length) bytes. + * A key with empty value requires (1 + key length + 1) bytes. + * A key with non-empty value requires (1 + key length + 1 + value length). + * For most applications, DNS-SD TXT records are generally + * less than 100 bytes, so in most cases a simple fixed-sized + * 256-byte buffer will be more than sufficient. + * Recommended size limits for DNS-SD TXT Records are discussed in + * <http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt> + * + * Note: When passing parameters to and from these TXT record APIs, + * the key name does not include the '=' character. The '=' character + * is the separator between the key and value in the on-the-wire + * packet format; it is not part of either the key or the value. + * + * txtRecord: A pointer to an uninitialized TXTRecordRef. + * + * bufferLen: The size of the storage provided in the "buffer" parameter. + * + * buffer: Optional caller-supplied storage used to hold the TXTRecord data. + * This storage must remain valid for as long as + * the TXTRecordRef. + */ + +void DNSSD_API TXTRecordCreate + ( + TXTRecordRef *txtRecord, + uint16_t bufferLen, + void *buffer + ); + + +/* TXTRecordDeallocate() + * + * Releases any resources allocated in the course of preparing a TXT Record + * using TXTRecordCreate()/TXTRecordSetValue()/TXTRecordRemoveValue(). + * Ownership of the buffer provided in TXTRecordCreate() returns to the client. + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + */ + +void DNSSD_API TXTRecordDeallocate + ( + TXTRecordRef *txtRecord + ); + + +/* TXTRecordSetValue() + * + * Adds a key (optionally with value) to a TXTRecordRef. If the "key" already + * exists in the TXTRecordRef, then the current value will be replaced with + * the new value. + * Keys may exist in four states with respect to a given TXT record: + * - Absent (key does not appear at all) + * - Present with no value ("key" appears alone) + * - Present with empty value ("key=" appears in TXT record) + * - Present with non-empty value ("key=value" appears in TXT record) + * For more details refer to "Data Syntax for DNS-SD TXT Records" in + * <http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt> + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + * key: A null-terminated string which only contains printable ASCII + * values (0x20-0x7E), excluding '=' (0x3D). Keys should be + * 9 characters or fewer (not counting the terminating null). + * + * valueSize: The size of the value. + * + * value: Any binary value. For values that represent + * textual data, UTF-8 is STRONGLY recommended. + * For values that represent textual data, valueSize + * should NOT include the terminating null (if any) + * at the end of the string. + * If NULL, then "key" will be added with no value. + * If non-NULL but valueSize is zero, then "key=" will be + * added with empty value. + * + * return value: Returns kDNSServiceErr_NoError on success. + * Returns kDNSServiceErr_Invalid if the "key" string contains + * illegal characters. + * Returns kDNSServiceErr_NoMemory if adding this key would + * exceed the available storage. + */ + +DNSServiceErrorType DNSSD_API TXTRecordSetValue + ( + TXTRecordRef *txtRecord, + const char *key, + uint8_t valueSize, /* may be zero */ + const void *value /* may be NULL */ + ); + + +/* TXTRecordRemoveValue() + * + * Removes a key from a TXTRecordRef. The "key" must be an + * ASCII string which exists in the TXTRecordRef. + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + * key: A key name which exists in the TXTRecordRef. + * + * return value: Returns kDNSServiceErr_NoError on success. + * Returns kDNSServiceErr_NoSuchKey if the "key" does not + * exist in the TXTRecordRef. + */ + +DNSServiceErrorType DNSSD_API TXTRecordRemoveValue + ( + TXTRecordRef *txtRecord, + const char *key + ); + + +/* TXTRecordGetLength() + * + * Allows you to determine the length of the raw bytes within a TXTRecordRef. + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + * return value: Returns the size of the raw bytes inside a TXTRecordRef + * which you can pass directly to DNSServiceRegister() or + * to DNSServiceUpdateRecord(). + * Returns 0 if the TXTRecordRef is empty. + */ + +uint16_t DNSSD_API TXTRecordGetLength + ( + const TXTRecordRef *txtRecord + ); + + +/* TXTRecordGetBytesPtr() + * + * Allows you to retrieve a pointer to the raw bytes within a TXTRecordRef. + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + * return value: Returns a pointer to the raw bytes inside the TXTRecordRef + * which you can pass directly to DNSServiceRegister() or + * to DNSServiceUpdateRecord(). + */ + +const void * DNSSD_API TXTRecordGetBytesPtr + ( + const TXTRecordRef *txtRecord + ); + + +/********************************************************************************************* + * + * TXT Record Parsing Functions + * + *********************************************************************************************/ + +/* + * A typical calling sequence for TXT record parsing is something like: + * + * Receive TXT record data in DNSServiceResolve() callback + * if (TXTRecordContainsKey(txtLen, txtRecord, "key")) then do something + * val1ptr = TXTRecordGetValuePtr(txtLen, txtRecord, "key1", &len1); + * val2ptr = TXTRecordGetValuePtr(txtLen, txtRecord, "key2", &len2); + * ... + * memcpy(myval1, val1ptr, len1); + * memcpy(myval2, val2ptr, len2); + * ... + * return; + * + * If you wish to retain the values after return from the DNSServiceResolve() + * callback, then you need to copy the data to your own storage using memcpy() + * or similar, as shown in the example above. + * + * If for some reason you need to parse a TXT record you built yourself + * using the TXT record construction functions above, then you can do + * that using TXTRecordGetLength and TXTRecordGetBytesPtr calls: + * TXTRecordGetValue(TXTRecordGetLength(x), TXTRecordGetBytesPtr(x), key, &len); + * + * Most applications only fetch keys they know about from a TXT record and + * ignore the rest. + * However, some debugging tools wish to fetch and display all keys. + * To do that, use the TXTRecordGetCount() and TXTRecordGetItemAtIndex() calls. + */ + +/* TXTRecordContainsKey() + * + * Allows you to determine if a given TXT Record contains a specified key. + * + * txtLen: The size of the received TXT Record. + * + * txtRecord: Pointer to the received TXT Record bytes. + * + * key: A null-terminated ASCII string containing the key name. + * + * return value: Returns 1 if the TXT Record contains the specified key. + * Otherwise, it returns 0. + */ + +int DNSSD_API TXTRecordContainsKey + ( + uint16_t txtLen, + const void *txtRecord, + const char *key + ); + + +/* TXTRecordGetValuePtr() + * + * Allows you to retrieve the value for a given key from a TXT Record. + * + * txtLen: The size of the received TXT Record + * + * txtRecord: Pointer to the received TXT Record bytes. + * + * key: A null-terminated ASCII string containing the key name. + * + * valueLen: On output, will be set to the size of the "value" data. + * + * return value: Returns NULL if the key does not exist in this TXT record, + * or exists with no value (to differentiate between + * these two cases use TXTRecordContainsKey()). + * Returns pointer to location within TXT Record bytes + * if the key exists with empty or non-empty value. + * For empty value, valueLen will be zero. + * For non-empty value, valueLen will be length of value data. + */ + +const void * DNSSD_API TXTRecordGetValuePtr + ( + uint16_t txtLen, + const void *txtRecord, + const char *key, + uint8_t *valueLen + ); + + +/* TXTRecordGetCount() + * + * Returns the number of keys stored in the TXT Record. The count + * can be used with TXTRecordGetItemAtIndex() to iterate through the keys. + * + * txtLen: The size of the received TXT Record. + * + * txtRecord: Pointer to the received TXT Record bytes. + * + * return value: Returns the total number of keys in the TXT Record. + * + */ + +uint16_t DNSSD_API TXTRecordGetCount + ( + uint16_t txtLen, + const void *txtRecord + ); + + +/* TXTRecordGetItemAtIndex() + * + * Allows you to retrieve a key name and value pointer, given an index into + * a TXT Record. Legal index values range from zero to TXTRecordGetCount()-1. + * It's also possible to iterate through keys in a TXT record by simply + * calling TXTRecordGetItemAtIndex() repeatedly, beginning with index zero + * and increasing until TXTRecordGetItemAtIndex() returns kDNSServiceErr_Invalid. + * + * On return: + * For keys with no value, *value is set to NULL and *valueLen is zero. + * For keys with empty value, *value is non-NULL and *valueLen is zero. + * For keys with non-empty value, *value is non-NULL and *valueLen is non-zero. + * + * txtLen: The size of the received TXT Record. + * + * txtRecord: Pointer to the received TXT Record bytes. + * + * itemIndex: An index into the TXT Record. + * + * keyBufLen: The size of the string buffer being supplied. + * + * key: A string buffer used to store the key name. + * On return, the buffer contains a null-terminated C string + * giving the key name. DNS-SD TXT keys are usually + * 9 characters or fewer. To hold the maximum possible + * key name, the buffer should be 256 bytes long. + * + * valueLen: On output, will be set to the size of the "value" data. + * + * value: On output, *value is set to point to location within TXT + * Record bytes that holds the value data. + * + * return value: Returns kDNSServiceErr_NoError on success. + * Returns kDNSServiceErr_NoMemory if keyBufLen is too short. + * Returns kDNSServiceErr_Invalid if index is greater than + * TXTRecordGetCount()-1. + */ + +DNSServiceErrorType DNSSD_API TXTRecordGetItemAtIndex + ( + uint16_t txtLen, + const void *txtRecord, + uint16_t itemIndex, + uint16_t keyBufLen, + char *key, + uint8_t *valueLen, + const void **value + ); + +#if _DNS_SD_LIBDISPATCH +/* +* DNSServiceSetDispatchQueue +* +* Allows you to schedule a DNSServiceRef on a serial dispatch queue for receiving asynchronous +* callbacks. It's the clients responsibility to ensure that the provided dispatch queue is running. +* +* A typical application that uses CFRunLoopRun or dispatch_main on its main thread will +* usually schedule DNSServiceRefs on its main queue (which is always a serial queue) +* using "DNSServiceSetDispatchQueue(sdref, dispatch_get_main_queue());" +* +* If there is any error during the processing of events, the application callback will +* be called with an error code. For shared connections, each subordinate DNSServiceRef +* will get its own error callback. Currently these error callbacks only happen +* if the mDNSResponder daemon is manually terminated or crashes, and the error +* code in this case is kDNSServiceErr_ServiceNotRunning. The application must call +* DNSServiceRefDeallocate to free the DNSServiceRef when it gets such an error code. +* These error callbacks are rare and should not normally happen on customer machines, +* but application code should be written defensively to handle such error callbacks +* gracefully if they occur. +* +* After using DNSServiceSetDispatchQueue on a DNSServiceRef, calling DNSServiceProcessResult +* on the same DNSServiceRef will result in undefined behavior and should be avoided. +* +* Once the application successfully schedules a DNSServiceRef on a serial dispatch queue using +* DNSServiceSetDispatchQueue, it cannot remove the DNSServiceRef from the dispatch queue, or use +* DNSServiceSetDispatchQueue a second time to schedule the DNSServiceRef onto a different serial dispatch +* queue. Once scheduled onto a dispatch queue a DNSServiceRef will deliver events to that queue until +* the application no longer requires that operation and terminates it using DNSServiceRefDeallocate. +* +* service: DNSServiceRef that was allocated and returned to the application, when the +* application calls one of the DNSService API. +* +* queue: dispatch queue where the application callback will be scheduled +* +* return value: Returns kDNSServiceErr_NoError on success. +* Returns kDNSServiceErr_NoMemory if it cannot create a dispatch source +* Returns kDNSServiceErr_BadParam if the service param is invalid or the +* queue param is invalid +*/ + +DNSServiceErrorType DNSSD_API DNSServiceSetDispatchQueue + ( + DNSServiceRef service, + dispatch_queue_t queue + ); +#endif //_DNS_SD_LIBDISPATCH + +#ifdef __APPLE_API_PRIVATE + +#define kDNSServiceCompPrivateDNS "PrivateDNS" +#define kDNSServiceCompMulticastDNS "MulticastDNS" + +#endif //__APPLE_API_PRIVATE + +/* Some C compiler cleverness. We can make the compiler check certain things for us, + * and report errors at compile-time if anything is wrong. The usual way to do this would + * be to use a run-time "if" statement or the conventional run-time "assert" mechanism, but + * then you don't find out what's wrong until you run the software. This way, if the assertion + * condition is false, the array size is negative, and the complier complains immediately. + */ + +struct CompileTimeAssertionChecks_DNS_SD + { + char assert0[(sizeof(union _TXTRecordRef_t) == 16) ? 1 : -1]; + }; + +#ifdef __cplusplus + } +#endif + +#endif /* _DNS_SD_H */ diff --git a/vcnet/dnssdstub.vcxproj b/vcnet/dnssdstub.vcxproj new file mode 100644 index 0000000..bd6a2f2 --- /dev/null +++ b/vcnet/dnssdstub.vcxproj @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dns_sd.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="dns_sd.h" /> + </ItemGroup> + <PropertyGroup Label="Globals"> + <VCProjectVersion>15.0</VCProjectVersion> + <ProjectGuid>{C0899B3A-43E7-4BC3-A785-659E1FD2EA83}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>dnssdstub</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>$(Platform)/$(Configuration)/</OutDir> + <IntDir>$(Platform)/$(Configuration)/$(ProjectName)/</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>$(Platform)/$(Configuration)/</OutDir> + <IntDir>$(Platform)/$(Configuration)/$(ProjectName)/</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeaderFile /> + <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeaderFile /> + <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/vcnet/dnssdstub.vcxproj.filters b/vcnet/dnssdstub.vcxproj.filters new file mode 100644 index 0000000..1bbb2f0 --- /dev/null +++ b/vcnet/dnssdstub.vcxproj.filters @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dns_sd.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="dns_sd.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/vcnet/dnssdstub.vcxproj.user b/vcnet/dnssdstub.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/dnssdstub.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/ippfind.vcxproj b/vcnet/ippfind.vcxproj index ccbfd1e..f75f86a 100644 --- a/vcnet/ippfind.vcxproj +++ b/vcnet/ippfind.vcxproj @@ -1,18 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> <Platform>x64</Platform> </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Release|x64"> <Configuration>Release</Configuration> <Platform>x64</Platform> @@ -22,20 +14,8 @@ <ProjectGuid>{B484DA0C-62C8-4C32-83B6-CCEB58968B85}</ProjectGuid> <RootNamespace>ippfind</RootNamespace> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - <WholeProgramOptimization>true</WholeProgramOptimization> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v141</PlatformToolset> @@ -50,12 +30,6 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -66,47 +40,16 @@ <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>true</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>false</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <Optimization>Disabled</Optimization> - <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MinimalRebuild>true</MinimalRebuild> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level1</WarningLevel> - <DebugInformationFormat>EditAndContinue</DebugInformationFormat> - </ClCompile> - <Link> - <AdditionalDependencies>dnssd.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> - <GenerateDebugInformation>true</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> @@ -114,7 +57,7 @@ <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> @@ -123,7 +66,7 @@ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> - <AdditionalDependencies>dnssd.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <GenerateDebugInformation>true</GenerateDebugInformation> <SubSystem>Console</SubSystem> <RandomizedBaseAddress>false</RandomizedBaseAddress> @@ -131,40 +74,20 @@ <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level1</WarningLevel> - <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - </ClCompile> - <Link> - <AdditionalDependencies>dnssd.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> - <GenerateDebugInformation>true</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <OptimizeReferences>true</OptimizeReferences> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> </Midl> <ClCompile> <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <PrecompiledHeader /> <WarningLevel>Level1</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> - <AdditionalDependencies>dnssd.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <GenerateDebugInformation>true</GenerateDebugInformation> <SubSystem>Console</SubSystem> <OptimizeReferences>true</OptimizeReferences> @@ -178,13 +101,15 @@ <ClCompile Include="..\test\ippfind.c" /> </ItemGroup> <ItemGroup> + <ProjectReference Include="dnssdstub.vcxproj"> + <Project>{c0899b3a-43e7-4bc3-a785-659e1fd2ea83}</Project> + </ProjectReference> <ProjectReference Include="libcups2.vcxproj"> <Project>{cb4aa6f2-3e84-45be-b505-95cd375e8be3}</Project> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference> <ProjectReference Include="regex.vcxproj"> <Project>{18950a1b-d37a-40c7-b2df-c12986c0526e}</Project> - <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> diff --git a/vcnet/ippfind.vcxproj.user b/vcnet/ippfind.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/ippfind.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/ippserver.vcxproj b/vcnet/ippserver.vcxproj index 0b7a840..ac6a897 100644 --- a/vcnet/ippserver.vcxproj +++ b/vcnet/ippserver.vcxproj @@ -1,18 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> <Platform>x64</Platform> </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Release|x64"> <Configuration>Release</Configuration> <Platform>x64</Platform> @@ -22,20 +14,8 @@ <ProjectGuid>{82A03BC7-0746-4B85-8908-3C7A3FAA58A9}</ProjectGuid> <RootNamespace>ippserver</RootNamespace> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - <WholeProgramOptimization>true</WholeProgramOptimization> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v141</PlatformToolset> @@ -50,12 +30,6 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -66,47 +40,16 @@ <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>true</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>false</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <Optimization>Disabled</Optimization> - <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MinimalRebuild>true</MinimalRebuild> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level1</WarningLevel> - <DebugInformationFormat>EditAndContinue</DebugInformationFormat> - </ClCompile> - <Link> - <AdditionalDependencies>dnssd.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> - <GenerateDebugInformation>true</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> @@ -114,7 +57,7 @@ <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> @@ -123,7 +66,7 @@ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> - <AdditionalDependencies>dnssd.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <GenerateDebugInformation>true</GenerateDebugInformation> <SubSystem>Console</SubSystem> <RandomizedBaseAddress>false</RandomizedBaseAddress> @@ -131,40 +74,20 @@ <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level1</WarningLevel> - <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - </ClCompile> - <Link> - <AdditionalDependencies>dnssd.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> - <GenerateDebugInformation>true</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <OptimizeReferences>true</OptimizeReferences> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> </Midl> <ClCompile> <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <PrecompiledHeader /> <WarningLevel>Level1</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> - <AdditionalDependencies>dnssd.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <GenerateDebugInformation>true</GenerateDebugInformation> <SubSystem>Console</SubSystem> <OptimizeReferences>true</OptimizeReferences> @@ -178,10 +101,16 @@ <ClCompile Include="..\test\ippserver.c" /> </ItemGroup> <ItemGroup> + <ProjectReference Include="dnssdstub.vcxproj"> + <Project>{c0899b3a-43e7-4bc3-a785-659e1fd2ea83}</Project> + </ProjectReference> <ProjectReference Include="libcups2.vcxproj"> <Project>{cb4aa6f2-3e84-45be-b505-95cd375e8be3}</Project> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference> + <ProjectReference Include="regex.vcxproj"> + <Project>{18950a1b-d37a-40c7-b2df-c12986c0526e}</Project> + </ProjectReference> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> diff --git a/vcnet/ippserver.vcxproj.user b/vcnet/ippserver.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/ippserver.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/ipptool.vcxproj b/vcnet/ipptool.vcxproj index 8825c74..17c3f78 100644 --- a/vcnet/ipptool.vcxproj +++ b/vcnet/ipptool.vcxproj @@ -1,18 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> <Platform>x64</Platform> </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Release|x64"> <Configuration>Release</Configuration> <Platform>x64</Platform> @@ -22,20 +14,8 @@ <ProjectGuid>{B246D91E-61F2-4433-BFD2-6C2A96FBD4D4}</ProjectGuid> <RootNamespace>ipptool</RootNamespace> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - <WholeProgramOptimization>true</WholeProgramOptimization> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v141</PlatformToolset> @@ -50,12 +30,6 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -66,46 +40,16 @@ <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>true</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>false</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <Optimization>Disabled</Optimization> - <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MinimalRebuild>true</MinimalRebuild> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level1</WarningLevel> - <DebugInformationFormat>EditAndContinue</DebugInformationFormat> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> @@ -113,7 +57,7 @@ <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> @@ -129,32 +73,13 @@ <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level1</WarningLevel> - <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <SubSystem>Console</SubSystem> - <OptimizeReferences>true</OptimizeReferences> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> </Midl> <ClCompile> <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <PrecompiledHeader /> <WarningLevel>Level1</WarningLevel> diff --git a/vcnet/ipptool.vcxproj.user b/vcnet/ipptool.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/ipptool.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/libcups2.vcxproj b/vcnet/libcups2.vcxproj index b60acc3..070a679 100644 --- a/vcnet/libcups2.vcxproj +++ b/vcnet/libcups2.vcxproj @@ -1,18 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> <Platform>x64</Platform> </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Release|x64"> <Configuration>Release</Configuration> <Platform>x64</Platform> @@ -22,19 +14,8 @@ <ProjectGuid>{CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}</ProjectGuid> <RootNamespace>libcups2</RootNamespace> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>DynamicLibrary</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>DynamicLibrary</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>DynamicLibrary</ConfigurationType> <PlatformToolset>v141</PlatformToolset> @@ -48,14 +29,6 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> - </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> @@ -68,53 +41,16 @@ <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>true</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>false</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <Optimization>Disabled</Optimization> - <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>ZLIB_WINAPI;WIN32;DEBUG;_DEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MinimalRebuild>true</MinimalRebuild> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <BufferSecurityCheck>true</BufferSecurityCheck> - <PrecompiledHeader /> - <WarningLevel>Level3</WarningLevel> - <DebugInformationFormat>EditAndContinue</DebugInformationFormat> - </ClCompile> - <Link> - <AdditionalOptions>/NODEFAULTLIB:libcmt %(AdditionalOptions)</AdditionalOptions> - <AdditionalDependencies>ws2_32.lib;advapi32.lib;zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> - <OutputFile>$(OutDir)libcups2.dll</OutputFile> - <ModuleDefinitionFile>..\cups\libcups2.def</ModuleDefinitionFile> - <GenerateDebugInformation>true</GenerateDebugInformation> - <ProgramDatabaseFile>$(Platform)\$(Configuration)\libcups2.pdb</ProgramDatabaseFile> - <SubSystem>Windows</SubSystem> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <ImportLibrary>$(OutDir)libcups2.lib</ImportLibrary> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> @@ -122,7 +58,7 @@ <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>ZLIB_WINAPI;WIN32;DEBUG;_DEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>DEBUG;_DEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> @@ -132,7 +68,7 @@ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> - <AdditionalDependencies>ws2_32.lib;advapi32.lib;zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)libcups2.dll</OutputFile> <ModuleDefinitionFile>..\cups\libcups2.def</ModuleDefinitionFile> <GenerateDebugInformation>true</GenerateDebugInformation> @@ -142,35 +78,6 @@ <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <Optimization>MinSpace</Optimization> - <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>ZLIB_WINAPI;WIN32;DEBUG;NDEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level3</WarningLevel> - <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - </ClCompile> - <Link> - <AdditionalOptions>/NODEFAULTLIB:libcmt %(AdditionalOptions)</AdditionalOptions> - <AdditionalDependencies>ws2_32.lib;advapi32.lib;zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> - <OutputFile>$(OutDir)libcups2.dll</OutputFile> - <ModuleDefinitionFile>..\cups\libcups2.def</ModuleDefinitionFile> - <GenerateDebugInformation>true</GenerateDebugInformation> - <ProgramDatabaseFile>libcups2.pdb</ProgramDatabaseFile> - <SubSystem>Windows</SubSystem> - <OptimizeReferences>true</OptimizeReferences> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <ImportLibrary>$(OutDir)libcups2.lib</ImportLibrary> - <TargetMachine>MachineX86</TargetMachine> - </Link> - <PostBuildEvent> - <Command /> - </PostBuildEvent> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> @@ -178,14 +85,14 @@ <ClCompile> <Optimization>MinSpace</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;..\vcnet\regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>ZLIB_WINAPI;WIN32;DEBUG;NDEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>DEBUG;NDEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <PrecompiledHeader /> <WarningLevel>Level3</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> - <AdditionalDependencies>ws2_32.lib;advapi32.lib;zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)libcups2.dll</OutputFile> <ModuleDefinitionFile>..\cups\libcups2.def</ModuleDefinitionFile> <GenerateDebugInformation>true</GenerateDebugInformation> @@ -207,125 +114,86 @@ xcopy /I/Y "$(TargetPath)" <ItemGroup> <ClCompile Include="..\cups\adminutil.c" /> <ClCompile Include="..\cups\array.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\auth.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> - <ClCompile Include="..\cups\backend.c" /> <ClCompile Include="..\cups\debug.c" /> <ClCompile Include="..\cups\dest-job.c" /> <ClCompile Include="..\cups\dest-localization.c" /> <ClCompile Include="..\cups\dest-options.c" /> <ClCompile Include="..\cups\dest.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\dir.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\encode.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\file.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\getdevices.c" /> <ClCompile Include="..\cups\getputfile.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\globals.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\hash.c" /> <ClCompile Include="..\cups\http-addr.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\http-addrlist.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\http-support.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\http.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\ipp-support.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\ipp.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\langprintf.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\language.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\md5.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\md5passwd.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\notify.c" /> <ClCompile Include="..\cups\options.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\ppd-attr.c" /> @@ -338,50 +206,35 @@ xcopy /I/Y "$(TargetPath)" <ClCompile Include="..\cups\ppd-page.c" /> <ClCompile Include="..\cups\ppd-util.c" /> <ClCompile Include="..\cups\ppd.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\pwg-media.c" /> <ClCompile Include="..\cups\request.c" /> - <ClCompile Include="..\cups\snmp.c" /> <ClCompile Include="..\cups\snprintf.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\string.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\tempfile.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\thread.c" /> <ClCompile Include="..\cups\tls.c" /> <ClCompile Include="..\cups\transcode.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\usersys.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="..\cups\util.c"> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> </ItemGroup> @@ -391,6 +244,7 @@ xcopy /I/Y "$(TargetPath)" </ItemGroup> <ItemGroup> <ClInclude Include="..\cups\adminutil.h" /> + <ClInclude Include="..\cups\array-private.h" /> <ClInclude Include="..\cups\array.h" /> <ClInclude Include="..\cups\backend.h" /> <ClInclude Include="..\cups\cups-private.h" /> @@ -402,22 +256,25 @@ xcopy /I/Y "$(TargetPath)" <ClInclude Include="..\cups\globals.h" /> <ClInclude Include="..\cups\http-private.h" /> <ClInclude Include="..\cups\http.h" /> - <ClInclude Include="..\cups\i18n.h" /> <ClInclude Include="..\cups\ipp-private.h" /> <ClInclude Include="..\cups\ipp.h" /> + <ClInclude Include="..\cups\language-private.h" /> <ClInclude Include="..\cups\language.h" /> - <ClInclude Include="..\cups\md5-apple.h" /> - <ClInclude Include="..\cups\md5.h" /> - <ClInclude Include="..\cups\normalize.h" /> + <ClInclude Include="..\cups\md5-private.h" /> <ClInclude Include="..\cups\ppd-private.h" /> <ClInclude Include="..\cups\ppd.h" /> <ClInclude Include="..\cups\pwg-private.h" /> + <ClInclude Include="..\cups\pwg.h" /> <ClInclude Include="..\cups\string-private.h" /> <ClInclude Include="..\cups\thread-private.h" /> <ClInclude Include="..\cups\transcode.h" /> + <ClInclude Include="..\cups\versioning.h" /> <ClInclude Include="config.h" /> </ItemGroup> <ItemGroup> + <ProjectReference Include="dnssdstub.vcxproj"> + <Project>{c0899b3a-43e7-4bc3-a785-659e1fd2ea83}</Project> + </ProjectReference> <ProjectReference Include="regex.vcxproj"> <Project>{18950a1b-d37a-40c7-b2df-c12986c0526e}</Project> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> @@ -425,12 +282,12 @@ xcopy /I/Y "$(TargetPath)" </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> - <Import Project="packages\zlib128-vc140-static-32_64.1.2.8\build\native\zlib128-vc140-static-32_64.targets" Condition="Exists('packages\zlib128-vc140-static-32_64.1.2.8\build\native\zlib128-vc140-static-32_64.targets')" /> + <Import Project="packages\zlib-vc140-static-64.1.2.11\build\native\zlib-vc140-static-64.targets" Condition="Exists('packages\zlib-vc140-static-64.1.2.11\build\native\zlib-vc140-static-64.targets')" /> </ImportGroup> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('packages\zlib128-vc140-static-32_64.1.2.8\build\native\zlib128-vc140-static-32_64.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\zlib128-vc140-static-32_64.1.2.8\build\native\zlib128-vc140-static-32_64.targets'))" /> + <Error Condition="!Exists('packages\zlib-vc140-static-64.1.2.11\build\native\zlib-vc140-static-64.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\zlib-vc140-static-64.1.2.11\build\native\zlib-vc140-static-64.targets'))" /> </Target> </Project>
\ No newline at end of file diff --git a/vcnet/libcups2.vcxproj.filters b/vcnet/libcups2.vcxproj.filters index 7f6f301..c68ac0a 100644 --- a/vcnet/libcups2.vcxproj.filters +++ b/vcnet/libcups2.vcxproj.filters @@ -24,9 +24,6 @@ <ClCompile Include="..\cups\auth.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\cups\backend.c"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\cups\debug.c"> <Filter>Source Files</Filter> </ClCompile> @@ -108,9 +105,6 @@ <ClCompile Include="..\cups\request.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="..\cups\snmp.c"> - <Filter>Source Files</Filter> - </ClCompile> <ClCompile Include="..\cups\snprintf.c"> <Filter>Source Files</Filter> </ClCompile> @@ -209,9 +203,6 @@ <ClInclude Include="..\cups\http.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\cups\i18n.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="..\cups\ipp-private.h"> <Filter>Header Files</Filter> </ClInclude> @@ -221,15 +212,6 @@ <ClInclude Include="..\cups\language.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="..\cups\md5-apple.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\cups\md5.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\cups\normalize.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="..\cups\ppd-private.h"> <Filter>Header Files</Filter> </ClInclude> @@ -248,5 +230,20 @@ <ClInclude Include="..\cups\transcode.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="..\cups\language-private.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\cups\array-private.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\cups\md5-private.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\cups\pwg.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\cups\versioning.h"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> </Project>
\ No newline at end of file diff --git a/vcnet/libcups2.vcxproj.user b/vcnet/libcups2.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/libcups2.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/libcupsimage2.vcxproj b/vcnet/libcupsimage2.vcxproj index 7d8b9ee..72d9ffe 100644 --- a/vcnet/libcupsimage2.vcxproj +++ b/vcnet/libcupsimage2.vcxproj @@ -1,18 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> <Platform>x64</Platform> </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> <ProjectConfiguration Include="Release|x64"> <Configuration>Release</Configuration> <Platform>x64</Platform> @@ -21,19 +13,8 @@ <PropertyGroup Label="Globals"> <ProjectGuid>{CB4AA6F2-3E84-45BE-B505-95CD375E1234}</ProjectGuid> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>DynamicLibrary</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>DynamicLibrary</ConfigurationType> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>DynamicLibrary</ConfigurationType> <PlatformToolset>v141</PlatformToolset> @@ -47,14 +28,6 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> - </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> @@ -67,52 +40,16 @@ <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>true</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> - <LinkIncremental>false</LinkIncremental> - </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <Optimization>Disabled</Optimization> - <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MinimalRebuild>true</MinimalRebuild> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <BufferSecurityCheck>true</BufferSecurityCheck> - <PrecompiledHeader /> - <WarningLevel>Level3</WarningLevel> - <DebugInformationFormat>EditAndContinue</DebugInformationFormat> - </ClCompile> - <Link> - <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> - <OutputFile>$(OutDir)libcupsimage2.dll</OutputFile> - <ModuleDefinitionFile>..\filter\libcupsimage2.def</ModuleDefinitionFile> - <GenerateDebugInformation>true</GenerateDebugInformation> - <ProgramDatabaseFile>$(Platform)\$(Configuration)\libcupsimage2.pdb</ProgramDatabaseFile> - <SubSystem>Windows</SubSystem> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <ImportLibrary>$(OutDir)libcupsimage2.lib</ImportLibrary> - <TargetMachine>MachineX86</TargetMachine> - </Link> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> @@ -120,7 +57,7 @@ <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> @@ -140,34 +77,6 @@ <TargetMachine>MachineX64</TargetMachine> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <Optimization>MinSpace</Optimization> - <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> - <PrecompiledHeader /> - <WarningLevel>Level3</WarningLevel> - <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> - </ClCompile> - <Link> - <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> - <OutputFile>$(OutDir)libcupsimage2.dll</OutputFile> - <ModuleDefinitionFile>..\filter\libcupsimage2.def</ModuleDefinitionFile> - <GenerateDebugInformation>true</GenerateDebugInformation> - <ProgramDatabaseFile>libcupsimage2.pdb</ProgramDatabaseFile> - <SubSystem>Windows</SubSystem> - <OptimizeReferences>true</OptimizeReferences> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <ImportLibrary>$(OutDir)libcupsimage2.lib</ImportLibrary> - <TargetMachine>MachineX86</TargetMachine> - </Link> - <PostBuildEvent> - <Command /> - </PostBuildEvent> - </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Midl> <TargetEnvironment>X64</TargetEnvironment> @@ -175,7 +84,7 @@ <ClCompile> <Optimization>MinSpace</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;LIBCUPS2_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <PrecompiledHeader /> <WarningLevel>Level3</WarningLevel> diff --git a/vcnet/libcupsimage2.vcxproj.user b/vcnet/libcupsimage2.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/libcupsimage2.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/packages.config b/vcnet/packages.config new file mode 100644 index 0000000..17b6de8 --- /dev/null +++ b/vcnet/packages.config @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="zlib-vc140-static-64" version="1.2.11" targetFramework="native" /> +</packages>
\ No newline at end of file diff --git a/vcnet/regex.vcxproj b/vcnet/regex.vcxproj index 48a34bb..19cc230 100644 --- a/vcnet/regex.vcxproj +++ b/vcnet/regex.vcxproj @@ -22,7 +22,6 @@ <ProjectGuid>{18950A1B-D37A-40C7-B2DF-C12986C0526E}</ProjectGuid> <RootNamespace>regex</RootNamespace> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> @@ -68,29 +67,29 @@ </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;REGEX_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_DEBUG;_WINDOWS;_USRDLL;REGEX_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> @@ -110,7 +109,7 @@ <Optimization>MaxSpeed</Optimization> <IntrinsicFunctions>true</IntrinsicFunctions> <AdditionalIncludeDirectories>regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;REGEX_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NDEBUG;_WINDOWS;_USRDLL;REGEX_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <FunctionLevelLinking>true</FunctionLevelLinking> <PrecompiledHeader /> @@ -133,7 +132,7 @@ <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;REGEX_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_DEBUG;_WINDOWS;_USRDLL;REGEX_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> @@ -156,7 +155,7 @@ <Optimization>MaxSpeed</Optimization> <IntrinsicFunctions>true</IntrinsicFunctions> <AdditionalIncludeDirectories>regex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;REGEX_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NDEBUG;_WINDOWS;_USRDLL;REGEX_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <FunctionLevelLinking>true</FunctionLevelLinking> <PrecompiledHeader /> diff --git a/vcnet/regex.vcxproj.user b/vcnet/regex.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/regex.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/testfile.vcxproj b/vcnet/testfile.vcxproj index c89e57b..787b3a0 100644 --- a/vcnet/testfile.vcxproj +++ b/vcnet/testfile.vcxproj @@ -1,27 +1,26 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> + <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> - <Platform>Win32</Platform> + <Platform>x64</Platform> </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> + <ProjectConfiguration Include="Release|x64"> <Configuration>Release</Configuration> - <Platform>Win32</Platform> + <Platform>x64</Platform> </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>{CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}</ProjectGuid> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v141</PlatformToolset> <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v141</PlatformToolset> <CharacterSet>MultiByte</CharacterSet> @@ -29,11 +28,11 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> </ImportGroup> @@ -41,27 +40,27 @@ <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MinimalRebuild>true</MinimalRebuild> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> - <PrecompiledHeader /> + <PrecompiledHeader> + </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> - <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> <OutputFile>$(OutDir)testfile.exe</OutputFile> @@ -69,18 +68,20 @@ <ProgramDatabaseFile>$(OutDir)testfile.pdb</ProgramDatabaseFile> <SubSystem>Console</SubSystem> <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> + <DataExecutionPrevention> + </DataExecutionPrevention> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <PrecompiledHeader /> + <PrecompiledHeader> + </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> - <DebugInformationFormat /> + <DebugInformationFormat> + </DebugInformationFormat> </ClCompile> <Link> <OutputFile>$(OutDir)testfile.exe</OutputFile> @@ -89,8 +90,8 @@ <OptimizeReferences>true</OptimizeReferences> <EnableCOMDATFolding>true</EnableCOMDATFolding> <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> + <DataExecutionPrevention> + </DataExecutionPrevention> </Link> </ItemDefinitionGroup> <ItemGroup> diff --git a/vcnet/testfile.vcxproj.user b/vcnet/testfile.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/testfile.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/vcnet/testhttp.vcxproj b/vcnet/testhttp.vcxproj index c61a3c7..1011123 100644 --- a/vcnet/testhttp.vcxproj +++ b/vcnet/testhttp.vcxproj @@ -1,27 +1,26 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> + <ProjectConfiguration Include="Debug|x64"> <Configuration>Debug</Configuration> - <Platform>Win32</Platform> + <Platform>x64</Platform> </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> + <ProjectConfiguration Include="Release|x64"> <Configuration>Release</Configuration> - <Platform>Win32</Platform> + <Platform>x64</Platform> </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>{90B0058C-8393-411F-BD3B-E2C831D4E883}</ProjectGuid> <Keyword>Win32Proj</Keyword> - <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v141</PlatformToolset> <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v141</PlatformToolset> <CharacterSet>MultiByte</CharacterSet> @@ -29,11 +28,11 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> </ImportGroup> @@ -41,27 +40,27 @@ <PropertyGroup> <_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>true</LinkIncremental> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\</IntDir> + <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <LinkIncremental>false</LinkIncremental> </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> <Optimization>Disabled</Optimization> <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <MinimalRebuild>true</MinimalRebuild> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> - <PrecompiledHeader /> + <PrecompiledHeader> + </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> - <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> <OutputFile>$(OutDir)testhttp.exe</OutputFile> @@ -69,18 +68,20 @@ <ProgramDatabaseFile>$(OutDir)testhttp.pdb</ProgramDatabaseFile> <SubSystem>Console</SubSystem> <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> + <DataExecutionPrevention> + </DataExecutionPrevention> </Link> </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> <AdditionalIncludeDirectories>..\vcnet;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <PrecompiledHeader /> + <PrecompiledHeader> + </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> - <DebugInformationFormat /> + <DebugInformationFormat> + </DebugInformationFormat> </ClCompile> <Link> <OutputFile>$(OutDir)testhttp.exe</OutputFile> @@ -89,8 +90,8 @@ <OptimizeReferences>true</OptimizeReferences> <EnableCOMDATFolding>true</EnableCOMDATFolding> <RandomizedBaseAddress>false</RandomizedBaseAddress> - <DataExecutionPrevention /> - <TargetMachine>MachineX86</TargetMachine> + <DataExecutionPrevention> + </DataExecutionPrevention> </Link> </ItemDefinitionGroup> <ItemGroup> diff --git a/vcnet/testhttp.vcxproj.user b/vcnet/testhttp.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/vcnet/testhttp.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project>
\ No newline at end of file diff --git a/xcode/config.h b/xcode/config.h index 3843378..b8e1e0e 100644 --- a/xcode/config.h +++ b/xcode/config.h @@ -22,8 +22,8 @@ * Version of software... */ -#define CUPS_SVERSION "CUPS v2.2.8" -#define CUPS_MINIMAL "CUPS/2.2.8" +#define CUPS_SVERSION "CUPS v2.2.9" +#define CUPS_MINIMAL "CUPS/2.2.9" /* |