From: Michael Sweet Date: Tue, 15 Mar 2016 14:43:21 +0000 (-0400) Subject: Import CUPS v2.1rc1 X-Git-Tag: release-2.1rc1^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be91b849f02ee6456f5d00ea4af276216c8fbc64;p=thirdparty%2Fcups.git Import CUPS v2.1rc1 --- diff --git a/CHANGES-2.0.txt b/CHANGES-2.0.txt index 81c8dcf54f..dc46f035fd 100644 --- a/CHANGES-2.0.txt +++ b/CHANGES-2.0.txt @@ -1,6 +1,20 @@ CHANGES-2.0.txt --------------- +CHANGES IN CUPS V2.0.4 + + - Fixed a bug in cupsRasterWritePixels (STR #4650) + - Fixed redirection in the web interface (STR #4538) + - The IPP backend did not respond to side-channel requests (STR #4645) + - The scheduler did not start all pending jobs at once (STR #4646) + - The web search incorrectly searched time-at-xxx values (STR #4652) + - Fixed an RPM spec file issue (STR #4657) + - The scheduler incorrectly started jobs while canceling multiple jobs + (STR #4648) + - Fixed processing of server overrides without port numbers (STR #4675) + - Documentation changes (STR #4651, STR #4674) + + CHANGES IN CUPS V2.0.3 - Security: Fixed CERT VU #810572 exploiting the dynamic linker diff --git a/CHANGES.txt b/CHANGES.txt index 113637de41..4adbe798da 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,19 @@ -CHANGES.txt - 2.1b1 - 2015-06-03 --------------------------------- +CHANGES.txt - 2.1rc1 - 2015-07-31 +--------------------------------- + +CHANGES IN CUPS V2.1rc1 + + - Added support for 3D printers (basic types only, no built-in filters) + based on PWG white paper. + - Fixed bugs in the new journald support (STR #4655, STR #4658, + STR #4661) + - Fixed domain socket support on Linux (STR #4679) + - Fixed signal handlers in the dnssd and usb backends (STR #4671) + - in sections now applies to all operations when + used by itself (STR #4659) + - Configure script changes for systemd support (STR #4669) + - Updated autoconf sources to use newer form of AC_INIT (STR #4664) + CHANGES IN CUPS V2.1b1 diff --git a/INSTALL.txt b/INSTALL.txt index 0608c3547a..28e4eefd32 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,5 +1,5 @@ -INSTALL - CUPS v2.1b1 - 2015-06-08 ----------------------------------- +INSTALL - CUPS v2.1rc1 - 2015-07-31 +----------------------------------- This file describes how to compile and install CUPS from source code. For more information on CUPS see the file called "README.txt". A complete change log can diff --git a/README.txt b/README.txt index a6db7bfb94..c21935fa86 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -README - CUPS v2.1b1 - 2015-06-08 ---------------------------------- +README - CUPS v2.1rc1 - 2015-07-31 +---------------------------------- Looking for compile instructions? Read the file "INSTALL.txt" instead... diff --git a/backend/dnssd.c b/backend/dnssd.c index e76431b0b1..85ce3bba4f 100644 --- a/backend/dnssd.c +++ b/backend/dnssd.c @@ -1,5 +1,5 @@ /* - * "$Id: dnssd.c 12659 2015-05-22 19:06:41Z msweet $" + * "$Id: dnssd.c 12818 2015-07-31 13:29:25Z msweet $" * * DNS-SD discovery backend for CUPS. * @@ -1289,7 +1289,7 @@ sigterm_handler(int sig) /* I - Signal number (unused) */ (void)sig; if (job_canceled) - exit(CUPS_BACKEND_OK); + _exit(CUPS_BACKEND_OK); else job_canceled = 1; } @@ -1330,5 +1330,5 @@ unquote(char *dst, /* I - Destination buffer */ /* - * End of "$Id: dnssd.c 12659 2015-05-22 19:06:41Z msweet $". + * End of "$Id: dnssd.c 12818 2015-07-31 13:29:25Z msweet $". */ diff --git a/backend/ipp.c b/backend/ipp.c index 96957eaaf0..6c3e7df02c 100644 --- a/backend/ipp.c +++ b/backend/ipp.c @@ -1,5 +1,5 @@ /* - * "$Id: ipp.c 12676 2015-05-28 01:19:14Z msweet $" + * "$Id: ipp.c 12757 2015-06-24 19:55:31Z msweet $" * * IPP backend for CUPS. * @@ -1571,6 +1571,7 @@ main(int argc, /* I - Number of command-line args */ FD_ZERO(&input); FD_SET(fd, &input); FD_SET(snmp_fd, &input); + FD_SET(CUPS_SC_FD, &input); while (select(fd > snmp_fd ? fd + 1 : snmp_fd + 1, &input, NULL, NULL, NULL) <= 0 && !job_canceled); @@ -3483,5 +3484,5 @@ update_reasons(ipp_attribute_t *attr, /* I - printer-state-reasons or NULL */ } /* - * End of "$Id: ipp.c 12676 2015-05-28 01:19:14Z msweet $". + * End of "$Id: ipp.c 12757 2015-06-24 19:55:31Z msweet $". */ diff --git a/backend/usb-darwin.c b/backend/usb-darwin.c index d9dbde3353..ba516dec6b 100644 --- a/backend/usb-darwin.c +++ b/backend/usb-darwin.c @@ -1,7 +1,7 @@ /* - * "$Id: usb-darwin.c 12672 2015-05-28 00:10:27Z msweet $" + * "$Id: usb-darwin.c 12818 2015-07-31 13:29:25Z msweet $" * - * Copyright 2005-2014 Apple Inc. All rights reserved. + * Copyright 2005-2015 Apple Inc. All rights reserved. * * IMPORTANT: This Apple software is supplied to you by Apple Computer, * Inc. ("Apple") in consideration of your agreement to the following @@ -95,7 +95,7 @@ extern char **environ; #define WAIT_SIDE_DELAY 3 #define DEFAULT_TIMEOUT 5000L -#define USB_INTERFACE_KIND CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID190) +#define USB_INTERFACE_KIND CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID245) #define kUSBLanguageEnglish 0x409 #define PRINTER_POLLING_INTERVAL 5 /* seconds */ @@ -140,7 +140,7 @@ struct crashreporter_annotations_t gCRAnnotations #define kUSBPrintingProtocolBidirectional 2 #define kUSBPrintingProtocolIPP 4 -typedef IOUSBInterfaceInterface190 **printer_interface_t; +typedef IOUSBInterfaceInterface245 **printer_interface_t; typedef struct iodevice_request_s /**** Device request ****/ { @@ -241,6 +241,7 @@ typedef struct globals_s ssize_t debug_bytes; /* Current bytes to read */ #endif /* DEBUG_WRITES */ + Boolean use_generic_class_driver; Boolean wait_eof; int drain_output; /* Drain all pending output */ int bidi_flag; /* 0=unidirectional, 1=bidirectional */ @@ -300,10 +301,10 @@ static const char *next_line (const char *buffer); static void parse_pserror (char *sockBuffer, int len); #endif /* PARSE_PS_ERRORS */ -static IOUSBInterfaceInterface220 **usb_interface220_for_service(io_service_t usbClass); +static printer_interface_t usb_printer_interface_interface(io_service_t usbClass); static IOUSBDeviceInterface **usb_device_interface_for_device(io_service_t usbDevice); -static CFStringRef copy_printer_interface_deviceid(IOUSBInterfaceInterface220 **printer, UInt8 alternateSetting); -static CFStringRef copy_printer_interface_indexed_description(IOUSBInterfaceInterface220 ** printer, UInt8 index, UInt16 language); +static CFStringRef copy_printer_interface_deviceid(printer_interface_t printer, UInt8 alternateSetting); +static CFStringRef copy_printer_interface_indexed_description(printer_interface_t printer, UInt8 index, UInt16 language); static CFStringRef deviceIDCopyManufacturer(CFStringRef deviceID); static CFStringRef deviceIDCopyModel(CFStringRef deviceID); static CFStringRef deviceIDCopySerialNumber(CFStringRef deviceID); @@ -957,6 +958,27 @@ static void *read_thread(void *reference) } while (g.wait_eof || !g.read_thread_stop); /* Abort from main thread tests error here */ + /* Workaround for usb race condition. */ + if (!g.wait_eof && g.use_generic_class_driver) + { + const char *pdl = getenv("FINAL_CONTENT_TYPE"); + if (pdl && strcmp(pdl, "application/vnd.cups-postscript") == 0) + { + while (readstatus == kIOReturnSuccess && ((rbytes > 0 && readbuffer[rbytes-1] != 0x4) || rbytes == 0)) + { + start = mach_absolute_time(); + + rbytes = sizeof(readbuffer); + readstatus = (*g.classdriver)->ReadPipe(g.classdriver, readbuffer, &rbytes); + if (readstatus == kIOReturnSuccess && rbytes > 0 && readbuffer[rbytes-1] == 0x4) + break; + + /* Make sure this loop executes no more than once every 250 miliseconds... */ + mach_wait_until(start + delay); + } + } + } + /* * Let the main thread know that we have completed the read thread... */ @@ -1163,19 +1185,19 @@ static void device_added(void *userdata, io_iterator_t iterator) while (reference->keepRunning && (intf = IOIteratorNext(intfIterator))) { - IOUSBInterfaceInterface220 **intf220 = usb_interface220_for_service(intf); - if (intf220 != NULL) + printer_interface_t printerIntf = usb_printer_interface_interface(intf); + if (printerIntf != NULL) { UInt8 intfClass = 0, intfSubclass = 0, intfProtocol = 0, intfNumber = 0; - (*intf220)->GetInterfaceClass(intf220, &intfClass); - (*intf220)->GetInterfaceSubClass(intf220, &intfSubclass); - (*intf220)->GetInterfaceProtocol(intf220, &intfProtocol); - (*intf220)->GetInterfaceNumber(intf220, &intfNumber); + (*printerIntf)->GetInterfaceClass(printerIntf, &intfClass); + (*printerIntf)->GetInterfaceSubClass(printerIntf, &intfSubclass); + (*printerIntf)->GetInterfaceProtocol(printerIntf, &intfProtocol); + (*printerIntf)->GetInterfaceNumber(printerIntf, &intfNumber); if (IsPrintingInterface(intfClass, intfSubclass, intfProtocol)) { - CFStringRef deviceIDString = copy_printer_interface_deviceid(intf220, 0); + CFStringRef deviceIDString = copy_printer_interface_deviceid(printerIntf, 0); if (deviceIDString != NULL) { reference->keepRunning = reference->callback(userdata, intf, deviceIDString, locationID, intfNumber, 0); @@ -1184,7 +1206,7 @@ static void device_added(void *userdata, io_iterator_t iterator) } IOUSBInterfaceDescriptor *intfDesc = NULL; - while (reference->keepRunning && (intfDesc = (IOUSBInterfaceDescriptor *)(*intf220)->FindNextAssociatedDescriptor(intf220, intfDesc, kUSBInterfaceDesc))) + while (reference->keepRunning && (intfDesc = (IOUSBInterfaceDescriptor *)(*printerIntf)->FindNextAssociatedDescriptor(printerIntf, intfDesc, kUSBInterfaceDesc))) { intfClass = intfDesc->bInterfaceClass; intfSubclass = intfDesc->bInterfaceSubClass; @@ -1192,7 +1214,7 @@ static void device_added(void *userdata, io_iterator_t iterator) if ((IsPrintingInterface(intfClass, intfSubclass, intfProtocol))) { - CFStringRef deviceIDString = copy_printer_interface_deviceid(intf220, intfDesc->bAlternateSetting); + CFStringRef deviceIDString = copy_printer_interface_deviceid(printerIntf, intfDesc->bAlternateSetting); if (deviceIDString != NULL) { reference->keepRunning = reference->callback(userdata, intf, deviceIDString, locationID, intfNumber, intfDesc->bAlternateSetting); @@ -1200,7 +1222,7 @@ static void device_added(void *userdata, io_iterator_t iterator) } } } - (*intf220)->Release(intf220); + (*printerIntf)->Release(printerIntf); } IOObjectRelease(intf); } @@ -1262,7 +1284,7 @@ static Boolean list_device_cb(void *refcon, io_service_t obj, CFStringRef device cupsBackendReport("direct", uristr, make_modelstr, make_modelstr, idstr, NULL); - + if (make != NULL) CFRelease(make); if (model != NULL) CFRelease(model); if (serial != NULL) CFRelease(serial); @@ -1519,6 +1541,7 @@ static kern_return_t load_printerdriver(CFStringRef *driverBundlePath) { *driverBundlePath = IORegistryEntryCreateCFProperty(g.printer_obj, kUSBClassDriverProperty, NULL, kNilOptions); + g.use_generic_class_driver = (*driverBundlePath == NULL || (CFStringCompare(*driverBundlePath, kUSBGenericTOPrinterClassDriver, 0x0) == kCFCompareEqualTo)); kr = load_classdriver(*driverBundlePath, interface, &g.classdriver); if (kr != kIOReturnSuccess) @@ -1529,15 +1552,15 @@ static kern_return_t load_printerdriver(CFStringRef *driverBundlePath) return kr; } -static IOUSBInterfaceInterface220 **usb_interface220_for_service(io_service_t usbClass) +static printer_interface_t usb_printer_interface_interface(io_service_t usbClass) { - IOUSBInterfaceInterface220 ** intf = NULL; + printer_interface_t intf = NULL; IOCFPlugInInterface **plugin = NULL; SInt32 score; int kr = IOCreatePlugInInterfaceForService(usbClass, kIOUSBInterfaceUserClientTypeID, kIOCFPlugInInterfaceID, &plugin, &score); if (kr == kIOReturnSuccess) { - (*plugin)->QueryInterface(plugin, CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID220), (LPVOID *)&intf); + (*plugin)->QueryInterface(plugin, USB_INTERFACE_KIND, (LPVOID *)&intf); IODestroyPlugInInterface(plugin); } @@ -1561,7 +1584,7 @@ static IOUSBDeviceInterface **usb_device_interface_for_device(io_service_t usbDe } -static CFStringRef copy_printer_interface_deviceid(IOUSBInterfaceInterface220 **printer, UInt8 alternateSetting) +static CFStringRef copy_printer_interface_deviceid(printer_interface_t printer, UInt8 alternateSetting) { // I have tried to make this function as neat as I can, but the possibility of needing to resend // a request to get the entire string makes it hideous... @@ -1722,10 +1745,10 @@ static CFStringRef copy_printer_interface_deviceid(IOUSBInterfaceInterface220 ** if (manufacturer != NULL) CFRelease(manufacturer); - + if (model != NULL) CFRelease(model); - + if (serial != NULL) CFRelease(serial); @@ -1734,11 +1757,11 @@ static CFStringRef copy_printer_interface_deviceid(IOUSBInterfaceInterface220 ** CFRelease(ret); return NULL; } - + return ret; } -static CFStringRef copy_printer_interface_indexed_description(IOUSBInterfaceInterface220 ** printer, UInt8 index, UInt16 language) +static CFStringRef copy_printer_interface_indexed_description(printer_interface_t printer, UInt8 index, UInt16 language) { IOReturn err; UInt8 description[256]; // Max possible descriptor length @@ -2262,13 +2285,13 @@ sigterm_handler(int sig) /* I - Signal */ while (waitpid(child_pid, &status, 0) < 0 && errno == EINTR); if (WIFEXITED(status)) - exit(WEXITSTATUS(status)); + _exit(WEXITSTATUS(status)); else if (status == SIGTERM || status == SIGKILL) - exit(0); + _exit(0); else { - fprintf(stderr, "DEBUG: Child crashed on signal %d\n", status); - exit(CUPS_BACKEND_STOP); + write(2, "DEBUG: Child crashed.\n", 22); + _exit(CUPS_BACKEND_STOP); } } #endif /* __i386__ || __x86_64__ */ @@ -2460,11 +2483,11 @@ static void get_device_id(cups_sc_status_t *status, if (g.printer_obj != IO_OBJECT_NULL) { - IOUSBInterfaceInterface220 **intf220 = usb_interface220_for_service(g.printer_obj); - if (intf220) + printer_interface_t printerIntf = usb_printer_interface_interface(g.printer_obj); + if (printerIntf) { - deviceIDString = copy_printer_interface_deviceid(intf220, g.alternateSetting); - (*intf220)->Release(intf220); + deviceIDString = copy_printer_interface_deviceid(printerIntf, g.alternateSetting); + (*printerIntf)->Release(printerIntf); } } @@ -2514,5 +2537,5 @@ log_usb_class_driver(int is_64bit) /* I - Is the USB class driver 64-bit? */ /* - * End of "$Id: usb-darwin.c 12672 2015-05-28 00:10:27Z msweet $". + * End of "$Id: usb-darwin.c 12818 2015-07-31 13:29:25Z msweet $". */ diff --git a/cgi-bin/ipp-var.c b/cgi-bin/ipp-var.c index f99ee41d80..1a08960d76 100644 --- a/cgi-bin/ipp-var.c +++ b/cgi-bin/ipp-var.c @@ -1,5 +1,5 @@ /* - * "$Id: ipp-var.c 12700 2015-06-08 18:32:35Z msweet $" + * "$Id: ipp-var.c 12768 2015-06-30 16:13:38Z msweet $" * * CGI <-> IPP variable routines for CUPS. * @@ -222,6 +222,9 @@ cgiGetIPPObjects(ipp_t *response, /* I - IPP response */ break; case IPP_TAG_INTEGER : + if (!strncmp(ippGetName(attr), "time-at-", 8)) + break; /* Ignore time-at-xxx */ + for (i = 0; !add && i < attr->num_values; i ++) { char buf[255]; /* Number buffer */ @@ -1547,5 +1550,5 @@ cgiText(const char *message) /* I - Message */ /* - * End of "$Id: ipp-var.c 12700 2015-06-08 18:32:35Z msweet $". + * End of "$Id: ipp-var.c 12768 2015-06-30 16:13:38Z msweet $". */ diff --git a/conf/mime.types b/conf/mime.types index 002674e43a..68759232a5 100644 --- a/conf/mime.types +++ b/conf/mime.types @@ -7,7 +7,7 @@ # VERSIONS OF CUPS. Instead, create a "local.types" file that # reflects your local configuration changes. # -# Copyright 2007-2014 by Apple Inc. +# Copyright 2007-2015 by Apple Inc. # Copyright 1997-2007 by Easy Software Products. # # These coded instructions, statements, and computer programs are the @@ -81,6 +81,13 @@ application/postscript ai eps ps string(0,%!) string(0,<04>%!) \ (contains(0,4096,<0a>%!) + \ !contains(0,4096,"ENTER LANGUAGE"))) +application/g-code gcode +application/sla stl string(0,"solid ") + contains(0,4096,"facet") + contains(0,4096,"vertex") +application/vnd.makerbot-s3g x3g +model/amf amf +model/vnd.collada+xml dae + + ######################################################################## # # Image files... diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4 index f1a9263c22..63526682fe 100644 --- a/config-scripts/cups-common.m4 +++ b/config-scripts/cups-common.m4 @@ -1,9 +1,9 @@ dnl -dnl "$Id: cups-common.m4 12697 2015-06-08 17:42:16Z msweet $" +dnl "$Id: cups-common.m4 12785 2015-07-14 18:07:49Z msweet $" dnl dnl Common configuration stuff for CUPS. dnl -dnl Copyright 2007-2014 by Apple Inc. +dnl Copyright 2007-2015 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 @@ -13,18 +13,26 @@ dnl which should have been included with this file. If this file is dnl file is missing or damaged, see the license at "http://www.cups.org/". dnl -dnl We need at least autoconf 2.60... -AC_PREREQ(2.60) - dnl Set the name of the config header file... AC_CONFIG_HEADER(config.h) dnl Version number information... -CUPS_VERSION=2.1b1 -CUPS_REVISION= -#if test -z "$CUPS_REVISION" -a -d .svn; then -# CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`" -#fi +CUPS_VERSION=2.1rc1 + +case "$CUPS_VERSION" in + *svn) + if test -z "$CUPS_REVISION" -a -d .svn; then + CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`" + else + CUPS_REVISION="" + fi + ;; + + *) + CUPS_REVISION="" + ;; +esac + CUPS_BUILD="cups-$CUPS_VERSION" AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" string ], @@ -33,8 +41,8 @@ AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" str AC_SUBST(CUPS_VERSION) AC_SUBST(CUPS_REVISION) AC_SUBST(CUPS_BUILD) -AC_DEFINE_UNQUOTED(CUPS_SVERSION, "CUPS v$CUPS_VERSION$CUPS_REVISION") -AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "CUPS/$CUPS_VERSION$CUPS_REVISION") +AC_DEFINE_UNQUOTED(CUPS_SVERSION, "AC_PACKAGE_NAME v$CUPS_VERSION$CUPS_REVISION") +AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "AC_PACKAGE_NAME/$CUPS_VERSION$CUPS_REVISION") dnl Default compiler flags... CFLAGS="${CFLAGS:=}" @@ -466,5 +474,5 @@ esac AC_SUBST(BUILDDIRS) dnl -dnl End of "$Id: cups-common.m4 12697 2015-06-08 17:42:16Z msweet $". +dnl End of "$Id: cups-common.m4 12785 2015-07-14 18:07:49Z msweet $". dnl diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4 index ca3bae8e07..b911877243 100644 --- a/config-scripts/cups-compiler.m4 +++ b/config-scripts/cups-compiler.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-compiler.m4 12122 2014-08-28 12:55:52Z msweet $" +dnl "$Id: cups-compiler.m4 12742 2015-06-23 14:48:53Z msweet $" dnl dnl Compiler stuff for CUPS. dnl @@ -156,6 +156,15 @@ if test -n "$GCC"; 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" @@ -237,5 +246,5 @@ case $uname in esac dnl -dnl End of "$Id: cups-compiler.m4 12122 2014-08-28 12:55:52Z msweet $". +dnl End of "$Id: cups-compiler.m4 12742 2015-06-23 14:48:53Z msweet $". dnl diff --git a/config-scripts/cups-startup.m4 b/config-scripts/cups-startup.m4 index e82ad5193a..ea7b23150b 100644 --- a/config-scripts/cups-startup.m4 +++ b/config-scripts/cups-startup.m4 @@ -1,9 +1,9 @@ dnl -dnl "$Id: cups-startup.m4 12691 2015-06-04 18:00:31Z msweet $" +dnl "$Id: cups-startup.m4 12784 2015-07-14 17:39:26Z msweet $" dnl dnl Launch-on-demand/startup stuff for CUPS. dnl -dnl Copyright 2007-2014 by Apple Inc. +dnl Copyright 2007-2015 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 @@ -56,27 +56,19 @@ if test x$enable_systemd != xno; then AC_MSG_ERROR(Need pkg-config to enable systemd support.) fi else - AC_MSG_CHECKING(for libsystemd-daemon) - if $PKGCONFIG --exists libsystemd-daemon; then + AC_MSG_CHECKING(for libsystemd) + if $PKGCONFIG --exists libsystemd; then AC_MSG_RESULT(yes) - ONDEMANDFLAGS=`$PKGCONFIG --cflags libsystemd-daemon` - ONDEMANDLIBS=`$PKGCONFIG --libs libsystemd-daemon` + ONDEMANDFLAGS=`$PKGCONFIG --cflags libsystemd` + ONDEMANDLIBS=`$PKGCONFIG --libs libsystemd` AC_DEFINE(HAVE_SYSTEMD) + AC_CHECK_HEADER(systemd/sd-journal.h,AC_DEFINE(HAVE_SYSTEMD_SD_JOURNAL_H)) if test "x$SYSTEMD_DIR" = x; then SYSTEMD_DIR="`$PKGCONFIG --variable=systemdsystemunitdir systemd`" fi else AC_MSG_RESULT(no) fi - AC_MSG_CHECKING(for libsystemd-journal) - if $PKGCONFIG --exists libsystemd-journal; then - AC_MSG_RESULT(yes) - ONDEMANDFLAGS="$ONDEMANDFLAGS `$PKGCONFIG --cflags libsystemd-journal`" - ONDEMANDLIBS="$ONDEMANDLIBS `$PKGCONFIG --libs libsystemd-journal`" - AC_CHECK_HEADER(systemd/sd-journal.h,AC_DEFINE(HAVE_SYSTEMD_SD_JOURNAL_H)) - else - AC_MSG_RESULT(no) - fi fi fi @@ -181,5 +173,5 @@ fi dnl -dnl End of "$Id: cups-startup.m4 12691 2015-06-04 18:00:31Z msweet $". +dnl End of "$Id: cups-startup.m4 12784 2015-07-14 17:39:26Z msweet $". dnl diff --git a/configure b/configure index 7d86119fe9..b841ef5d90 100755 --- a/configure +++ b/configure @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68. +# Generated by GNU Autoconf 2.69 for CUPS 2.1rc1. # +# Report bugs to . # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,6 +134,31 @@ 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 @@ -167,7 +192,8 @@ 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\$exitcode = x0 || exit 1 +test -x / || 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'\" && @@ -212,21 +238,25 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - # 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+"$@"} + 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 fi if test x$as_have_required = xno; then : @@ -236,7 +266,8 @@ fi $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: https://www.cups.org/str.php about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." @@ -328,6 +359,14 @@ $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 @@ -449,6 +488,10 @@ 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). @@ -483,16 +526,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 -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -504,28 +547,8 @@ else as_mkdir_p=false fi -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 +as_test_x='test -x' +as_executable_p=as_fn_executable_p # 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'" @@ -555,14 +578,13 @@ MFLAGS= MAKEFLAGS= # Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= -PACKAGE_URL= - -ac_unique_file="cups/cups.h" +PACKAGE_NAME='CUPS' +PACKAGE_TARNAME='cups' +PACKAGE_VERSION='2.1rc1' +PACKAGE_STRING='CUPS 2.1rc1' +PACKAGE_BUGREPORT='https://www.cups.org/str.php' +PACKAGE_URL='https://www.cups.org/' + # Factoring default headers for most tests. ac_includes_default="\ #include @@ -943,7 +965,7 @@ sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' @@ -1358,8 +1380,6 @@ 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 @@ -1445,7 +1465,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 this package to adapt to many kinds of systems. +\`configure' configures CUPS 2.1rc1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1493,7 +1513,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --docdir=DIR documentation root [DATAROOTDIR/doc/cups] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1505,7 +1525,9 @@ _ACEOF fi if test -n "$ac_init_help"; then - + case $ac_init_help in + short | recursive ) echo "Configuration of CUPS 2.1rc1:";; + esac cat <<\_ACEOF Optional Features: @@ -1619,7 +1641,8 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to the package provider. +Report bugs to . +CUPS home page: . _ACEOF ac_status=$? fi @@ -1682,10 +1705,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -configure -generated by GNU Autoconf 2.68 +CUPS configure 2.1rc1 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1836,7 +1859,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1967,6 +1990,10 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------------- ## +## Report this to https://www.cups.org/str.php ## +## ------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 @@ -2142,8 +2169,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 $as_me, which was -generated by GNU Autoconf 2.68. Invocation command line was +It was created by CUPS $as_me 2.1rc1, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2514,16 +2541,25 @@ esac +ac_config_headers="$ac_config_headers config.h" -ac_config_headers="$ac_config_headers config.h" +CUPS_VERSION=2.1rc1 +case "$CUPS_VERSION" in + *svn) + if test -z "$CUPS_REVISION" -a -d .svn; then + CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[a-zA-Z]*//g'`" + else + CUPS_REVISION="" + fi + ;; + + *) + CUPS_REVISION="" + ;; +esac -CUPS_VERSION=2.1b1 -CUPS_REVISION= -#if test -z "$CUPS_REVISION" -a -d .svn; then -# CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`" -#fi CUPS_BUILD="cups-$CUPS_VERSION" @@ -2568,7 +2604,7 @@ 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 + if as_fn_executable_p "$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 @@ -2616,7 +2652,7 @@ 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 + if as_fn_executable_p "$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 @@ -2660,7 +2696,7 @@ 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 + if as_fn_executable_p "$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 @@ -3104,8 +3140,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* 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); @@ -3355,7 +3390,7 @@ 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 + if as_fn_executable_p "$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 @@ -3399,7 +3434,7 @@ 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 + if as_fn_executable_p "$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 @@ -3601,7 +3636,7 @@ 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 + if as_fn_executable_p "$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 @@ -3641,7 +3676,7 @@ 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 + if as_fn_executable_p "$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 @@ -3694,7 +3729,7 @@ 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 + if as_fn_executable_p "$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 @@ -3734,7 +3769,7 @@ 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 + if as_fn_executable_p "$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 @@ -3774,7 +3809,7 @@ 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 + if as_fn_executable_p "$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 @@ -3814,7 +3849,7 @@ 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 + if as_fn_executable_p "$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 @@ -3854,7 +3889,7 @@ 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 + if as_fn_executable_p "$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 @@ -3894,7 +3929,7 @@ 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 + if as_fn_executable_p "$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 @@ -3934,7 +3969,7 @@ 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 + if as_fn_executable_p "$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 @@ -3974,7 +4009,7 @@ 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 + if as_fn_executable_p "$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 @@ -4014,7 +4049,7 @@ 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 + if as_fn_executable_p "$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 @@ -4054,7 +4089,7 @@ 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 + if as_fn_executable_p "$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 @@ -4130,7 +4165,7 @@ 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 + if as_fn_executable_p "$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 @@ -4173,7 +4208,7 @@ 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 + if as_fn_executable_p "$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 @@ -4583,7 +4618,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" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$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 @@ -4649,7 +4684,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" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$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 @@ -6776,6 +6811,32 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # 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" @@ -7588,7 +7649,7 @@ 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 + if as_fn_executable_p "$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 @@ -7631,7 +7692,7 @@ 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 + if as_fn_executable_p "$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 @@ -8185,7 +8246,7 @@ 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 + if as_fn_executable_p "$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 @@ -8228,7 +8289,7 @@ 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 + if as_fn_executable_p "$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 @@ -8283,7 +8344,7 @@ 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 + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LIBGCRYPTCONFIG="$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 @@ -8326,7 +8387,7 @@ 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 + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_LIBGCRYPTCONFIG="$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 @@ -8887,6 +8948,8 @@ _ACEOF esac rm -rf conftest* fi + + fi @@ -9134,29 +9197,15 @@ if test x$enable_systemd != xno; then as_fn_error $? "Need pkg-config to enable systemd support." "$LINENO" 5 fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsystemd-daemon" >&5 -$as_echo_n "checking for libsystemd-daemon... " >&6; } - if $PKGCONFIG --exists libsystemd-daemon; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsystemd" >&5 +$as_echo_n "checking for libsystemd... " >&6; } + if $PKGCONFIG --exists libsystemd; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - ONDEMANDFLAGS=`$PKGCONFIG --cflags libsystemd-daemon` - ONDEMANDLIBS=`$PKGCONFIG --libs libsystemd-daemon` + ONDEMANDFLAGS=`$PKGCONFIG --cflags libsystemd` + ONDEMANDLIBS=`$PKGCONFIG --libs libsystemd` $as_echo "#define HAVE_SYSTEMD 1" >>confdefs.h - if test "x$SYSTEMD_DIR" = x; then - SYSTEMD_DIR="`$PKGCONFIG --variable=systemdsystemunitdir systemd`" - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsystemd-journal" >&5 -$as_echo_n "checking for libsystemd-journal... " >&6; } - if $PKGCONFIG --exists libsystemd-journal; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ONDEMANDFLAGS="$ONDEMANDFLAGS `$PKGCONFIG --cflags libsystemd-journal`" - ONDEMANDLIBS="$ONDEMANDLIBS `$PKGCONFIG --libs libsystemd-journal`" ac_fn_c_check_header_mongrel "$LINENO" "systemd/sd-journal.h" "ac_cv_header_systemd_sd_journal_h" "$ac_includes_default" if test "x$ac_cv_header_systemd_sd_journal_h" = xyes; then : $as_echo "#define HAVE_SYSTEMD_SD_JOURNAL_H 1" >>confdefs.h @@ -9164,6 +9213,9 @@ if test "x$ac_cv_header_systemd_sd_journal_h" = xyes; then : fi + if test "x$SYSTEMD_DIR" = x; then + SYSTEMD_DIR="`$PKGCONFIG --variable=systemdsystemunitdir systemd`" + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -9902,7 +9954,7 @@ 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 + if as_fn_executable_p "$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 @@ -9965,7 +10017,7 @@ 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 + if as_fn_executable_p "$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 @@ -10028,7 +10080,7 @@ 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 + if as_fn_executable_p "$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 @@ -10069,7 +10121,7 @@ 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 + if as_fn_executable_p "$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 @@ -10137,7 +10189,7 @@ 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 + if as_fn_executable_p "$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 @@ -10606,16 +10658,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 -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -10675,28 +10727,16 @@ else as_mkdir_p=false fi -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 + +# 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 # 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'" @@ -10717,8 +10757,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 $as_me, which was -generated by GNU Autoconf 2.68. Invocation command line was +This file was extended by CUPS $as_me 2.1rc1, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -10773,17 +10813,18 @@ $config_files Configuration headers: $config_headers -Report bugs to the package provider." +Report bugs to . +CUPS home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.68, +CUPS config.status 2.1rc1 +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -10872,7 +10913,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 1e3fb72af0..f19c603581 100644 --- a/configure.ac +++ b/configure.ac @@ -1,9 +1,9 @@ dnl -dnl "$Id: configure.ac 12278 2014-12-01 13:53:56Z msweet $" +dnl "$Id: configure.ac 12787 2015-07-14 21:19:57Z msweet $" dnl dnl Configuration script for CUPS. dnl -dnl Copyright 2007-2014 by Apple Inc. +dnl Copyright 2007-2015 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 @@ -13,7 +13,11 @@ dnl which should have been included with this file. If this file is dnl file is missing or damaged, see the license at "http://www.cups.org/". dnl -AC_INIT(cups/cups.h) +dnl We need at least autoconf 2.60... +AC_PREREQ(2.60) + +dnl Package name and version... +AC_INIT([CUPS], [2.1rc1], [https://www.cups.org/str.php], [cups], [https://www.cups.org/]) sinclude(config-scripts/cups-opsys.m4) sinclude(config-scripts/cups-common.m4) @@ -91,5 +95,5 @@ AC_OUTPUT(Makedefs chmod +x cups-config dnl -dnl End of "$Id: configure.ac 12278 2014-12-01 13:53:56Z msweet $". +dnl End of "$Id: configure.ac 12787 2015-07-14 21:19:57Z msweet $". dnl diff --git a/cups/cups.h b/cups/cups.h index 4faf82cdc7..f40665d687 100644 --- a/cups/cups.h +++ b/cups/cups.h @@ -1,5 +1,5 @@ /* - * "$Id: cups.h 12722 2015-06-08 22:00:19Z msweet $" + * "$Id: cups.h 12733 2015-06-12 01:21:05Z msweet $" * * API definitions for CUPS. * @@ -250,6 +250,7 @@ enum cups_ptype_e /* Printer type/capability bit * @since CUPS 1.4/OS X 10.6@ */ CUPS_PRINTER_MFP = 0x4000000, /* Printer with scanning capabilities * @since CUPS 1.4/OS X 10.6@ */ + CUPS_PRINTER_3D = 0x8000000, /* 3D Printing @since CUPS 2.1@ */ CUPS_PRINTER_OPTIONS = 0x6fffc /* ~(CLASS | REMOTE | IMPLICIT | * DEFAULT | FAX | REJECTING | DELETE | * NOT_SHARED | AUTHENTICATED | @@ -635,5 +636,5 @@ extern int cupsSetServerCredentials(const char *path, const char *common_name, #endif /* !_CUPS_CUPS_H_ */ /* - * End of "$Id: cups.h 12722 2015-06-08 22:00:19Z msweet $". + * End of "$Id: cups.h 12733 2015-06-12 01:21:05Z msweet $". */ diff --git a/cups/dest.c b/cups/dest.c index dcbdfb9e2e..413fc271e1 100644 --- a/cups/dest.c +++ b/cups/dest.c @@ -1,5 +1,5 @@ /* - * "$Id: dest.c 12722 2015-06-08 22:00:19Z msweet $" + * "$Id: dest.c 12733 2015-06-12 01:21:05Z msweet $" * * User-defined destination (and option) support for CUPS. * @@ -871,7 +871,7 @@ cupsEnumDests( */ num_dests = _cupsGetDests(CUPS_HTTP_DEFAULT, IPP_OP_CUPS_GET_PRINTERS, NULL, - &dests, type, mask); + &dests, type, mask | CUPS_PRINTER_3D); if ((user_default = _cupsUserDefault(name, sizeof(name))) != NULL) defprinter = name; @@ -1743,7 +1743,7 @@ cupsGetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_ */ *dests = (cups_dest_t *)0; - num_dests = _cupsGetDests(http, IPP_OP_CUPS_GET_PRINTERS, NULL, dests, 0, 0); + num_dests = _cupsGetDests(http, IPP_OP_CUPS_GET_PRINTERS, NULL, dests, 0, CUPS_PRINTER_3D); if (cupsLastError() >= IPP_STATUS_REDIRECTION_OTHER_SITE) { @@ -1960,7 +1960,7 @@ cupsGetNamedDest(http_t *http, /* I - Connection to server or @code CUPS_HTT * Get the printer's attributes... */ - if (!_cupsGetDests(http, op, name, &dest, 0, 0)) + if (!_cupsGetDests(http, op, name, &dest, 0, CUPS_PRINTER_3D)) return (NULL); if (instance) @@ -2136,7 +2136,7 @@ cupsSetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_ * Get the server destinations... */ - num_temps = _cupsGetDests(http, IPP_OP_CUPS_GET_PRINTERS, NULL, &temps, 0, 0); + num_temps = _cupsGetDests(http, IPP_OP_CUPS_GET_PRINTERS, NULL, &temps, 0, CUPS_PRINTER_3D); if (cupsLastError() >= IPP_STATUS_REDIRECTION_OTHER_SITE) { @@ -3943,5 +3943,5 @@ cups_make_string( /* - * End of "$Id: dest.c 12722 2015-06-08 22:00:19Z msweet $". + * End of "$Id: dest.c 12733 2015-06-12 01:21:05Z msweet $". */ diff --git a/cups/http-support.c b/cups/http-support.c index 7e30608ceb..deb5691843 100644 --- a/cups/http-support.c +++ b/cups/http-support.c @@ -1,9 +1,9 @@ /* - * "$Id: http-support.c 12124 2014-08-28 15:37:22Z msweet $" + * "$Id: http-support.c 12752 2015-06-24 19:30:47Z msweet $" * * HTTP support routines for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2015 by Apple Inc. * Copyright 1997-2007 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the @@ -1722,7 +1722,7 @@ _httpResolveURI( while (time(NULL) < end_time) { if (options & _HTTP_RESOLVE_STDERR) - _cupsLangPrintFilter(stderr, "INFO", _("Looking for printer.")); + _cupsLangPrintFilter(stderr, "INFO", _("Looking for printer...")); if (cb && !(*cb)(context)) { @@ -2544,5 +2544,5 @@ http_resolve_cb( /* - * End of "$Id: http-support.c 12124 2014-08-28 15:37:22Z msweet $". + * End of "$Id: http-support.c 12752 2015-06-24 19:30:47Z msweet $". */ diff --git a/cups/language.c b/cups/language.c index 0adf73ad6a..aa81063555 100644 --- a/cups/language.c +++ b/cups/language.c @@ -1,9 +1,9 @@ /* - * "$Id: language.c 12262 2014-11-19 15:18:33Z msweet $" + * "$Id: language.c 12790 2015-07-20 17:05:06Z msweet $" * * I18N/language support for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2015 by Apple Inc. * Copyright 1997-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -1305,7 +1305,8 @@ static cups_array_t * /* O - Message catalog */ appleMessageLoad(const char *locale) /* I - Locale ID */ { char filename[1024], /* Path to cups.strings file */ - applelang[256]; /* Apple language ID */ + applelang[256], /* Apple language ID */ + baselang[3]; /* Base language */ CFURLRef url; /* URL to cups.strings file */ CFReadStreamRef stream = NULL; /* File stream */ CFPropertyListRef plist = NULL; /* Localization file */ @@ -1345,6 +1346,15 @@ appleMessageLoad(const char *locale) /* I - Locale ID */ locale = "Japanese"; else if (!strncmp(locale, "es", 2)) locale = "Spanish"; + else if (strstr(locale, "_") != NULL || strstr(locale, "-") != NULL) + { + /* + * Drop country code, just try language... + */ + + strlcpy(baselang, locale, sizeof(baselang)); + locale = baselang; + } snprintf(filename, sizeof(filename), CUPS_BUNDLEDIR "/Resources/%s.lproj/cups.strings", locale); @@ -1588,5 +1598,5 @@ cups_unquote(char *d, /* O - Unquoted string */ /* - * End of "$Id: language.c 12262 2014-11-19 15:18:33Z msweet $". + * End of "$Id: language.c 12790 2015-07-20 17:05:06Z msweet $". */ diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c index 5a5af77de3..428677d855 100644 --- a/cups/ppd-cache.c +++ b/cups/ppd-cache.c @@ -1,5 +1,5 @@ /* - * "$Id: ppd-cache.c 12722 2015-06-08 22:00:19Z msweet $" + * "$Id: ppd-cache.c 12733 2015-06-12 01:21:05Z msweet $" * * PPD cache implementation for CUPS. * @@ -36,6 +36,7 @@ static int pwg_compare_finishings(_pwg_finishings_t *a, _pwg_finishings_t *b); static void pwg_free_finishings(_pwg_finishings_t *f); +static void pwg_free_material(_pwg_material_t *m); static void pwg_ppdize_name(const char *ipp, char *name, size_t namesize); static void pwg_ppdize_resolution(ipp_attribute_t *attr, int element, int *xres, int *yres, char *name, size_t namesize); static void pwg_unppdize_name(const char *ppd, char *name, size_t namesize, @@ -480,6 +481,53 @@ _ppdCacheCreateWithFile( _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Bad PPD cache file."), 1); goto create_error; } + else if (!_cups_strcasecmp(line, "3D")) + { + pc->cups_3d = _cupsStrAlloc(value); + } + else if (!_cups_strcasecmp(line, "LayerOrder")) + { + pc->cups_layer_order = _cupsStrAlloc(value); + } + else if (!_cups_strcasecmp(line, "Accuracy")) + { + sscanf(value, "%d%d%d", pc->cups_accuracy + 0, pc->cups_accuracy + 1, pc->cups_accuracy + 2); + } + else if (!_cups_strcasecmp(line, "Volume")) + { + sscanf(value, "%d%d%d", pc->cups_volume + 0, pc->cups_volume + 1, pc->cups_volume + 2); + } + else if (!_cups_strcasecmp(line, "Material")) + { + /* + * Material key "name" name=value ... name=value + */ + + if ((valueptr = strchr(value, ' ')) != NULL) + { + _pwg_material_t *material = (_pwg_material_t *)calloc(1, sizeof(_pwg_material_t)); + + *valueptr++ = '\0'; + + material->key = _cupsStrAlloc(value); + + if (*valueptr == '\"') + { + value = valueptr + 1; + if ((valueptr = strchr(value, '\"')) != NULL) + { + *valueptr++ = '\0'; + material->name = _cupsStrAlloc(value); + material->num_props = cupsParseOptions(valueptr, 0, &material->props); + } + } + + if (!pc->materials) + pc->materials = cupsArrayNew3(NULL, NULL, NULL, 0, NULL, (cups_afree_func_t)pwg_free_material); + + cupsArrayAdd(pc->materials, material); + } + } else if (!_cups_strcasecmp(line, "Filter")) { if (!pc->filters) @@ -1711,6 +1759,42 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd) /* I - PPD file */ if ((ppd_attr = ppdFindAttr(ppd, "APPrinterIconPath", NULL)) != NULL) cupsArrayAdd(pc->support_files, ppd_attr->value); + /* + * 3D stuff... + */ + + if ((ppd_attr = ppdFindAttr(ppd, "cups3D", NULL)) != NULL) + pc->cups_3d = _cupsStrAlloc(ppd_attr->value); + + if ((ppd_attr = ppdFindAttr(ppd, "cupsLayerOrder", NULL)) != NULL) + pc->cups_layer_order = _cupsStrAlloc(ppd_attr->value); + + if ((ppd_attr = ppdFindAttr(ppd, "cupsAccuracy", NULL)) != NULL) + sscanf(ppd_attr->value, "%d%d%d", pc->cups_accuracy + 0, pc->cups_accuracy + 1, pc->cups_accuracy + 2); + + if ((ppd_attr = ppdFindAttr(ppd, "cupsVolume", NULL)) != NULL) + sscanf(ppd_attr->value, "%d%d%d", pc->cups_volume + 0, pc->cups_volume + 1, pc->cups_volume + 2); + + for (ppd_attr = ppdFindAttr(ppd, "cupsMaterial", NULL); + ppd_attr; + ppd_attr = ppdFindNextAttr(ppd, "cupsMaterial", NULL)) + { + /* + * *cupsMaterial key/name: "name=value ... name=value" + */ + + _pwg_material_t *material = (_pwg_material_t *)calloc(1, sizeof(_pwg_material_t)); + + material->key = _cupsStrAlloc(ppd_attr->name); + material->name = _cupsStrAlloc(ppd_attr->text); + material->num_props = cupsParseOptions(ppd_attr->value, 0, &material->props); + + if (!pc->materials) + pc->materials = cupsArrayNew3(NULL, NULL, NULL, 0, NULL, (cups_afree_func_t)pwg_free_material); + + cupsArrayAdd(pc->materials, material); + } + /* * Return the cache data... */ @@ -1818,6 +1902,11 @@ _ppdCacheDestroy(_ppd_cache_t *pc) /* I - PPD cache and mapping data */ cupsArrayDelete(pc->support_files); + _cupsStrFree(pc->cups_3d); + _cupsStrFree(pc->cups_layer_order); + + cupsArrayDelete(pc->materials); + free(pc); } @@ -2575,6 +2664,7 @@ _ppdCacheWriteFile( cups_option_t *option; /* Current option */ const char *value; /* Filter/pre-filter value */ char newfile[1024]; /* New filename */ + _pwg_material_t *m; /* Material */ /* @@ -2755,6 +2845,32 @@ _ppdCacheWriteFile( value = (char *)cupsArrayNext(pc->support_files)) cupsFilePutConf(fp, "SupportFile", value); + /* + * 3D stuff... + */ + + if (pc->cups_3d) + cupsFilePutConf(fp, "3D", pc->cups_3d); + + if (pc->cups_layer_order) + cupsFilePutConf(fp, "LayerOrder", pc->cups_layer_order); + + if (pc->cups_accuracy[0] || pc->cups_accuracy[0] || pc->cups_accuracy[2]) + cupsFilePrintf(fp, "Accuracy %d %d %d\n", pc->cups_accuracy[0], pc->cups_accuracy[1], pc->cups_accuracy[2]); + + if (pc->cups_volume[0] || pc->cups_volume[0] || pc->cups_volume[2]) + cupsFilePrintf(fp, "Volume %d %d %d\n", pc->cups_volume[0], pc->cups_volume[1], pc->cups_volume[2]); + + for (m = (_pwg_material_t *)cupsArrayFirst(pc->materials); + m; + m = (_pwg_material_t *)cupsArrayNext(pc->materials)) + { + cupsFilePrintf(fp, "Material %s \"%s\"", m->key, m->name); + for (i = 0; i < m->num_props; i ++) + cupsFilePrintf(fp, " %s=%s", m->props[i].name, m->props[i].value); + cupsFilePuts(fp, "\n"); + } + /* * IPP attributes, if any... */ @@ -3561,6 +3677,22 @@ pwg_free_finishings( } +/* + * 'pwg_free_material()' - Free a material value. + */ + +static void +pwg_free_material(_pwg_material_t *m) /* I - Material value */ +{ + _cupsStrFree(m->key); + _cupsStrFree(m->name); + + cupsFreeOptions(m->num_props, m->props); + + free(m); +} + + /* * 'pwg_ppdize_name()' - Convert an IPP keyword to a PPD keyword. */ @@ -3591,7 +3723,6 @@ pwg_ppdize_name(const char *ipp, /* I - IPP keyword */ } - /* * 'pwg_ppdize_resolution()' - Convert PWG resolution values to PPD values. */ @@ -3680,5 +3811,5 @@ pwg_unppdize_name(const char *ppd, /* I - PPD keyword */ /* - * End of "$Id: ppd-cache.c 12722 2015-06-08 22:00:19Z msweet $". + * End of "$Id: ppd-cache.c 12733 2015-06-12 01:21:05Z msweet $". */ diff --git a/cups/ppd-private.h b/cups/ppd-private.h index f6f63294f6..126ae49c1b 100644 --- a/cups/ppd-private.h +++ b/cups/ppd-private.h @@ -1,5 +1,5 @@ /* - * "$Id: ppd-private.h 12722 2015-06-08 22:00:19Z msweet $" + * "$Id: ppd-private.h 12733 2015-06-12 01:21:05Z msweet $" * * Private PPD definitions for CUPS. * @@ -109,6 +109,14 @@ typedef struct _pwg_finishings_s /**** PWG finishings mapping data ****/ cups_option_t *options; /* Options to apply */ } _pwg_finishings_t; +typedef struct _pwg_material_s /**** PWG material mapping data ****/ +{ + char *key, /* material-key value */ + *name; /* material-name value */ + int num_props; /* Number of properties */ + cups_option_t *props; /* Material properties */ +} _pwg_material_t; + struct _ppd_cache_s /**** PPD cache and PWG conversion data ****/ { int num_bins; /* Number of output bins */ @@ -148,6 +156,11 @@ struct _ppd_cache_s /**** PPD cache and PWG conversion data ****/ cups_array_t *mandatory; /* cupsMandatory value */ char *charge_info_uri; /* cupsChargeInfoURI value */ cups_array_t *support_files; /* Support files - ICC profiles, etc. */ + char *cups_3d, /* cups3D value */ + *cups_layer_order; /* cupsLayerOrder value */ + int cups_accuracy[3]; /* cupsAccuracy value - x, y, and z in nanometers */ + int cups_volume[3]; /* cupsVolume value - x, y, and z in millimeters */ + cups_array_t *materials; /* cupsMaterial values */ }; @@ -223,5 +236,5 @@ extern const char *_pwgPageSizeForMedia(pwg_media_t *media, #endif /* !_CUPS_PPD_PRIVATE_H_ */ /* - * End of "$Id: ppd-private.h 12722 2015-06-08 22:00:19Z msweet $". + * End of "$Id: ppd-private.h 12733 2015-06-12 01:21:05Z msweet $". */ diff --git a/cups/usersys.c b/cups/usersys.c index da78be3688..7c0eb3bb90 100644 --- a/cups/usersys.c +++ b/cups/usersys.c @@ -1,5 +1,5 @@ /* - * "$Id: usersys.c 12647 2015-05-20 18:37:52Z msweet $" + * "$Id: usersys.c 12817 2015-07-30 15:45:46Z msweet $" * * User, system, and password routines for CUPS. * @@ -68,6 +68,7 @@ typedef struct _cups_client_conf_s /**** client.conf config data ****/ static void cups_finalize_client_conf(_cups_client_conf_t *cc); static void cups_init_client_conf(_cups_client_conf_t *cc); static void cups_read_client_conf(cups_file_t *fp, _cups_client_conf_t *cc); +static void cups_set_default_ipp_port(_cups_globals_t *cg); static void cups_set_encryption(_cups_client_conf_t *cc, const char *value); #ifdef HAVE_GSSAPI static void cups_set_gss_service_name(_cups_client_conf_t *cc, const char *value); @@ -382,6 +383,9 @@ cupsSetServer(const char *server) /* I - Server name */ cg->ipp_port = atoi(port); } + if (!cg->ipp_port) + cups_set_default_ipp_port(cg); + if (cg->server[0] == '/') strlcpy(cg->servername, "localhost", sizeof(cg->servername)); else @@ -392,6 +396,7 @@ cupsSetServer(const char *server) /* I - Server name */ cg->server[0] = '\0'; cg->servername[0] = '\0'; cg->server_version = 20; + cg->ipp_port = 0; } if (cg->http) @@ -908,17 +913,7 @@ _cupsSetDefaults(void) cupsSetServer(cc.server_name); if (!cg->ipp_port) - { - const char *ipp_port; /* IPP_PORT environment variable */ - - if ((ipp_port = getenv("IPP_PORT")) != NULL) - { - if ((cg->ipp_port = atoi(ipp_port)) <= 0) - cg->ipp_port = CUPS_DEFAULT_IPP_PORT; - } - else - cg->ipp_port = CUPS_DEFAULT_IPP_PORT; - } + cups_set_default_ipp_port(cg); if (!cg->user[0]) strlcpy(cg->user, cc.user, sizeof(cg->user)); @@ -1017,7 +1012,7 @@ cups_finalize_client_conf( struct stat sockinfo; /* Domain socket information */ if (!stat(CUPS_DEFAULT_DOMAINSOCKET, &sockinfo) && - (sockinfo.st_mode & S_IRWXO) == S_IRWXO) + (sockinfo.st_mode & (S_IROTH | S_IWOTH)) == (S_IROTH | S_IWOTH)) cups_set_server_name(cc, CUPS_DEFAULT_DOMAINSOCKET); else #endif /* CUPS_DEFAULT_DOMAINSOCKET */ @@ -1150,6 +1145,26 @@ cups_read_client_conf( } +/* + * 'cups_set_default_ipp_port()' - Set the default IPP port value. + */ + +static void +cups_set_default_ipp_port( + _cups_globals_t *cg) /* I - Global data */ +{ + const char *ipp_port; /* IPP_PORT environment variable */ + + + if ((ipp_port = getenv("IPP_PORT")) != NULL) + { + if ((cg->ipp_port = atoi(ipp_port)) <= 0) + cg->ipp_port = CUPS_DEFAULT_IPP_PORT; + } + else + cg->ipp_port = CUPS_DEFAULT_IPP_PORT; +} + /* * 'cups_set_encryption()' - Set the Encryption value. */ @@ -1270,5 +1285,5 @@ cups_set_user( /* - * End of "$Id: usersys.c 12647 2015-05-20 18:37:52Z msweet $". + * End of "$Id: usersys.c 12817 2015-07-30 15:45:46Z msweet $". */ diff --git a/doc/help/man-cupsd.conf.html b/doc/help/man-cupsd.conf.html index f378bffa7e..c2ef877e2c 100644 --- a/doc/help/man-cupsd.conf.html +++ b/doc/help/man-cupsd.conf.html @@ -240,7 +240,8 @@ The following percent sequences are recognized: "%u" inserts the username. -The default is "%p %u %j %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}". +The default is the empty string, which disables page logging. +The string "%p %u %j %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}" creates a page log with the standard items.
PassEnv variable [ ... variable ]
Passes the specified environment variable(s) to child processes.
<Policy name> ... </Policy> @@ -588,7 +589,7 @@ Require authentication for accesses from outside the 10. network: subscriptions.conf(5), CUPS Online Help (http://localhost:631/help)

Copyright

-Copyright © 2007-2014 by Apple Inc. +Copyright © 2007-2015 by Apple Inc. diff --git a/doc/help/spec-cmp.html b/doc/help/spec-cmp.html index 4bbe7f0eef..d2a44acf9d 100644 --- a/doc/help/spec-cmp.html +++ b/doc/help/spec-cmp.html @@ -14,7 +14,7 @@

Overview

-

CUPS is developed by Apple Inc. and distributed as open source software under a combination of GNU GPL2 and GNU LGPL2 licenses with exceptions to allow linking to OpenSSL (which has a GPL-incompatible license) and for developers on Apple's operating systems to develop CUPS-based software until alternate license terms. Significant contributions to CUPS must be licensed to Apple using the Apple Contributor Agreement.

+

CUPS is developed by Apple Inc. and distributed as open source software under a combination of GNU GPL2 and GNU LGPL2 licenses with exceptions to allow developers on Apple's operating systems to develop CUPS-based software under alternate license terms. Significant contributions to CUPS must be licensed to Apple using the Apple Contributor Agreement.

Apple releases updates to the CUPS software approximately every three months. Each release has a version number consisting of the major version (currently 1), minor version (currently 6), and patch version (starting at 0) separated by the period, for example "1.6.0". Releases where only the patch version number changes will contain only bug fixes to the previous release, for example "1.6.1" includes bug fixes for the "1.6.0" release. New features require the major or minor version numbers to change, for example "1.6.0" release contains new features compared to the "1.5.3" release. Multiple beta and "candidate" releases generally precede each new feature release, for example "1.5b1", "1.5b2", and "1.5rc1" preceded the "1.5.0" release. Finally, we also post regular Subversion snapshot releases, for example "1.6svn-r10486", which represent a snapshot of the development for the next feature release.

diff --git a/filter/error.c b/filter/error.c index e062757a13..4331365a3d 100644 --- a/filter/error.c +++ b/filter/error.c @@ -1,9 +1,9 @@ /* - * "$Id: error.c 11558 2014-02-06 18:33:34Z msweet $" + * "$Id: error.c 12747 2015-06-24 15:55:05Z msweet $" * * Raster error handling for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2015 by Apple Inc. * Copyright 2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -56,6 +56,8 @@ _cupsRasterAddError(const char *f, /* I - Printf-style error message */ ssize_t bytes; /* Bytes in message string */ + DEBUG_printf(("_cupsRasterAddError(f=\"%s\", ...)", f)); + va_start(ap, f); bytes = vsnprintf(s, sizeof(s), f, ap); va_end(ap); @@ -63,6 +65,8 @@ _cupsRasterAddError(const char *f, /* I - Printf-style error message */ if (bytes <= 0) return; + DEBUG_printf(("1_cupsRasterAddError: %s", s)); + bytes ++; if ((size_t)bytes >= sizeof(s)) @@ -185,7 +189,7 @@ get_error_buffer(void) * Initialize the global data exactly once... */ - DEBUG_puts("get_error_buffer()"); + DEBUG_puts("3get_error_buffer()"); pthread_once(&raster_key_once, raster_init); @@ -196,7 +200,7 @@ get_error_buffer(void) if ((buf = (_cups_raster_error_t *)pthread_getspecific(raster_key)) == NULL) { - DEBUG_puts("get_error_buffer: allocating memory for thread..."); + DEBUG_puts("4get_error_buffer: allocating memory for thread."); /* * No, allocate memory as set the pointer for the key... @@ -205,7 +209,7 @@ get_error_buffer(void) buf = calloc(1, sizeof(_cups_raster_error_t)); pthread_setspecific(raster_key, buf); - DEBUG_printf((" buf=%p\n", buf)); + DEBUG_printf(("4get_error_buffer: buf=%p", buf)); } /* @@ -225,8 +229,7 @@ raster_init(void) { pthread_key_create(&raster_key, raster_destructor); - DEBUG_printf(("raster_init(): raster_key=%x(%u)\n", (unsigned)raster_key, - (unsigned)raster_key)); + DEBUG_printf(("3raster_init(): raster_key=%x(%u)", (unsigned)raster_key, (unsigned)raster_key)); } @@ -241,7 +244,7 @@ raster_destructor(void *value) /* I - Data to free */ /* Error buffer */ - DEBUG_printf(("raster_destructor(value=%p)\n", value)); + DEBUG_printf(("3raster_destructor(value=%p)", value)); if (buf->start) free(buf->start); @@ -272,5 +275,5 @@ get_error_buffer(void) /* - * End of "$Id: error.c 11558 2014-02-06 18:33:34Z msweet $". + * End of "$Id: error.c 12747 2015-06-24 15:55:05Z msweet $". */ diff --git a/filter/interpret.c b/filter/interpret.c index f784fa0907..624a2a777f 100644 --- a/filter/interpret.c +++ b/filter/interpret.c @@ -1,9 +1,9 @@ /* - * "$Id: interpret.c 11848 2014-05-07 00:26:44Z msweet $" + * "$Id: interpret.c 12746 2015-06-24 13:28:36Z msweet $" * * PPD command interpreter for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2015 by Apple Inc. * Copyright 1993-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -91,8 +91,8 @@ static int setpagedevice(_cups_ps_stack_t *st, cups_page_header2_t *h, int *preferred_bits); #ifdef DEBUG -static void DEBUG_object(_cups_ps_obj_t *obj); -static void DEBUG_stack(_cups_ps_stack_t *st); +static void DEBUG_object(const char *prefix, _cups_ps_obj_t *obj); +static void DEBUG_stack(const char *prefix, _cups_ps_stack_t *st); #endif /* DEBUG */ @@ -547,8 +547,8 @@ _cupsRasterExecPS( while ((obj = scan_ps(st, &codeptr)) != NULL) { #ifdef DEBUG - DEBUG_printf(("_cupsRasterExecPS: Stack (%d objects)\n", st->num_objs)); - DEBUG_object(obj); + DEBUG_printf(("_cupsRasterExecPS: Stack (%d objects)", st->num_objs)); + DEBUG_object("_cupsRasterExecPS", obj); #endif /* DEBUG */ switch (obj->type) @@ -561,11 +561,11 @@ _cupsRasterExecPS( pop_stack(st); if (cleartomark_stack(st)) - _cupsRasterAddError("cleartomark: Stack underflow!\n"); + _cupsRasterAddError("cleartomark: Stack underflow.\n"); #ifdef DEBUG - DEBUG_puts(" dup: "); - DEBUG_stack(st); + DEBUG_puts("1_cupsRasterExecPS: dup"); + DEBUG_stack("_cupsRasterExecPS", st); #endif /* DEBUG */ break; @@ -577,7 +577,7 @@ _cupsRasterExecPS( #ifdef DEBUG DEBUG_puts("_cupsRasterExecPS: copy"); - DEBUG_stack(st); + DEBUG_stack("_cupsRasterExecPS", st); #endif /* DEBUG */ } break; @@ -588,7 +588,7 @@ _cupsRasterExecPS( #ifdef DEBUG DEBUG_puts("_cupsRasterExecPS: dup"); - DEBUG_stack(st); + DEBUG_stack("_cupsRasterExecPS", st); #endif /* DEBUG */ break; @@ -600,7 +600,7 @@ _cupsRasterExecPS( #ifdef DEBUG DEBUG_puts("_cupsRasterExecPS: index"); - DEBUG_stack(st); + DEBUG_stack("_cupsRasterExecPS", st); #endif /* DEBUG */ } break; @@ -611,7 +611,7 @@ _cupsRasterExecPS( #ifdef DEBUG DEBUG_puts("_cupsRasterExecPS: pop"); - DEBUG_stack(st); + DEBUG_stack("_cupsRasterExecPS", st); #endif /* DEBUG */ break; @@ -630,7 +630,7 @@ _cupsRasterExecPS( #ifdef DEBUG DEBUG_puts("_cupsRasterExecPS: roll"); - DEBUG_stack(st); + DEBUG_stack("_cupsRasterExecPS", st); #endif /* DEBUG */ } } @@ -642,7 +642,7 @@ _cupsRasterExecPS( #ifdef DEBUG DEBUG_puts("_cupsRasterExecPS: setpagedevice"); - DEBUG_stack(st); + DEBUG_stack("_cupsRasterExecPS", st); #endif /* DEBUG */ break; @@ -653,10 +653,9 @@ _cupsRasterExecPS( break; case CUPS_PS_OTHER : - _cupsRasterAddError("Unknown operator \"%s\"!\n", obj->value.other); + _cupsRasterAddError("Unknown operator \"%s\".\n", obj->value.other); error = 1; - DEBUG_printf(("_cupsRasterExecPS: Unknown operator \"%s\"!\n", - obj->value.other)); + DEBUG_printf(("_cupsRasterExecPS: Unknown operator \"%s\".", obj->value.other)); break; } @@ -675,8 +674,8 @@ _cupsRasterExecPS( error_stack(st, "Stack not empty:"); #ifdef DEBUG - DEBUG_puts("_cupsRasterExecPS: Stack not empty:"); - DEBUG_stack(st); + DEBUG_puts("_cupsRasterExecPS: Stack not empty"); + DEBUG_stack("_cupsRasterExecPS", st); #endif /* DEBUG */ delete_stack(st); @@ -977,7 +976,7 @@ roll_stack(_cups_ps_stack_t *st, /* I - Stack */ int n; /* Index into array */ - DEBUG_printf((" roll_stack(st=%p, s=%d, c=%d)\n", st, s, c)); + DEBUG_printf(("3roll_stack(st=%p, s=%d, c=%d)", st, s, c)); /* * Range check input... @@ -1435,7 +1434,7 @@ setpagedevice( * Now pull /name and value pairs from the dictionary... */ - DEBUG_puts("setpagedevice: Dictionary:"); + DEBUG_puts("3setpagedevice: Dictionary:"); for (obj ++; obj < end; obj ++) { @@ -1450,8 +1449,8 @@ setpagedevice( obj ++; #ifdef DEBUG - DEBUG_printf(("setpagedevice: /%s ", name)); - DEBUG_object(obj); + DEBUG_printf(("4setpagedevice: /%s ", name)); + DEBUG_object("setpagedevice", obj); #endif /* DEBUG */ /* @@ -1601,7 +1600,7 @@ setpagedevice( * Ignore unknown name+value... */ - DEBUG_printf((" Unknown name (\"%s\") or value...\n", name)); + DEBUG_printf(("4setpagedevice: Unknown name (\"%s\") or value...\n", name)); while (obj[1].type != CUPS_PS_NAME && obj < end) obj ++; @@ -1618,91 +1617,92 @@ setpagedevice( */ static void -DEBUG_object(_cups_ps_obj_t *obj) /* I - Object to print */ +DEBUG_object(const char *prefix, /* I - Prefix string */ + _cups_ps_obj_t *obj) /* I - Object to print */ { switch (obj->type) { case CUPS_PS_NAME : - DEBUG_printf(("/%s\n", obj->value.name)); + DEBUG_printf(("4%s: /%s\n", prefix, obj->value.name)); break; case CUPS_PS_NUMBER : - DEBUG_printf(("%g\n", obj->value.number)); + DEBUG_printf(("4%s: %g\n", prefix, obj->value.number)); break; case CUPS_PS_STRING : - DEBUG_printf(("(%s)\n", obj->value.string)); + DEBUG_printf(("4%s: (%s)\n", prefix, obj->value.string)); break; case CUPS_PS_BOOLEAN : if (obj->value.boolean) - DEBUG_puts("true"); + DEBUG_printf(("4%s: true", prefix)); else - DEBUG_puts("false"); + DEBUG_printf(("4%s: false", prefix)); break; case CUPS_PS_NULL : - DEBUG_puts("null"); + DEBUG_printf(("4%s: null", prefix)); break; case CUPS_PS_START_ARRAY : - DEBUG_puts("["); + DEBUG_printf(("4%s: [", prefix)); break; case CUPS_PS_END_ARRAY : - DEBUG_puts("]"); + DEBUG_printf(("4%s: ]", prefix)); break; case CUPS_PS_START_DICT : - DEBUG_puts("<<"); + DEBUG_printf(("4%s: <<", prefix)); break; case CUPS_PS_END_DICT : - DEBUG_puts(">>"); + DEBUG_printf(("4%s: >>", prefix)); break; case CUPS_PS_START_PROC : - DEBUG_puts("{"); + DEBUG_printf(("4%s: {", prefix)); break; case CUPS_PS_END_PROC : - DEBUG_puts("}"); + DEBUG_printf(("4%s: }", prefix)); break; case CUPS_PS_CLEARTOMARK : - DEBUG_puts("--cleartomark--"); + DEBUG_printf(("4%s: --cleartomark--", prefix)); break; case CUPS_PS_COPY : - DEBUG_puts("--copy--"); + DEBUG_printf(("4%s: --copy--", prefix)); break; case CUPS_PS_DUP : - DEBUG_puts("--dup--"); + DEBUG_printf(("4%s: --dup--", prefix)); break; case CUPS_PS_INDEX : - DEBUG_puts("--index--"); + DEBUG_printf(("4%s: --index--", prefix)); break; case CUPS_PS_POP : - DEBUG_puts("--pop--"); + DEBUG_printf(("4%s: --pop--", prefix)); break; case CUPS_PS_ROLL : - DEBUG_puts("--roll--"); + DEBUG_printf(("4%s: --roll--", prefix)); break; case CUPS_PS_SETPAGEDEVICE : - DEBUG_puts("--setpagedevice--"); + DEBUG_printf(("4%s: --setpagedevice--", prefix)); break; case CUPS_PS_STOPPED : - DEBUG_puts("--stopped--"); + DEBUG_printf(("4%s: --stopped--", prefix)); break; case CUPS_PS_OTHER : - DEBUG_printf(("--%s--\n", obj->value.other)); + DEBUG_printf(("4%s: --%s--", prefix, obj->value.other)); break; } } @@ -1713,18 +1713,19 @@ DEBUG_object(_cups_ps_obj_t *obj) /* I - Object to print */ */ static void -DEBUG_stack(_cups_ps_stack_t *st) /* I - Stack */ +DEBUG_stack(const char *prefix, /* I - Prefix string */ + _cups_ps_stack_t *st) /* I - Stack */ { int c; /* Looping var */ _cups_ps_obj_t *obj; /* Current object on stack */ for (obj = st->objs, c = st->num_objs; c > 0; c --, obj ++) - DEBUG_object(obj); + DEBUG_object(prefix, obj); } #endif /* DEBUG */ /* - * End of "$Id: interpret.c 11848 2014-05-07 00:26:44Z msweet $". + * End of "$Id: interpret.c 12746 2015-06-24 13:28:36Z msweet $". */ diff --git a/filter/raster.c b/filter/raster.c index f36ae1a817..ef1f224541 100644 --- a/filter/raster.c +++ b/filter/raster.c @@ -1,5 +1,5 @@ /* - * "$Id: raster.c 12678 2015-05-28 19:09:48Z msweet $" + * "$Id: raster.c 12747 2015-06-24 15:55:05Z msweet $" * * Raster file routines for CUPS. * @@ -50,6 +50,9 @@ struct _cups_raster_s /**** Raster stream data ****/ *bufptr, /* Current (read) position in buffer */ *bufend; /* End of current (read) buffer */ size_t bufsize; /* Buffer size */ +#ifdef DEBUG + size_t iocount; /* Number of bytes read/written */ +#endif /* DEBUG */ }; @@ -193,7 +196,7 @@ cupsRasterOpenIO( r->sync == CUPS_RASTER_REVSYNCv2) r->swapped = 1; - DEBUG_printf(("r->swapped=%d, r->sync=%08x\n", r->swapped, r->sync)); + DEBUG_printf(("1cupsRasterOpenIO: r->swapped=%d, r->sync=%08x\n", r->swapped, r->sync)); } else { @@ -287,6 +290,8 @@ cupsRasterReadHeader2( * Get the raster header... */ + DEBUG_printf(("cupsRasterReadHeader2(r=%p, h=%p)", r, h)); + if (!cups_raster_read_header(r)) { memset(h, 0, sizeof(cups_page_header2_t)); @@ -325,9 +330,16 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */ unsigned count; /* Repetition count */ + DEBUG_printf(("cupsRasterReadPixels(r=%p, p=%p, len=%u)", r, p, len)); + if (r == NULL || r->mode != CUPS_RASTER_READ || r->remaining == 0 || r->header.cupsBytesPerLine == 0) + { + DEBUG_puts("1cupsRasterReadPixels: Returning 0."); return (0); + } + + DEBUG_printf(("1cupsRasterReadPixels: compressed=%d, remaining=%u", r->compressed, r->remaining)); if (!r->compressed) { @@ -338,7 +350,10 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */ r->remaining -= len / r->header.cupsBytesPerLine; if (cups_raster_io(r, p, len) < (ssize_t)len) + { + DEBUG_puts("1cupsRasterReadPixels: Read error, returning 0."); return (0); + } /* * Swap bytes as needed... @@ -354,6 +369,8 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */ * Return... */ + DEBUG_printf(("1cupsRasterReadPixels: Returning %u", len)); + return (len); } @@ -382,7 +399,10 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */ */ if (!cups_raster_read(r, &byte, 1)) + { + DEBUG_puts("1cupsRasterReadPixels: Read error, returning 0."); return (0); + } r->count = (unsigned)byte + 1; @@ -399,7 +419,10 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */ */ if (!cups_raster_read(r, &byte, 1)) + { + DEBUG_puts("1cupsRasterReadPixels: Read error, returning 0."); return (0); + } if (byte & 128) { @@ -413,7 +436,10 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */ count = (unsigned)bytes; if (!cups_raster_read(r, temp, count)) + { + DEBUG_puts("1cupsRasterReadPixels: Read error, returning 0."); return (0); + } temp += count; bytes -= count; @@ -434,7 +460,10 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */ bytes -= count; if (!cups_raster_read(r, temp, r->bpp)) + { + DEBUG_puts("1cupsRasterReadPixels: Read error, returning 0."); return (0); + } temp += r->bpp; count -= r->bpp; @@ -506,6 +535,8 @@ cupsRasterReadPixels(cups_raster_t *r, /* I - Raster stream */ p += bytes; } + DEBUG_printf(("1cupsRasterReadPixels: Returning %u", len)); + return (len); } @@ -795,10 +826,15 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */ * Write the byte-swapped buffer... */ - return ((unsigned)cups_raster_io(r, r->buffer, len)); + bytes = cups_raster_io(r, r->buffer, len); } else - return ((unsigned)cups_raster_io(r, p, len)); + bytes = cups_raster_io(r, p, len); + + if (bytes < len) + return (0); + else + return (len); } /* @@ -822,7 +858,7 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */ if (memcmp(p, r->pcurrent, (size_t)bytes)) { - if (!cups_raster_write(r, r->pixels)) + if (cups_raster_write(r, r->pixels) <= 0) return (0); r->count = 0; @@ -851,10 +887,15 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */ r->remaining --; if (r->remaining == 0) - return ((unsigned)cups_raster_write(r, r->pixels)); + { + if (cups_raster_write(r, r->pixels) <= 0) + return (0); + else + return (len); + } else if (r->count == 256) { - if (cups_raster_write(r, r->pixels) == 0) + if (cups_raster_write(r, r->pixels) <= 0) return (0); r->count = 0; @@ -891,7 +932,10 @@ cupsRasterWritePixels(cups_raster_t *r, /* I - Raster stream */ r->remaining --; if (r->remaining == 0) - return ((unsigned)cups_raster_write(r, r->pixels)); + { + if (cups_raster_write(r, r->pixels) <= 0) + return (0); + } } } } @@ -911,9 +955,13 @@ cups_raster_read_header( size_t len; /* Length for read/swap */ + DEBUG_printf(("3cups_raster_read_header(r=%p), r->mode=%d", r, r ? r->mode : 0)); + if (r == NULL || r->mode != CUPS_RASTER_READ) return (0); + DEBUG_printf(("4cups_raster_read_header: r->iocount=" CUPS_LLFMT, CUPS_LLCAST r->iocount)); + /* * Get the length of the raster header... */ @@ -923,6 +971,8 @@ cups_raster_read_header( else len = sizeof(cups_page_header2_t); + DEBUG_printf(("4cups_raster_read_header: len=%d", (int)len)); + /* * Read the header... */ @@ -930,7 +980,10 @@ cups_raster_read_header( memset(&(r->header), 0, sizeof(r->header)); if (cups_raster_read(r, (unsigned char *)&(r->header), len) < (ssize_t)len) + { + DEBUG_printf(("4cups_raster_read_header: EOF, r->iocount=" CUPS_LLFMT, CUPS_LLCAST r->iocount)); return (0); + } /* * Swap bytes as needed... @@ -942,21 +995,19 @@ cups_raster_read_header( temp; /* Temporary copy */ - DEBUG_puts("Swapping header bytes..."); + DEBUG_puts("4cups_raster_read_header: Swapping header bytes."); for (len = 81, s = &(r->header.AdvanceDistance); len > 0; len --, s ++) { - DEBUG_printf(("%08x =>", *s)); - temp = *s; *s = ((temp & 0xff) << 24) | ((temp & 0xff00) << 8) | ((temp & 0xff0000) >> 8) | ((temp & 0xff000000) >> 24); - DEBUG_printf((" %08x\n", *s)); + DEBUG_printf(("4cups_raster_read_header: %08x => %08x", temp, *s)); } } @@ -966,6 +1017,8 @@ cups_raster_read_header( cups_raster_update(r); + DEBUG_printf(("4cups_raster_read_header: cupsBitsPerPixel=%u, cupsBitsPerColor=%u, cupsBytesPerLine=%u, cupsWidth=%u, cupsHeight=%u, r->bpp=%d", r->header.cupsBitsPerPixel, r->header.cupsBitsPerColor, r->header.cupsBytesPerLine, r->header.cupsWidth, r->header.cupsHeight, r->bpp)); + return (r->header.cupsBitsPerPixel != 0 && r->header.cupsBitsPerColor != 0 && r->header.cupsBytesPerLine != 0 && r->header.cupsHeight != 0 && (r->header.cupsBytesPerLine % r->bpp) == 0); } @@ -983,20 +1036,31 @@ cups_raster_io(cups_raster_t *r, /* I - Raster stream */ total; /* Total bytes read/written */ - DEBUG_printf(("4cups_raster_io(r=%p, buf=%p, bytes=" CUPS_LLFMT ")", r, buf, CUPS_LLCAST bytes)); + DEBUG_printf(("5cups_raster_io(r=%p, buf=%p, bytes=" CUPS_LLFMT ")", r, buf, CUPS_LLCAST bytes)); for (total = 0; total < (ssize_t)bytes; total += count, buf += count) { count = (*r->iocb)(r->ctx, buf, bytes - (size_t)total); - DEBUG_printf(("5cups_raster_io: count=%d, total=%d", (int)count, - (int)total)); + DEBUG_printf(("6cups_raster_io: count=%d, total=%d", (int)count, (int)total)); if (count == 0) + { + DEBUG_puts("6cups_raster_io: Returning 0."); return (0); + } else if (count < 0) + { + DEBUG_puts("6cups_raster_io: Returning -1 on error."); return (-1); + } + +#ifdef DEBUG + r->iocount += (size_t)count; +#endif /* DEBUG */ } + DEBUG_printf(("6cups_raster_io: Returning " CUPS_LLFMT ".", CUPS_LLCAST total)); + return (total); } @@ -1015,7 +1079,7 @@ cups_raster_read(cups_raster_t *r, /* I - Raster stream */ total; /* Total bytes read */ - DEBUG_printf(("cups_raster_read(r=%p, buf=%p, bytes=" CUPS_LLFMT ")\n", r, buf, CUPS_LLCAST bytes)); + DEBUG_printf(("5cups_raster_read(r=%p, buf=%p, bytes=" CUPS_LLFMT ")\n", r, buf, CUPS_LLCAST bytes)); if (!r->compressed) return (cups_raster_io(r, buf, bytes)); @@ -1025,6 +1089,8 @@ cups_raster_read(cups_raster_t *r, /* I - Raster stream */ */ count = (ssize_t)(2 * r->header.cupsBytesPerLine); + if (count < 65536) + count = 65536; if ((size_t)count > r->bufsize) { @@ -1057,7 +1123,7 @@ cups_raster_read(cups_raster_t *r, /* I - Raster stream */ { count = (ssize_t)bytes - total; - DEBUG_printf(("count=" CUPS_LLFMT ", remaining=" CUPS_LLFMT ", buf=%p, bufptr=%p, bufend=%p...\n", CUPS_LLCAST count, CUPS_LLCAST remaining, buf, r->bufptr, r->bufend)); + DEBUG_printf(("6cups_raster_read: count=" CUPS_LLFMT ", remaining=" CUPS_LLFMT ", buf=%p, bufptr=%p, bufend=%p", CUPS_LLCAST count, CUPS_LLCAST remaining, buf, r->bufptr, r->bufend)); if (remaining == 0) { @@ -1073,6 +1139,10 @@ cups_raster_read(cups_raster_t *r, /* I - Raster stream */ r->bufptr = r->buffer; r->bufend = r->buffer + remaining; + +#ifdef DEBUG + r->iocount += (size_t)remaining; +#endif /* DEBUG */ } else { @@ -1085,6 +1155,10 @@ cups_raster_read(cups_raster_t *r, /* I - Raster stream */ if (count <= 0) return (0); +#ifdef DEBUG + r->iocount += (size_t)count; +#endif /* DEBUG */ + continue; } } @@ -1134,6 +1208,8 @@ cups_raster_read(cups_raster_t *r, /* I - Raster stream */ } } + DEBUG_printf(("6cups_raster_read: Returning %ld", (long)total)); + return (total); } @@ -1283,15 +1359,15 @@ cups_raster_write( count; /* Count */ - DEBUG_printf(("cups_raster_write(r=%p, pixels=%p)\n", r, pixels)); + DEBUG_printf(("3cups_raster_write(r=%p, pixels=%p)\n", r, pixels)); /* * Allocate a write buffer as needed... */ count = r->header.cupsBytesPerLine * 2; - if (count < 3) - count = 3; + if (count < 65536) + count = 65536; if ((size_t)count > r->bufsize) { @@ -1301,7 +1377,10 @@ cups_raster_write( wptr = malloc(count); if (!wptr) + { + DEBUG_printf(("4cups_raster_write: Unable to allocate " CUPS_LLFMT " bytes for raster buffer: %s", CUPS_LLCAST count, strerror(errno))); return (-1); + } r->buffer = wptr; r->bufsize = count; @@ -1374,6 +1453,8 @@ cups_raster_write( } } + DEBUG_printf(("4cups_raster_write: Writing " CUPS_LLFMT " bytes.", CUPS_LLCAST (wptr - r->buffer))); + return (cups_raster_io(r, r->buffer, (size_t)(wptr - r->buffer))); } @@ -1398,7 +1479,12 @@ cups_read_fd(void *ctx, /* I - File descriptor as pointer */ while ((count = read(fd, buf, bytes)) < 0) #endif /* WIN32 */ if (errno != EINTR && errno != EAGAIN) + { + DEBUG_printf(("4cups_read_fd: %s", strerror(errno))); return (-1); + } + + DEBUG_printf(("4cups_read_fd: Returning %d bytes.", (int)count)); return (count); } @@ -1450,12 +1536,15 @@ cups_write_fd(void *ctx, /* I - File descriptor pointer */ while ((count = write(fd, buf, bytes)) < 0) #endif /* WIN32 */ if (errno != EINTR && errno != EAGAIN) + { + DEBUG_printf(("4cups_write_fd: %s", strerror(errno))); return (-1); + } return (count); } /* - * End of "$Id: raster.c 12678 2015-05-28 19:09:48Z msweet $". + * End of "$Id: raster.c 12747 2015-06-24 15:55:05Z msweet $". */ diff --git a/filter/testraster.c b/filter/testraster.c index 2e4d324a85..b2220b269e 100644 --- a/filter/testraster.c +++ b/filter/testraster.c @@ -1,9 +1,9 @@ /* - * "$Id: testraster.c 11558 2014-02-06 18:33:34Z msweet $" + * "$Id: testraster.c 12746 2015-06-24 13:28:36Z msweet $" * * Raster test program routines for CUPS. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2015 by Apple Inc. * Copyright 1997-2007 by Easy Software Products. * * These coded instructions, statements, and computer programs are the @@ -496,6 +496,8 @@ do_ras_file(const char *filename) /* I - Filename */ free(data); } + printf("EOF at %ld\n", (long)lseek(fd, SEEK_CUR, 0)); + cupsRasterClose(ras); close(fd); @@ -1064,5 +1066,5 @@ print_changes( /* - * End of "$Id: testraster.c 11558 2014-02-06 18:33:34Z msweet $". + * End of "$Id: testraster.c 12746 2015-06-24 13:28:36Z msweet $". */ diff --git a/locale/cups.pot b/locale/cups.pot index d7d2101e86..e6c5beb51a 100644 --- a/locale/cups.pot +++ b/locale/cups.pot @@ -30,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.6\n" "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1785,7 +1785,7 @@ msgstr "" msgid "%s accepting requests since %s" msgstr "" -#: scheduler/ipp.c:9984 +#: scheduler/ipp.c:9986 #, c-format msgid "%s cannot be changed." msgstr "" @@ -3264,7 +3264,7 @@ msgstr "" msgid "B9" msgstr "" -#: scheduler/ipp.c:10929 +#: scheduler/ipp.c:10931 #, c-format msgid "Bad 'document-format' value \"%s\"." msgstr "" @@ -3333,12 +3333,12 @@ msgstr "" msgid "Bad device-uri scheme \"%s\"." msgstr "" -#: scheduler/ipp.c:8141 scheduler/ipp.c:8159 scheduler/ipp.c:9385 +#: scheduler/ipp.c:8143 scheduler/ipp.c:8161 scheduler/ipp.c:9387 #, c-format msgid "Bad document-format \"%s\"." msgstr "" -#: scheduler/ipp.c:9403 +#: scheduler/ipp.c:9405 #, c-format msgid "Bad document-format-default \"%s\"." msgstr "" @@ -3360,7 +3360,7 @@ msgstr "" msgid "Bad job-name value: Wrong type or count." msgstr "" -#: scheduler/ipp.c:9999 +#: scheduler/ipp.c:10001 msgid "Bad job-priority value." msgstr "" @@ -3373,24 +3373,24 @@ msgstr "" msgid "Bad job-sheets value type." msgstr "" -#: scheduler/ipp.c:10029 +#: scheduler/ipp.c:10031 msgid "Bad job-state value." msgstr "" -#: scheduler/ipp.c:2970 scheduler/ipp.c:3430 scheduler/ipp.c:5935 -#: scheduler/ipp.c:6082 scheduler/ipp.c:7570 scheduler/ipp.c:7839 -#: scheduler/ipp.c:8703 scheduler/ipp.c:8927 scheduler/ipp.c:9279 -#: scheduler/ipp.c:9892 +#: scheduler/ipp.c:2970 scheduler/ipp.c:3432 scheduler/ipp.c:5937 +#: scheduler/ipp.c:6084 scheduler/ipp.c:7572 scheduler/ipp.c:7841 +#: scheduler/ipp.c:8705 scheduler/ipp.c:8929 scheduler/ipp.c:9281 +#: scheduler/ipp.c:9894 #, c-format msgid "Bad job-uri \"%s\"." msgstr "" -#: scheduler/ipp.c:2018 scheduler/ipp.c:5473 +#: scheduler/ipp.c:2018 scheduler/ipp.c:5475 #, c-format msgid "Bad notify-pull-method \"%s\"." msgstr "" -#: scheduler/ipp.c:1982 scheduler/ipp.c:5437 +#: scheduler/ipp.c:1982 scheduler/ipp.c:5439 #, c-format msgid "Bad notify-recipient-uri \"%s\"." msgstr "" @@ -3495,7 +3495,7 @@ msgstr "" msgid "Cancel RSS Subscription" msgstr "" -#: backend/ipp.c:2205 +#: backend/ipp.c:2206 msgid "Canceling print job." msgstr "" @@ -3512,7 +3512,7 @@ msgstr "" msgid "Change Settings" msgstr "" -#: scheduler/ipp.c:2030 scheduler/ipp.c:5485 +#: scheduler/ipp.c:2030 scheduler/ipp.c:5487 #, c-format msgid "Character set \"%s\" not supported." msgstr "" @@ -3525,7 +3525,7 @@ msgstr "" msgid "Clean Print Heads" msgstr "" -#: scheduler/ipp.c:3882 +#: scheduler/ipp.c:3884 msgid "Close-Job doesn't support the job-uri attribute." msgstr "" @@ -3669,7 +3669,7 @@ msgstr "" msgid "Disabled" msgstr "" -#: scheduler/ipp.c:5984 +#: scheduler/ipp.c:5986 #, c-format msgid "Document #%d does not exist in job #%d." msgstr "" @@ -3713,7 +3713,7 @@ msgstr "" msgid "English" msgstr "" -#: scheduler/client.c:2219 +#: scheduler/client.c:2226 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 "" @@ -4096,10 +4096,10 @@ msgstr "" msgid "Glossy Paper" msgstr "" -#: scheduler/ipp.c:2948 scheduler/ipp.c:3356 scheduler/ipp.c:3894 -#: scheduler/ipp.c:5913 scheduler/ipp.c:6060 scheduler/ipp.c:7547 -#: scheduler/ipp.c:8681 scheduler/ipp.c:8905 scheduler/ipp.c:9257 -#: scheduler/ipp.c:9870 +#: scheduler/ipp.c:2948 scheduler/ipp.c:3358 scheduler/ipp.c:3896 +#: scheduler/ipp.c:5915 scheduler/ipp.c:6062 scheduler/ipp.c:7549 +#: scheduler/ipp.c:8683 scheduler/ipp.c:8907 scheduler/ipp.c:9259 +#: scheduler/ipp.c:9872 msgid "Got a printer-uri attribute but no job-id." msgstr "" @@ -4344,42 +4344,42 @@ msgstr "" msgid "JIS B9" msgstr "" -#: scheduler/ipp.c:8977 +#: scheduler/ipp.c:8979 #, c-format msgid "Job #%d cannot be restarted - no files." msgstr "" #: scheduler/ipp.c:2988 scheduler/ipp.c:3222 scheduler/ipp.c:3281 -#: scheduler/ipp.c:3458 scheduler/ipp.c:3904 scheduler/ipp.c:5571 -#: scheduler/ipp.c:5953 scheduler/ipp.c:6100 scheduler/ipp.c:6438 -#: scheduler/ipp.c:7394 scheduler/ipp.c:7416 scheduler/ipp.c:7588 -#: scheduler/ipp.c:7813 scheduler/ipp.c:7856 scheduler/ipp.c:8721 -#: scheduler/ipp.c:8945 scheduler/ipp.c:9297 scheduler/ipp.c:9910 +#: scheduler/ipp.c:3460 scheduler/ipp.c:3906 scheduler/ipp.c:5573 +#: scheduler/ipp.c:5955 scheduler/ipp.c:6102 scheduler/ipp.c:6440 +#: scheduler/ipp.c:7396 scheduler/ipp.c:7418 scheduler/ipp.c:7590 +#: scheduler/ipp.c:7815 scheduler/ipp.c:7858 scheduler/ipp.c:8723 +#: scheduler/ipp.c:8947 scheduler/ipp.c:9299 scheduler/ipp.c:9912 #, c-format msgid "Job #%d does not exist." msgstr "" -#: scheduler/ipp.c:3490 +#: scheduler/ipp.c:3492 #, c-format msgid "Job #%d is already aborted - can't cancel." msgstr "" -#: scheduler/ipp.c:3484 +#: scheduler/ipp.c:3486 #, c-format msgid "Job #%d is already canceled - can't cancel." msgstr "" -#: scheduler/ipp.c:3496 +#: scheduler/ipp.c:3498 #, c-format msgid "Job #%d is already completed - can't cancel." msgstr "" -#: scheduler/ipp.c:7614 scheduler/ipp.c:7898 scheduler/ipp.c:9925 +#: scheduler/ipp.c:7616 scheduler/ipp.c:7900 scheduler/ipp.c:9927 #, c-format msgid "Job #%d is finished and cannot be altered." msgstr "" -#: scheduler/ipp.c:8959 +#: scheduler/ipp.c:8961 #, c-format msgid "Job #%d is not complete." msgstr "" @@ -4389,28 +4389,28 @@ msgstr "" msgid "Job #%d is not held for authentication." msgstr "" -#: scheduler/ipp.c:8735 +#: scheduler/ipp.c:8737 #, c-format msgid "Job #%d is not held." msgstr "" -#: cgi-bin/ipp-var.c:1035 +#: cgi-bin/ipp-var.c:1038 msgid "Job Completed" msgstr "" -#: cgi-bin/ipp-var.c:1033 +#: cgi-bin/ipp-var.c:1036 msgid "Job Created" msgstr "" -#: cgi-bin/ipp-var.c:1039 +#: cgi-bin/ipp-var.c:1042 msgid "Job Options Changed" msgstr "" -#: cgi-bin/ipp-var.c:1037 +#: cgi-bin/ipp-var.c:1040 msgid "Job Stopped" msgstr "" -#: scheduler/ipp.c:10007 +#: scheduler/ipp.c:10009 msgid "Job is completed and cannot be changed." msgstr "" @@ -4418,11 +4418,11 @@ msgstr "" msgid "Job operation failed" msgstr "" -#: scheduler/ipp.c:10043 scheduler/ipp.c:10060 scheduler/ipp.c:10071 +#: scheduler/ipp.c:10045 scheduler/ipp.c:10062 scheduler/ipp.c:10073 msgid "Job state cannot be changed." msgstr "" -#: scheduler/ipp.c:8825 +#: scheduler/ipp.c:8827 msgid "Job subscriptions cannot be renewed." msgstr "" @@ -4442,7 +4442,7 @@ msgstr "" msgid "Label Top" msgstr "" -#: scheduler/ipp.c:2039 scheduler/ipp.c:5494 +#: scheduler/ipp.c:2039 scheduler/ipp.c:5496 #, c-format msgid "Language \"%s\" not supported." msgstr "" @@ -4484,7 +4484,7 @@ msgid "Long-Edge (Portrait)" msgstr "" #: cups/http-support.c:1725 -msgid "Looking for printer." +msgid "Looking for printer..." msgstr "" #: ppdc/sample.c:260 @@ -4527,7 +4527,7 @@ msgstr "" msgid "Missing asterisk in column 1" msgstr "" -#: scheduler/ipp.c:5976 +#: scheduler/ipp.c:5978 msgid "Missing document-number attribute." msgstr "" @@ -4542,7 +4542,7 @@ msgstr "" msgid "Missing form variable" msgstr "" -#: scheduler/ipp.c:9351 +#: scheduler/ipp.c:9353 msgid "Missing last-document attribute in request." msgstr "" @@ -4554,7 +4554,7 @@ msgstr "" msgid "Missing media-size in media-col." msgstr "" -#: scheduler/ipp.c:6579 +#: scheduler/ipp.c:6581 msgid "Missing notify-subscription-ids attribute." msgstr "" @@ -4616,11 +4616,11 @@ msgstr "" msgid "Modify Printer" msgstr "" -#: cgi-bin/ipp-var.c:410 cgi-bin/ipp-var.c:501 +#: cgi-bin/ipp-var.c:413 cgi-bin/ipp-var.c:504 msgid "Move All Jobs" msgstr "" -#: cgi-bin/ipp-var.c:349 cgi-bin/ipp-var.c:408 cgi-bin/ipp-var.c:499 +#: cgi-bin/ipp-var.c:352 cgi-bin/ipp-var.c:411 cgi-bin/ipp-var.c:502 msgid "Move Job" msgstr "" @@ -4672,7 +4672,7 @@ msgstr "" msgid "No active connection." msgstr "" -#: scheduler/ipp.c:3407 +#: scheduler/ipp.c:3409 #, c-format msgid "No active jobs on %s." msgstr "" @@ -4689,11 +4689,11 @@ msgstr "" msgid "No community name" msgstr "" -#: scheduler/ipp.c:5776 +#: scheduler/ipp.c:5778 msgid "No default printer." msgstr "" -#: cgi-bin/ipp-var.c:421 scheduler/ipp.c:7160 +#: cgi-bin/ipp-var.c:424 scheduler/ipp.c:7162 msgid "No destinations added." msgstr "" @@ -4709,7 +4709,7 @@ msgstr "" msgid "No error-status" msgstr "" -#: scheduler/ipp.c:8103 scheduler/ipp.c:9365 +#: scheduler/ipp.c:8105 scheduler/ipp.c:9367 msgid "No file in print request." msgstr "" @@ -4738,7 +4738,7 @@ msgstr "" msgid "No printer-uri found for class" msgstr "" -#: scheduler/ipp.c:6184 +#: scheduler/ipp.c:6186 msgid "No printer-uri in request." msgstr "" @@ -4758,11 +4758,11 @@ msgstr "" msgid "No request-id" msgstr "" -#: scheduler/ipp.c:5379 +#: scheduler/ipp.c:5381 msgid "No subscription attributes in request." msgstr "" -#: scheduler/ipp.c:7487 +#: scheduler/ipp.c:7489 msgid "No subscriptions found." msgstr "" @@ -4806,7 +4806,7 @@ msgstr "" msgid "Not Supported" msgstr "" -#: scheduler/ipp.c:1506 scheduler/ipp.c:10624 +#: scheduler/ipp.c:1506 scheduler/ipp.c:10626 msgid "Not allowed to print." msgstr "" @@ -5046,7 +5046,7 @@ msgstr "" msgid "Print Speed" msgstr "" -#: cgi-bin/ipp-var.c:777 +#: cgi-bin/ipp-var.c:780 msgid "Print Test Page" msgstr "" @@ -5062,19 +5062,19 @@ msgstr "" msgid "Print file sent." msgstr "" -#: backend/ipp.c:2179 +#: backend/ipp.c:2180 msgid "Print job canceled at printer." msgstr "" -#: backend/ipp.c:2171 +#: backend/ipp.c:2172 msgid "Print job too large." msgstr "" -#: backend/ipp.c:1653 +#: backend/ipp.c:1654 msgid "Print job was not accepted." msgstr "" -#: cgi-bin/ipp-var.c:1027 +#: cgi-bin/ipp-var.c:1030 msgid "Printer Added" msgstr "" @@ -5082,15 +5082,15 @@ msgstr "" msgid "Printer Default" msgstr "" -#: cgi-bin/ipp-var.c:1031 +#: cgi-bin/ipp-var.c:1034 msgid "Printer Deleted" msgstr "" -#: cgi-bin/ipp-var.c:1029 +#: cgi-bin/ipp-var.c:1032 msgid "Printer Modified" msgstr "" -#: cgi-bin/ipp-var.c:1025 +#: cgi-bin/ipp-var.c:1028 msgid "Printer Paused" msgstr "" @@ -5098,11 +5098,11 @@ msgstr "" msgid "Printer Settings" msgstr "" -#: backend/ipp.c:2174 +#: backend/ipp.c:2175 msgid "Printer cannot print supplied content." msgstr "" -#: backend/ipp.c:2177 +#: backend/ipp.c:2178 msgid "Printer cannot print with supplied options." msgstr "" @@ -5124,7 +5124,7 @@ msgstr "" msgid "Quarto" msgstr "" -#: scheduler/ipp.c:1501 scheduler/ipp.c:10619 +#: scheduler/ipp.c:1501 scheduler/ipp.c:10621 msgid "Quota limit reached." msgstr "" @@ -5195,19 +5195,19 @@ msgstr "" msgid "Sending data to printer." msgstr "" -#: cgi-bin/ipp-var.c:1041 +#: cgi-bin/ipp-var.c:1044 msgid "Server Restarted" msgstr "" -#: cgi-bin/ipp-var.c:1047 +#: cgi-bin/ipp-var.c:1050 msgid "Server Security Auditing" msgstr "" -#: cgi-bin/ipp-var.c:1043 +#: cgi-bin/ipp-var.c:1046 msgid "Server Started" msgstr "" -#: cgi-bin/ipp-var.c:1045 +#: cgi-bin/ipp-var.c:1048 msgid "Server Stopped" msgstr "" @@ -5276,8 +5276,8 @@ msgstr "" msgid "Statement" msgstr "" -#: scheduler/ipp.c:3553 scheduler/ipp.c:6595 scheduler/ipp.c:7300 -#: scheduler/ipp.c:8813 +#: scheduler/ipp.c:3555 scheduler/ipp.c:6597 scheduler/ipp.c:7302 +#: scheduler/ipp.c:8815 #, c-format msgid "Subscription #%d does not exist." msgstr "" @@ -5331,8 +5331,8 @@ msgstr "" msgid "The \"%s\" attribute is required for print jobs." msgstr "" -#: scheduler/ipp.c:6255 scheduler/ipp.c:6335 scheduler/ipp.c:6348 -#: scheduler/ipp.c:6360 scheduler/ipp.c:6375 +#: scheduler/ipp.c:6257 scheduler/ipp.c:6337 scheduler/ipp.c:6350 +#: scheduler/ipp.c:6362 scheduler/ipp.c:6377 #, c-format msgid "The %s attribute cannot be provided with job-ids." msgstr "" @@ -5342,17 +5342,17 @@ msgstr "" msgid "The '%s' Job Status attribute cannot be supplied in a job creation request." msgstr "" -#: scheduler/ipp.c:5188 +#: scheduler/ipp.c:5190 #, c-format msgid "The '%s' operation attribute cannot be supplied in a Create-Job request." msgstr "" -#: scheduler/ipp.c:6825 +#: scheduler/ipp.c:6827 #, c-format msgid "The PPD file \"%s\" could not be found." msgstr "" -#: scheduler/ipp.c:6812 +#: scheduler/ipp.c:6814 #, c-format msgid "The PPD file \"%s\" could not be opened: %s" msgstr "" @@ -5386,7 +5386,7 @@ msgstr "" msgid "The notify-lease-duration attribute cannot be used with job subscriptions." msgstr "" -#: scheduler/ipp.c:2049 scheduler/ipp.c:5504 +#: scheduler/ipp.c:2049 scheduler/ipp.c:5506 #, c-format msgid "The notify-user-data value is too large (%d > 63 octets)." msgstr "" @@ -5408,7 +5408,7 @@ msgid "The printer did not respond." msgstr "" #: backend/ipp.c:829 backend/ipp.c:948 backend/ipp.c:1062 backend/ipp.c:1459 -#: backend/ipp.c:1625 backend/lpd.c:836 backend/socket.c:379 +#: backend/ipp.c:1626 backend/lpd.c:836 backend/socket.c:379 #: backend/usb-unix.c:124 backend/usb-unix.c:414 backend/usb-unix.c:497 msgid "The printer is in use." msgstr "" @@ -5463,13 +5463,13 @@ msgid "The printer name may only contain up to 127 printable characters and may msgstr "" #: scheduler/ipp.c:787 scheduler/ipp.c:1055 scheduler/ipp.c:3194 -#: scheduler/ipp.c:3373 scheduler/ipp.c:5171 scheduler/ipp.c:5338 -#: scheduler/ipp.c:5652 scheduler/ipp.c:6221 scheduler/ipp.c:7030 -#: scheduler/ipp.c:7086 scheduler/ipp.c:7406 scheduler/ipp.c:7672 -#: scheduler/ipp.c:7761 scheduler/ipp.c:7794 scheduler/ipp.c:8118 -#: scheduler/ipp.c:8525 scheduler/ipp.c:8607 scheduler/ipp.c:9779 -#: scheduler/ipp.c:10231 scheduler/ipp.c:10582 scheduler/ipp.c:10664 -#: scheduler/ipp.c:11039 +#: scheduler/ipp.c:3375 scheduler/ipp.c:5173 scheduler/ipp.c:5340 +#: scheduler/ipp.c:5654 scheduler/ipp.c:6223 scheduler/ipp.c:7032 +#: scheduler/ipp.c:7088 scheduler/ipp.c:7408 scheduler/ipp.c:7674 +#: scheduler/ipp.c:7763 scheduler/ipp.c:7796 scheduler/ipp.c:8120 +#: scheduler/ipp.c:8527 scheduler/ipp.c:8609 scheduler/ipp.c:9781 +#: scheduler/ipp.c:10233 scheduler/ipp.c:10584 scheduler/ipp.c:10666 +#: scheduler/ipp.c:11041 msgid "The printer or class does not exist." msgstr "" @@ -5518,16 +5518,16 @@ msgstr "" msgid "The subscription name may not contain spaces, slashes (/), question marks (?), or the pound sign (#)." msgstr "" -#: scheduler/client.c:2242 +#: scheduler/client.c:2249 msgid "The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it." msgstr "" -#: scheduler/ipp.c:6319 +#: scheduler/ipp.c:6321 #, c-format msgid "The which-jobs value \"%s\" is not supported." msgstr "" -#: scheduler/ipp.c:5582 +#: scheduler/ipp.c:5584 msgid "There are too many subscriptions." msgstr "" @@ -5634,7 +5634,7 @@ msgstr "" msgid "Unable to add class" msgstr "" -#: backend/ipp.c:1807 +#: backend/ipp.c:1808 msgid "Unable to add document to print job." msgstr "" @@ -5663,7 +5663,7 @@ msgstr "" msgid "Unable to cancel RSS subscription" msgstr "" -#: backend/ipp.c:2084 backend/ipp.c:2532 +#: backend/ipp.c:2085 backend/ipp.c:2533 msgid "Unable to cancel print job." msgstr "" @@ -5801,7 +5801,7 @@ msgstr "" msgid "Unable to establish a secure connection to host." msgstr "" -#: cgi-bin/ipp-var.c:350 +#: cgi-bin/ipp-var.c:353 msgid "Unable to find destination for job" msgstr "" @@ -5813,7 +5813,7 @@ msgstr "" msgid "Unable to find server credentials." msgstr "" -#: backend/ipp.c:3220 +#: backend/ipp.c:3221 msgid "Unable to get backend exit status." msgstr "" @@ -5877,11 +5877,11 @@ msgstr "" msgid "Unable to modify printer" msgstr "" -#: cgi-bin/ipp-var.c:417 cgi-bin/ipp-var.c:506 +#: cgi-bin/ipp-var.c:420 cgi-bin/ipp-var.c:509 msgid "Unable to move job" msgstr "" -#: cgi-bin/ipp-var.c:419 cgi-bin/ipp-var.c:508 +#: cgi-bin/ipp-var.c:422 cgi-bin/ipp-var.c:511 msgid "Unable to move jobs" msgstr "" @@ -5897,7 +5897,7 @@ msgstr "" msgid "Unable to open device file" msgstr "" -#: scheduler/ipp.c:5997 +#: scheduler/ipp.c:5999 #, c-format msgid "Unable to open document #%d in job #%d." msgstr "" @@ -5906,7 +5906,7 @@ msgstr "" msgid "Unable to open help file." msgstr "" -#: backend/ipp.c:382 backend/ipp.c:1554 backend/ipp.c:1762 backend/lpd.c:496 +#: backend/ipp.c:382 backend/ipp.c:1554 backend/ipp.c:1763 backend/lpd.c:496 #: backend/socket.c:150 backend/usb.c:237 filter/gziptoany.c:73 #: filter/pstops.c:270 msgid "Unable to open print file" @@ -5917,7 +5917,7 @@ msgstr "" msgid "Unable to open raster file" msgstr "" -#: cgi-bin/ipp-var.c:780 +#: cgi-bin/ipp-var.c:783 msgid "Unable to print test page" msgstr "" @@ -5926,7 +5926,7 @@ msgstr "" msgid "Unable to read print data." msgstr "" -#: scheduler/ipp.c:8277 scheduler/ipp.c:9518 +#: scheduler/ipp.c:8279 scheduler/ipp.c:9520 msgid "Unable to rename job document file." msgstr "" @@ -5943,7 +5943,7 @@ msgstr "" msgid "Unable to see in file" msgstr "" -#: cgi-bin/ipp-var.c:583 cgi-bin/ipp-var.c:603 +#: cgi-bin/ipp-var.c:586 cgi-bin/ipp-var.c:606 msgid "Unable to send command to printer driver" msgstr "" @@ -5964,7 +5964,7 @@ msgstr "" msgid "Unable to set server default" msgstr "" -#: backend/ipp.c:3079 backend/ipp.c:3156 backend/ipp.c:3164 +#: backend/ipp.c:3080 backend/ipp.c:3157 backend/ipp.c:3165 msgid "Unable to start backend process." msgstr "" @@ -6036,12 +6036,12 @@ msgstr "" msgid "Unknown print mode: \"%s\"." msgstr "" -#: scheduler/ipp.c:10453 +#: scheduler/ipp.c:10455 #, c-format msgid "Unknown printer-error-policy \"%s\"." msgstr "" -#: scheduler/ipp.c:10436 +#: scheduler/ipp.c:10438 #, c-format msgid "Unknown printer-op-policy \"%s\"." msgstr "" @@ -6067,17 +6067,17 @@ msgstr "" msgid "Unknown version option value: \"%s\"." msgstr "" -#: scheduler/ipp.c:10910 +#: scheduler/ipp.c:10912 #, c-format msgid "Unsupported 'compression' value \"%s\"." msgstr "" -#: scheduler/ipp.c:10940 +#: scheduler/ipp.c:10942 #, c-format msgid "Unsupported 'document-format' value \"%s\"." msgstr "" -#: scheduler/ipp.c:11015 +#: scheduler/ipp.c:11017 msgid "Unsupported 'job-name' value." msgstr "" @@ -6086,17 +6086,17 @@ msgstr "" msgid "Unsupported character set \"%s\"." msgstr "" -#: scheduler/ipp.c:8084 scheduler/ipp.c:9330 +#: scheduler/ipp.c:8086 scheduler/ipp.c:9332 #, c-format msgid "Unsupported compression \"%s\"." msgstr "" -#: scheduler/ipp.c:8220 scheduler/ipp.c:9483 +#: scheduler/ipp.c:8222 scheduler/ipp.c:9485 #, c-format msgid "Unsupported document-format \"%s\"." msgstr "" -#: scheduler/ipp.c:9466 +#: scheduler/ipp.c:9468 #, c-format msgid "Unsupported document-format \"%s/%s\"." msgstr "" @@ -6257,7 +6257,7 @@ msgstr "" msgid "Version uses indefinite length" msgstr "" -#: backend/ipp.c:1924 +#: backend/ipp.c:1925 msgid "Waiting for job to complete." msgstr "" @@ -6281,7 +6281,7 @@ msgstr "" msgid "Yes" msgstr "" -#: scheduler/client.c:2229 +#: scheduler/client.c:2236 #, c-format msgid "You must access this page using the URL https://%s:%d%s." msgstr "" @@ -6306,11 +6306,11 @@ msgstr "" msgid "completed" msgstr "" -#: scheduler/ipp.c:5869 +#: scheduler/ipp.c:5871 msgid "cups-deviced failed to execute." msgstr "" -#: scheduler/ipp.c:6748 scheduler/ipp.c:6997 +#: scheduler/ipp.c:6750 scheduler/ipp.c:6999 msgid "cups-driverd failed to execute." msgstr "" @@ -6570,7 +6570,7 @@ msgstr "" msgid "ipptool: Unknown option \"-%c\"." msgstr "" -#: scheduler/ipp.c:7750 +#: scheduler/ipp.c:7752 msgid "job-printer-uri attribute missing." msgstr "" @@ -6827,16 +6827,16 @@ msgstr "" msgid "no system default destination" msgstr "" -#: scheduler/ipp.c:5553 +#: scheduler/ipp.c:5555 msgid "notify-events not specified." msgstr "" -#: scheduler/ipp.c:2003 scheduler/ipp.c:5458 +#: scheduler/ipp.c:2003 scheduler/ipp.c:5460 #, c-format msgid "notify-recipient-uri URI \"%s\" is already used." msgstr "" -#: scheduler/ipp.c:1993 scheduler/ipp.c:5448 +#: scheduler/ipp.c:1993 scheduler/ipp.c:5450 #, c-format msgid "notify-recipient-uri URI \"%s\" uses unknown scheme." msgstr "" diff --git a/locale/cups.strings b/locale/cups.strings index 65bf6e0a51..efe899f625 100644 --- a/locale/cups.strings +++ b/locale/cups.strings @@ -81,39 +81,39 @@ " cupsaddsmb [options] -a" = " cupsaddsmb [options] -a"; " cupstestdsc [options] -" = " cupstestdsc [options] -"; " program | cupstestppd [options] -" = " program | cupstestppd [options] -"; -" %s \"%s %s\" conflicts with \"%s %s\"\n (constraint=\"%s %s %s %s\")." = " %s \"%s %s\" conflicts with \"%s %s\"\n (constraint=\"%s %s %s %s\")."; +" %s \"%s %s\" conflicts with \"%s %s\"\n (constraint=\"%s %s %s %s\")." = " %s “%s %s” conflicts with “%s %s”\n (constraint=“%s %s %s %s”)."; " %s %s %s does not exist." = " %s %s %s does not exist."; -" %s %s file \"%s\" has the wrong capitalization." = " %s %s file \"%s\" has the wrong capitalization."; +" %s %s file \"%s\" has the wrong capitalization." = " %s %s file “%s” has the wrong capitalization."; " %s Bad %s choice %s.\n REF: Page 122, section 5.17" = " %s Bad %s choice %s.\n REF: Page 122, section 5.17"; -" %s Bad UTF-8 \"%s\" translation string for option %s, choice %s." = " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s."; -" %s Bad UTF-8 \"%s\" translation string for option %s." = " %s Bad UTF-8 \"%s\" translation string for option %s."; -" %s Bad cupsFilter value \"%s\"." = " %s Bad cupsFilter value \"%s\"."; -" %s Bad cupsFilter2 value \"%s\"." = " %s Bad cupsFilter2 value \"%s\"."; +" %s Bad UTF-8 \"%s\" translation string for option %s, choice %s." = " %s Bad UTF-8 “%s” translation string for option %s, choice %s."; +" %s Bad UTF-8 \"%s\" translation string for option %s." = " %s Bad UTF-8 “%s” translation string for option %s."; +" %s Bad cupsFilter value \"%s\"." = " %s Bad cupsFilter value “%s”."; +" %s Bad cupsFilter2 value \"%s\"." = " %s Bad cupsFilter2 value “%s”."; " %s Bad cupsICCProfile %s." = " %s Bad cupsICCProfile %s."; -" %s Bad cupsPreFilter value \"%s\"." = " %s Bad cupsPreFilter value \"%s\"."; -" %s Bad cupsUIConstraints %s: \"%s\"" = " %s Bad cupsUIConstraints %s: \"%s\""; -" %s Bad language \"%s\"." = " %s Bad language \"%s\"."; -" %s Bad permissions on %s file \"%s\"." = " %s Bad permissions on %s file \"%s\"."; +" %s Bad cupsPreFilter value \"%s\"." = " %s Bad cupsPreFilter value “%s”."; +" %s Bad cupsUIConstraints %s: \"%s\"" = " %s Bad cupsUIConstraints %s: “%s”"; +" %s Bad language \"%s\"." = " %s Bad language “%s”."; +" %s Bad permissions on %s file \"%s\"." = " %s Bad permissions on %s file “%s”."; " %s Bad spelling of %s - should be %s." = " %s Bad spelling of %s - should be %s."; " %s Cannot provide both APScanAppPath and APScanAppBundleID." = " %s Cannot provide both APScanAppPath and APScanAppBundleID."; " %s Default choices conflicting." = " %s Default choices conflicting."; " %s Empty cupsUIConstraints %s" = " %s Empty cupsUIConstraints %s"; -" %s Missing \"%s\" translation string for option %s, choice %s." = " %s Missing \"%s\" translation string for option %s, choice %s."; -" %s Missing \"%s\" translation string for option %s." = " %s Missing \"%s\" translation string for option %s."; -" %s Missing %s file \"%s\"." = " %s Missing %s file \"%s\"."; +" %s Missing \"%s\" translation string for option %s, choice %s." = " %s Missing “%s” translation string for option %s, choice %s."; +" %s Missing \"%s\" translation string for option %s." = " %s Missing “%s” translation string for option %s."; +" %s Missing %s file \"%s\"." = " %s Missing %s file “%s”."; " %s Missing REQUIRED PageRegion option.\n REF: Page 100, section 5.14." = " %s Missing REQUIRED PageRegion option.\n REF: Page 100, section 5.14."; " %s Missing REQUIRED PageSize option.\n REF: Page 99, section 5.14." = " %s Missing REQUIRED PageSize option.\n REF: Page 99, section 5.14."; -" %s Missing choice *%s %s in UIConstraints \"*%s %s *%s %s\"." = " %s Missing choice *%s %s in UIConstraints \"*%s %s *%s %s\"."; -" %s Missing choice *%s %s in cupsUIConstraints %s: \"%s\"" = " %s Missing choice *%s %s in cupsUIConstraints %s: \"%s\""; +" %s Missing choice *%s %s in UIConstraints \"*%s %s *%s %s\"." = " %s Missing choice *%s %s in UIConstraints “*%s %s *%s %s”."; +" %s Missing choice *%s %s in cupsUIConstraints %s: \"%s\"" = " %s Missing choice *%s %s in cupsUIConstraints %s: “%s”"; " %s Missing cupsUIResolver %s" = " %s Missing cupsUIResolver %s"; -" %s Missing option %s in UIConstraints \"*%s %s *%s %s\"." = " %s Missing option %s in UIConstraints \"*%s %s *%s %s\"."; -" %s Missing option %s in cupsUIConstraints %s: \"%s\"" = " %s Missing option %s in cupsUIConstraints %s: \"%s\""; -" %s No base translation \"%s\" is included in file." = " %s No base translation \"%s\" is included in file."; +" %s Missing option %s in UIConstraints \"*%s %s *%s %s\"." = " %s Missing option %s in UIConstraints “*%s %s *%s %s”."; +" %s Missing option %s in cupsUIConstraints %s: \"%s\"" = " %s Missing option %s in cupsUIConstraints %s: “%s”"; +" %s No base translation \"%s\" is included in file." = " %s No base translation “%s” is included in file."; " %s REQUIRED %s does not define choice None.\n REF: Page 122, section 5.17" = " %s REQUIRED %s does not define choice None.\n REF: Page 122, section 5.17"; -" %s Size \"%s\" defined for %s but not for %s." = " %s Size \"%s\" defined for %s but not for %s."; -" %s Size \"%s\" has unexpected dimensions (%gx%g)." = " %s Size \"%s\" has unexpected dimensions (%gx%g)."; -" %s Size \"%s\" should be \"%s\"." = " %s Size \"%s\" should be \"%s\"."; -" %s Size \"%s\" should be the Adobe standard name \"%s\"." = " %s Size \"%s\" should be the Adobe standard name \"%s\"."; +" %s Size \"%s\" defined for %s but not for %s." = " %s Size “%s” defined for %s but not for %s."; +" %s Size \"%s\" has unexpected dimensions (%gx%g)." = " %s Size “%s” has unexpected dimensions (%gx%g)."; +" %s Size \"%s\" should be \"%s\"." = " %s Size “%s” should be “%s”."; +" %s Size \"%s\" should be the Adobe standard name \"%s\"." = " %s Size “%s” should be the Adobe standard name “%s”."; " %s cupsICCProfile %s hash value collides with %s." = " %s cupsICCProfile %s hash value collides with %s."; " %s cupsUIResolver %s causes a loop." = " %s cupsUIResolver %s causes a loop."; " %s cupsUIResolver %s does not list at least two different options." = " %s cupsUIResolver %s does not list at least two different options."; @@ -121,15 +121,15 @@ " **FAIL** Bad Default%s %s\n REF: Page 40, section 4.5." = " **FAIL** Bad Default%s %s\n REF: Page 40, section 4.5."; " **FAIL** Bad DefaultImageableArea %s\n REF: Page 102, section 5.15." = " **FAIL** Bad DefaultImageableArea %s\n REF: Page 102, section 5.15."; " **FAIL** Bad DefaultPaperDimension %s\n REF: Page 103, section 5.15." = " **FAIL** Bad DefaultPaperDimension %s\n REF: Page 103, section 5.15."; -" **FAIL** Bad FileVersion \"%s\"\n REF: Page 56, section 5.3." = " **FAIL** Bad FileVersion \"%s\"\n REF: Page 56, section 5.3."; -" **FAIL** Bad FormatVersion \"%s\"\n REF: Page 56, section 5.3." = " **FAIL** Bad FormatVersion \"%s\"\n REF: Page 56, section 5.3."; +" **FAIL** Bad FileVersion \"%s\"\n REF: Page 56, section 5.3." = " **FAIL** Bad FileVersion “%s”\n REF: Page 56, section 5.3."; +" **FAIL** Bad FormatVersion \"%s\"\n REF: Page 56, section 5.3." = " **FAIL** Bad FormatVersion “%s”\n REF: Page 56, section 5.3."; " **FAIL** Bad JobPatchFile attribute in file\n REF: Page 24, section 3.4." = " **FAIL** Bad JobPatchFile attribute in file\n REF: Page 24, section 3.4."; " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1." = " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1."; " **FAIL** Bad LanguageVersion %s - must be English." = " **FAIL** Bad LanguageVersion %s - must be English."; -" **FAIL** Bad Manufacturer (should be \"%s\")\n REF: Page 211, table D.1." = " **FAIL** Bad Manufacturer (should be \"%s\")\n REF: Page 211, table D.1."; -" **FAIL** Bad ModelName - \"%c\" not allowed in string.\n REF: Pages 59-60, section 5.3." = " **FAIL** Bad ModelName - \"%c\" not allowed in string.\n REF: Pages 59-60, section 5.3."; -" **FAIL** Bad PSVersion - not \"(string) int\".\n REF: Pages 62-64, section 5.3." = " **FAIL** Bad PSVersion - not \"(string) int\".\n REF: Pages 62-64, section 5.3."; -" **FAIL** Bad Product - not \"(string)\".\n REF: Page 62, section 5.3." = " **FAIL** Bad Product - not \"(string)\".\n REF: Page 62, section 5.3."; +" **FAIL** Bad Manufacturer (should be \"%s\")\n REF: Page 211, table D.1." = " **FAIL** Bad Manufacturer (should be “%s”)\n REF: Page 211, table D.1."; +" **FAIL** Bad ModelName - \"%c\" not allowed in string.\n REF: Pages 59-60, section 5.3." = " **FAIL** Bad ModelName - “%c” not allowed in string.\n REF: Pages 59-60, section 5.3."; +" **FAIL** Bad PSVersion - not \"(string) int\".\n REF: Pages 62-64, section 5.3." = " **FAIL** Bad PSVersion - not “(string) int”.\n REF: Pages 62-64, section 5.3."; +" **FAIL** Bad Product - not \"(string)\".\n REF: Page 62, section 5.3." = " **FAIL** Bad Product - not “(string)”.\n REF: Page 62, section 5.3."; " **FAIL** Bad ShortNickName - longer than 31 chars.\n REF: Pages 64-65, section 5.3." = " **FAIL** Bad ShortNickName - longer than 31 chars.\n REF: Pages 64-65, section 5.3."; " **FAIL** Bad option %s choice %s\n REF: Page 84, section 5.9" = " **FAIL** Bad option %s choice %s\n REF: Page 84, section 5.9"; " **FAIL** Default option code cannot be interpreted: %s" = " **FAIL** Default option code cannot be interpreted: %s"; @@ -187,7 +187,7 @@ " --cr End lines with CR (Mac OS 9)." = " --cr End lines with CR (Mac OS 9)."; " --crlf End lines with CR + LF (Windows)." = " --crlf End lines with CR + LF (Windows)."; " --domain regex Match domain to regular expression." = " --domain regex Match domain to regular expression."; -" --exec utility [argument ...] ;\n Execute program if true." = " --exec utility [argument ...] ;\n Execute program if true."; +" --exec utility [argument ...] ;\n Execute program if true." = " --exec utility [argument …] ;\n Execute program if true."; " --false Always false." = " --false Always false."; " --help Show help." = " --help Show help."; " --help Show this help." = " --help Show this help."; @@ -258,7 +258,7 @@ " -l List attributes." = " -l List attributes."; " -l Produce plain text output." = " -l Produce plain text output."; " -l Run cupsd on demand." = " -l Run cupsd on demand."; -" -l lang[,lang,...] Specify the output language(s) (locale)." = " -l lang[,lang,...] Specify the output language(s) (locale)."; +" -l lang[,lang,...] Specify the output language(s) (locale)." = " -l lang[,lang,…] Specify the output language(s) (locale)."; " -m Use the ModelName value as the filename." = " -m Use the ModelName value as the filename."; " -m mime/type Set output MIME type (otherwise application/pdf)." = " -m mime/type Set output MIME type (otherwise application/pdf)."; " -n copies Set number of copies." = " -n copies Set number of copies."; @@ -285,7 +285,7 @@ " -u regex Match URI to regular expression." = " -u regex Match URI to regular expression."; " -v Be verbose." = " -v Be verbose."; " -vv Be very verbose." = " -vv Be very verbose."; -" -x utility [argument ...] ;\n Execute program if true." = " -x utility [argument ...] ;\n Execute program if true."; +" -x utility [argument ...] ;\n Execute program if true." = " -x utility [argument …] ;\n Execute program if true."; " -z Compress PPD files using GNU zip." = " -z Compress PPD files using GNU zip."; " IPPFIND_SERVICE_DOMAIN Domain name" = " IPPFIND_SERVICE_DOMAIN Domain name"; " IPPFIND_SERVICE_HOSTNAME\n Fully-qualified domain name" = " IPPFIND_SERVICE_HOSTNAME\n Fully-qualified domain name"; @@ -309,40 +309,40 @@ " {} URI" = " {} URI"; " FAIL" = " FAIL"; " PASS" = " PASS"; -"\"%s\": Bad URI value \"%s\" - %s (RFC 2911 section 4.1.5)." = "\"%s\": Bad URI value \"%s\" - %s (RFC 2911 section 4.1.5)."; -"\"%s\": Bad URI value \"%s\" - bad length %d (RFC 2911 section 4.1.5)." = "\"%s\": Bad URI value \"%s\" - bad length %d (RFC 2911 section 4.1.5)."; -"\"%s\": Bad attribute name - bad length %d (RFC 2911 section 4.1.3)." = "\"%s\": Bad attribute name - bad length %d (RFC 2911 section 4.1.3)."; -"\"%s\": Bad attribute name - invalid character (RFC 2911 section 4.1.3)." = "\"%s\": Bad attribute name - invalid character (RFC 2911 section 4.1.3)."; -"\"%s\": Bad boolen value %d (RFC 2911 section 4.1.11)." = "\"%s\": Bad boolen value %d (RFC 2911 section 4.1.11)."; -"\"%s\": Bad charset value \"%s\" - bad characters (RFC 2911 section 4.1.7)." = "\"%s\": Bad charset value \"%s\" - bad characters (RFC 2911 section 4.1.7)."; -"\"%s\": Bad charset value \"%s\" - bad length %d (RFC 2911 section 4.1.7)." = "\"%s\": Bad charset value \"%s\" - bad length %d (RFC 2911 section 4.1.7)."; -"\"%s\": Bad dateTime UTC hours %u (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime UTC hours %u (RFC 2911 section 4.1.14)."; -"\"%s\": Bad dateTime UTC minutes %u (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime UTC minutes %u (RFC 2911 section 4.1.14)."; -"\"%s\": Bad dateTime UTC sign '%c' (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime UTC sign '%c' (RFC 2911 section 4.1.14)."; -"\"%s\": Bad dateTime day %u (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime day %u (RFC 2911 section 4.1.14)."; -"\"%s\": Bad dateTime deciseconds %u (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime deciseconds %u (RFC 2911 section 4.1.14)."; -"\"%s\": Bad dateTime hours %u (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime hours %u (RFC 2911 section 4.1.14)."; -"\"%s\": Bad dateTime minutes %u (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime minutes %u (RFC 2911 section 4.1.14)."; -"\"%s\": Bad dateTime month %u (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime month %u (RFC 2911 section 4.1.14)."; -"\"%s\": Bad dateTime seconds %u (RFC 2911 section 4.1.14)." = "\"%s\": Bad dateTime seconds %u (RFC 2911 section 4.1.14)."; -"\"%s\": Bad enum value %d - out of range (RFC 2911 section 4.1.4)." = "\"%s\": Bad enum value %d - out of range (RFC 2911 section 4.1.4)."; -"\"%s\": Bad keyword value \"%s\" - bad length %d (RFC 2911 section 4.1.3)." = "\"%s\": Bad keyword value \"%s\" - bad length %d (RFC 2911 section 4.1.3)."; -"\"%s\": Bad keyword value \"%s\" - invalid character (RFC 2911 section 4.1.3)." = "\"%s\": Bad keyword value \"%s\" - invalid character (RFC 2911 section 4.1.3)."; -"\"%s\": Bad mimeMediaType value \"%s\" - bad characters (RFC 2911 section 4.1.9)." = "\"%s\": Bad mimeMediaType value \"%s\" - bad characters (RFC 2911 section 4.1.9)."; -"\"%s\": Bad mimeMediaType value \"%s\" - bad length %d (RFC 2911 section 4.1.9)." = "\"%s\": Bad mimeMediaType value \"%s\" - bad length %d (RFC 2911 section 4.1.9)."; -"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 2911 section 4.1.2)." = "\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 2911 section 4.1.2)."; -"\"%s\": Bad name value \"%s\" - bad length %d (RFC 2911 section 4.1.2)." = "\"%s\": Bad name value \"%s\" - bad length %d (RFC 2911 section 4.1.2)."; -"\"%s\": Bad naturalLanguage value \"%s\" - bad characters (RFC 2911 section 4.1.8)." = "\"%s\": Bad naturalLanguage value \"%s\" - bad characters (RFC 2911 section 4.1.8)."; -"\"%s\": Bad naturalLanguage value \"%s\" - bad length %d (RFC 2911 section 4.1.8)." = "\"%s\": Bad naturalLanguage value \"%s\" - bad length %d (RFC 2911 section 4.1.8)."; -"\"%s\": Bad octetString value - bad length %d (RFC 2911 section 4.1.10)." = "\"%s\": Bad octetString value - bad length %d (RFC 2911 section 4.1.10)."; -"\"%s\": Bad rangeOfInteger value %d-%d - lower greater than upper (RFC 2911 section 4.1.13)." = "\"%s\": Bad rangeOfInteger value %d-%d - lower greater than upper (RFC 2911 section 4.1.13)."; -"\"%s\": Bad resolution value %dx%d%s - bad units value (RFC 2911 section 4.1.15)." = "\"%s\": Bad resolution value %dx%d%s - bad units value (RFC 2911 section 4.1.15)."; -"\"%s\": Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 2911 section 4.1.15)." = "\"%s\": Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 2911 section 4.1.15)."; -"\"%s\": Bad resolution value %dx%d%s - feed resolution must be positive (RFC 2911 section 4.1.15)." = "\"%s\": Bad resolution value %dx%d%s - feed resolution must be positive (RFC 2911 section 4.1.15)."; -"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 2911 section 4.1.1)." = "\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 2911 section 4.1.1)."; -"\"%s\": Bad text value \"%s\" - bad length %d (RFC 2911 section 4.1.1)." = "\"%s\": Bad text value \"%s\" - bad length %d (RFC 2911 section 4.1.1)."; -"\"%s\": Bad uriScheme value \"%s\" - bad characters (RFC 2911 section 4.1.6)." = "\"%s\": Bad uriScheme value \"%s\" - bad characters (RFC 2911 section 4.1.6)."; -"\"%s\": Bad uriScheme value \"%s\" - bad length %d (RFC 2911 section 4.1.6)." = "\"%s\": Bad uriScheme value \"%s\" - bad length %d (RFC 2911 section 4.1.6)."; +"\"%s\": Bad URI value \"%s\" - %s (RFC 2911 section 4.1.5)." = "“%s”: Bad URI value “%s” - %s (RFC 2911 section 4.1.5)."; +"\"%s\": Bad URI value \"%s\" - bad length %d (RFC 2911 section 4.1.5)." = "“%s”: Bad URI value “%s” - bad length %d (RFC 2911 section 4.1.5)."; +"\"%s\": Bad attribute name - bad length %d (RFC 2911 section 4.1.3)." = "“%s”: Bad attribute name - bad length %d (RFC 2911 section 4.1.3)."; +"\"%s\": Bad attribute name - invalid character (RFC 2911 section 4.1.3)." = "“%s”: Bad attribute name - invalid character (RFC 2911 section 4.1.3)."; +"\"%s\": Bad boolen value %d (RFC 2911 section 4.1.11)." = "“%s”: Bad boolen value %d (RFC 2911 section 4.1.11)."; +"\"%s\": Bad charset value \"%s\" - bad characters (RFC 2911 section 4.1.7)." = "“%s”: Bad charset value “%s” - bad characters (RFC 2911 section 4.1.7)."; +"\"%s\": Bad charset value \"%s\" - bad length %d (RFC 2911 section 4.1.7)." = "“%s”: Bad charset value “%s” - bad length %d (RFC 2911 section 4.1.7)."; +"\"%s\": Bad dateTime UTC hours %u (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime UTC hours %u (RFC 2911 section 4.1.14)."; +"\"%s\": Bad dateTime UTC minutes %u (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime UTC minutes %u (RFC 2911 section 4.1.14)."; +"\"%s\": Bad dateTime UTC sign '%c' (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime UTC sign '%c' (RFC 2911 section 4.1.14)."; +"\"%s\": Bad dateTime day %u (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime day %u (RFC 2911 section 4.1.14)."; +"\"%s\": Bad dateTime deciseconds %u (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime deciseconds %u (RFC 2911 section 4.1.14)."; +"\"%s\": Bad dateTime hours %u (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime hours %u (RFC 2911 section 4.1.14)."; +"\"%s\": Bad dateTime minutes %u (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime minutes %u (RFC 2911 section 4.1.14)."; +"\"%s\": Bad dateTime month %u (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime month %u (RFC 2911 section 4.1.14)."; +"\"%s\": Bad dateTime seconds %u (RFC 2911 section 4.1.14)." = "“%s”: Bad dateTime seconds %u (RFC 2911 section 4.1.14)."; +"\"%s\": Bad enum value %d - out of range (RFC 2911 section 4.1.4)." = "“%s”: Bad enum value %d - out of range (RFC 2911 section 4.1.4)."; +"\"%s\": Bad keyword value \"%s\" - bad length %d (RFC 2911 section 4.1.3)." = "“%s”: Bad keyword value “%s” - bad length %d (RFC 2911 section 4.1.3)."; +"\"%s\": Bad keyword value \"%s\" - invalid character (RFC 2911 section 4.1.3)." = "“%s”: Bad keyword value “%s” - invalid character (RFC 2911 section 4.1.3)."; +"\"%s\": Bad mimeMediaType value \"%s\" - bad characters (RFC 2911 section 4.1.9)." = "“%s”: Bad mimeMediaType value “%s” - bad characters (RFC 2911 section 4.1.9)."; +"\"%s\": Bad mimeMediaType value \"%s\" - bad length %d (RFC 2911 section 4.1.9)." = "“%s”: Bad mimeMediaType value “%s” - bad length %d (RFC 2911 section 4.1.9)."; +"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 2911 section 4.1.2)." = "“%s”: Bad name value “%s” - bad UTF-8 sequence (RFC 2911 section 4.1.2)."; +"\"%s\": Bad name value \"%s\" - bad length %d (RFC 2911 section 4.1.2)." = "“%s”: Bad name value “%s” - bad length %d (RFC 2911 section 4.1.2)."; +"\"%s\": Bad naturalLanguage value \"%s\" - bad characters (RFC 2911 section 4.1.8)." = "“%s”: Bad naturalLanguage value “%s” - bad characters (RFC 2911 section 4.1.8)."; +"\"%s\": Bad naturalLanguage value \"%s\" - bad length %d (RFC 2911 section 4.1.8)." = "“%s”: Bad naturalLanguage value “%s” - bad length %d (RFC 2911 section 4.1.8)."; +"\"%s\": Bad octetString value - bad length %d (RFC 2911 section 4.1.10)." = "“%s”: Bad octetString value - bad length %d (RFC 2911 section 4.1.10)."; +"\"%s\": Bad rangeOfInteger value %d-%d - lower greater than upper (RFC 2911 section 4.1.13)." = "“%s”: Bad rangeOfInteger value %d-%d - lower greater than upper (RFC 2911 section 4.1.13)."; +"\"%s\": Bad resolution value %dx%d%s - bad units value (RFC 2911 section 4.1.15)." = "“%s”: Bad resolution value %dx%d%s - bad units value (RFC 2911 section 4.1.15)."; +"\"%s\": Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 2911 section 4.1.15)." = "“%s”: Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 2911 section 4.1.15)."; +"\"%s\": Bad resolution value %dx%d%s - feed resolution must be positive (RFC 2911 section 4.1.15)." = "“%s”: Bad resolution value %dx%d%s - feed resolution must be positive (RFC 2911 section 4.1.15)."; +"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 2911 section 4.1.1)." = "“%s”: Bad text value “%s” - bad UTF-8 sequence (RFC 2911 section 4.1.1)."; +"\"%s\": Bad text value \"%s\" - bad length %d (RFC 2911 section 4.1.1)." = "“%s”: Bad text value “%s” - bad length %d (RFC 2911 section 4.1.1)."; +"\"%s\": Bad uriScheme value \"%s\" - bad characters (RFC 2911 section 4.1.6)." = "“%s”: Bad uriScheme value “%s” - bad characters (RFC 2911 section 4.1.6)."; +"\"%s\": Bad uriScheme value \"%s\" - bad length %d (RFC 2911 section 4.1.6)." = "“%s”: Bad uriScheme value “%s” - bad length %d (RFC 2911 section 4.1.6)."; "%-7s %-7.7s %-7d %-31.31s %.0f bytes" = "%-7s %-7.7s %-7d %-31.31s %.0f bytes"; "%d x %d mm" = "%d x %d mm"; "%g x %g" = "%g x %g"; @@ -366,72 +366,72 @@ // TRANSLATORS: Message is "subject: error" "%s: %s" = "%s: %s"; "%s: %s failed: %s" = "%s: %s failed: %s"; -"%s: Bad printer URI \"%s\"." = "%s: Bad printer URI \"%s\"."; -"%s: Bad version %s for \"-V\"." = "%s: Bad version %s for \"-V\"."; +"%s: Bad printer URI \"%s\"." = "%s: Bad printer URI “%s”."; +"%s: Bad version %s for \"-V\"." = "%s: Bad version %s for “-V”."; "%s: Don't know what to do." = "%s: Don't know what to do."; -"%s: Error - %s environment variable names non-existent destination \"%s\"." = "%s: Error - %s environment variable names non-existent destination \"%s\"."; +"%s: Error - %s environment variable names non-existent destination \"%s\"." = "%s: Error - %s environment variable names non-existent destination “%s”."; "%s: Error - add '/version=1.1' to server name." = "%s: Error - add '/version=1.1' to server name."; "%s: Error - bad job ID." = "%s: Error - bad job ID."; "%s: Error - cannot print files and alter jobs simultaneously." = "%s: Error - cannot print files and alter jobs simultaneously."; "%s: Error - cannot print from stdin if files or a job ID are provided." = "%s: Error - cannot print from stdin if files or a job ID are provided."; -"%s: Error - expected character set after \"-S\" option." = "%s: Error - expected character set after \"-S\" option."; -"%s: Error - expected content type after \"-T\" option." = "%s: Error - expected content type after \"-T\" option."; -"%s: Error - expected copies after \"-#\" option." = "%s: Error - expected copies after \"-#\" option."; -"%s: Error - expected copies after \"-n\" option." = "%s: Error - expected copies after \"-n\" option."; -"%s: Error - expected destination after \"-P\" option." = "%s: Error - expected destination after \"-P\" option."; -"%s: Error - expected destination after \"-d\" option." = "%s: Error - expected destination after \"-d\" option."; -"%s: Error - expected form after \"-f\" option." = "%s: Error - expected form after \"-f\" option."; -"%s: Error - expected hold name after \"-H\" option." = "%s: Error - expected hold name after \"-H\" option."; -"%s: Error - expected hostname after \"-H\" option." = "%s: Error - expected hostname after \"-H\" option."; -"%s: Error - expected hostname after \"-h\" option." = "%s: Error - expected hostname after \"-h\" option."; -"%s: Error - expected mode list after \"-y\" option." = "%s: Error - expected mode list after \"-y\" option."; -"%s: Error - expected name after \"-%c\" option." = "%s: Error - expected name after \"-%c\" option."; -"%s: Error - expected option=value after \"-o\" option." = "%s: Error - expected option=value after \"-o\" option."; -"%s: Error - expected page list after \"-P\" option." = "%s: Error - expected page list after \"-P\" option."; -"%s: Error - expected priority after \"-%c\" option." = "%s: Error - expected priority after \"-%c\" option."; -"%s: Error - expected reason text after \"-r\" option." = "%s: Error - expected reason text after \"-r\" option."; -"%s: Error - expected title after \"-t\" option." = "%s: Error - expected title after \"-t\" option."; -"%s: Error - expected username after \"-U\" option." = "%s: Error - expected username after \"-U\" option."; -"%s: Error - expected username after \"-u\" option." = "%s: Error - expected username after \"-u\" option."; -"%s: Error - expected value after \"-%c\" option." = "%s: Error - expected value after \"-%c\" option."; -"%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" option." = "%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" option."; +"%s: Error - expected character set after \"-S\" option." = "%s: Error - expected character set after “-S” option."; +"%s: Error - expected content type after \"-T\" option." = "%s: Error - expected content type after “-T” option."; +"%s: Error - expected copies after \"-#\" option." = "%s: Error - expected copies after “-#” option."; +"%s: Error - expected copies after \"-n\" option." = "%s: Error - expected copies after “-n” option."; +"%s: Error - expected destination after \"-P\" option." = "%s: Error - expected destination after “-P” option."; +"%s: Error - expected destination after \"-d\" option." = "%s: Error - expected destination after “-d” option."; +"%s: Error - expected form after \"-f\" option." = "%s: Error - expected form after “-f” option."; +"%s: Error - expected hold name after \"-H\" option." = "%s: Error - expected hold name after “-H” option."; +"%s: Error - expected hostname after \"-H\" option." = "%s: Error - expected hostname after “-H” option."; +"%s: Error - expected hostname after \"-h\" option." = "%s: Error - expected hostname after “-h” option."; +"%s: Error - expected mode list after \"-y\" option." = "%s: Error - expected mode list after “-y” option."; +"%s: Error - expected name after \"-%c\" option." = "%s: Error - expected name after “-%c” option."; +"%s: Error - expected option=value after \"-o\" option." = "%s: Error - expected option=value after “-o” option."; +"%s: Error - expected page list after \"-P\" option." = "%s: Error - expected page list after “-P” option."; +"%s: Error - expected priority after \"-%c\" option." = "%s: Error - expected priority after “-%c” option."; +"%s: Error - expected reason text after \"-r\" option." = "%s: Error - expected reason text after “-r” option."; +"%s: Error - expected title after \"-t\" option." = "%s: Error - expected title after “-t” option."; +"%s: Error - expected username after \"-U\" option." = "%s: Error - expected username after “-U” option."; +"%s: Error - expected username after \"-u\" option." = "%s: Error - expected username after “-u” option."; +"%s: Error - expected value after \"-%c\" option." = "%s: Error - expected value after “-%c” option."; +"%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" option." = "%s: Error - need “completed”, “not-completed”, or “all” after “-W” option."; "%s: Error - no default destination available." = "%s: Error - no default destination available."; "%s: Error - priority must be between 1 and 100." = "%s: Error - priority must be between 1 and 100."; "%s: Error - scheduler not responding." = "%s: Error - scheduler not responding."; -"%s: Error - too many files - \"%s\"." = "%s: Error - too many files - \"%s\"."; -"%s: Error - unable to access \"%s\" - %s" = "%s: Error - unable to access \"%s\" - %s"; +"%s: Error - too many files - \"%s\"." = "%s: Error - too many files - “%s”."; +"%s: Error - unable to access \"%s\" - %s" = "%s: Error - unable to access “%s” - %s"; "%s: Error - unable to queue from stdin - %s." = "%s: Error - unable to queue from stdin - %s."; -"%s: Error - unknown destination \"%s\"." = "%s: Error - unknown destination \"%s\"."; -"%s: Error - unknown destination \"%s/%s\"." = "%s: Error - unknown destination \"%s/%s\"."; -"%s: Error - unknown option \"%c\"." = "%s: Error - unknown option \"%c\"."; -"%s: Error - unknown option \"%s\"." = "%s: Error - unknown option \"%s\"."; -"%s: Expected job ID after \"-i\" option." = "%s: Expected job ID after \"-i\" option."; -"%s: Invalid destination name in list \"%s\"." = "%s: Invalid destination name in list \"%s\"."; -"%s: Invalid filter string \"%s\"." = "%s: Invalid filter string \"%s\"."; -"%s: Missing filename for \"-P\"." = "%s: Missing filename for \"-P\"."; -"%s: Missing timeout for \"-T\"." = "%s: Missing timeout for \"-T\"."; -"%s: Missing version for \"-V\"." = "%s: Missing version for \"-V\"."; -"%s: Need job ID (\"-i jobid\") before \"-H restart\"." = "%s: Need job ID (\"-i jobid\") before \"-H restart\"."; +"%s: Error - unknown destination \"%s\"." = "%s: Error - unknown destination “%s”."; +"%s: Error - unknown destination \"%s/%s\"." = "%s: Error - unknown destination “%s/%s”."; +"%s: Error - unknown option \"%c\"." = "%s: Error - unknown option “%c”."; +"%s: Error - unknown option \"%s\"." = "%s: Error - unknown option “%s”."; +"%s: Expected job ID after \"-i\" option." = "%s: Expected job ID after “-i” option."; +"%s: Invalid destination name in list \"%s\"." = "%s: Invalid destination name in list “%s”."; +"%s: Invalid filter string \"%s\"." = "%s: Invalid filter string “%s”."; +"%s: Missing filename for \"-P\"." = "%s: Missing filename for “-P”."; +"%s: Missing timeout for \"-T\"." = "%s: Missing timeout for “-T”."; +"%s: Missing version for \"-V\"." = "%s: Missing version for “-V”."; +"%s: Need job ID (\"-i jobid\") before \"-H restart\"." = "%s: Need job ID (“-i jobid”) before “-H restart”."; "%s: No filter to convert from %s/%s to %s/%s." = "%s: No filter to convert from %s/%s to %s/%s."; "%s: Operation failed: %s" = "%s: Operation failed: %s"; "%s: Sorry, no encryption support." = "%s: Sorry, no encryption support."; -"%s: Unable to connect to \"%s:%d\": %s" = "%s: Unable to connect to \"%s:%d\": %s"; +"%s: Unable to connect to \"%s:%d\": %s" = "%s: Unable to connect to “%s:%d”: %s"; "%s: Unable to connect to server." = "%s: Unable to connect to server."; "%s: Unable to contact server." = "%s: Unable to contact server."; "%s: Unable to create PPD file: %s" = "%s: Unable to create PPD file: %s"; -"%s: Unable to determine MIME type of \"%s\"." = "%s: Unable to determine MIME type of \"%s\"."; -"%s: Unable to open \"%s\": %s" = "%s: Unable to open \"%s\": %s"; +"%s: Unable to determine MIME type of \"%s\"." = "%s: Unable to determine MIME type of “%s”."; +"%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 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 destination \"%s\"." = "%s: Unknown destination \"%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 destination \"%s\"." = "%s: Unknown destination “%s”."; "%s: Unknown destination MIME type %s/%s." = "%s: Unknown destination MIME type %s/%s."; -"%s: Unknown option \"%c\"." = "%s: Unknown option \"%c\"."; -"%s: Unknown option \"%s\"." = "%s: Unknown option \"%s\"."; -"%s: Unknown option \"-%c\"." = "%s: Unknown option \"-%c\"."; +"%s: Unknown option \"%c\"." = "%s: Unknown option “%c”."; +"%s: Unknown option \"%s\"." = "%s: Unknown option “%s”."; +"%s: Unknown option \"-%c\"." = "%s: Unknown option “-%c”."; "%s: Unknown source MIME type %s/%s." = "%s: Unknown source MIME type %s/%s."; -"%s: Warning - \"%c\" format modifier not supported - output may not be correct." = "%s: Warning - \"%c\" format modifier not supported - output may not be correct."; +"%s: Warning - \"%c\" format modifier not supported - output may not be correct." = "%s: Warning - “%c” format modifier not supported - output may not be correct."; "%s: Warning - character set option ignored." = "%s: Warning - character set option ignored."; "%s: Warning - content type option ignored." = "%s: Warning - content type option ignored."; "%s: Warning - form option ignored." = "%s: Warning - form option ignored."; @@ -636,8 +636,8 @@ "?Invalid help command unknown." = "?Invalid help command unknown."; "A Samba password is required to export printer drivers" = "A Samba password is required to export printer drivers"; "A Samba username is required to export printer drivers" = "A Samba username is required to export printer drivers"; -"A class named \"%s\" already exists." = "A class named \"%s\" already exists."; -"A printer named \"%s\" already exists." = "A printer named \"%s\" already exists."; +"A class named \"%s\" already exists." = "A class named “%s” already exists."; +"A printer named \"%s\" already exists." = "A printer named “%s” already exists."; "A0" = "A0"; "A0 Long Edge" = "A0 Long Edge"; "A1" = "A1"; @@ -696,7 +696,7 @@ "B7" = "B7"; "B8" = "B8"; "B9" = "B9"; -"Bad 'document-format' value \"%s\"." = "Bad 'document-format' value \"%s\"."; +"Bad 'document-format' value \"%s\"." = "Bad 'document-format' value “%s”."; "Bad NULL dests pointer" = "Bad NULL dests pointer"; "Bad OpenGroup" = "Bad OpenGroup"; "Bad OpenUI/JCLOpenUI" = "Bad OpenUI/JCLOpenUI"; @@ -708,26 +708,26 @@ "Bad arguments to function" = "Bad arguments to function"; "Bad copies value %d." = "Bad copies value %d."; "Bad custom parameter" = "Bad custom parameter"; -"Bad device-uri \"%s\"." = "Bad device-uri \"%s\"."; -"Bad device-uri scheme \"%s\"." = "Bad device-uri scheme \"%s\"."; -"Bad document-format \"%s\"." = "Bad document-format \"%s\"."; -"Bad document-format-default \"%s\"." = "Bad document-format-default \"%s\"."; +"Bad device-uri \"%s\"." = "Bad device-uri “%s”."; +"Bad device-uri scheme \"%s\"." = "Bad device-uri scheme “%s”."; +"Bad document-format \"%s\"." = "Bad document-format “%s”."; +"Bad document-format-default \"%s\"." = "Bad document-format-default “%s”."; "Bad filename buffer" = "Bad filename buffer"; "Bad hostname/address in URI" = "Bad hostname/address in URI"; "Bad job-name value: %s" = "Bad job-name value: %s"; "Bad job-name value: Wrong type or count." = "Bad job-name value: Wrong type or count."; "Bad job-priority value." = "Bad job-priority value."; -"Bad job-sheets value \"%s\"." = "Bad job-sheets value \"%s\"."; +"Bad job-sheets value \"%s\"." = "Bad job-sheets value “%s”."; "Bad job-sheets value type." = "Bad job-sheets value type."; "Bad job-state value." = "Bad job-state value."; -"Bad job-uri \"%s\"." = "Bad job-uri \"%s\"."; -"Bad notify-pull-method \"%s\"." = "Bad notify-pull-method \"%s\"."; -"Bad notify-recipient-uri \"%s\"." = "Bad notify-recipient-uri \"%s\"."; +"Bad job-uri \"%s\"." = "Bad job-uri “%s”."; +"Bad notify-pull-method \"%s\"." = "Bad notify-pull-method “%s”."; +"Bad notify-recipient-uri \"%s\"." = "Bad notify-recipient-uri “%s”."; "Bad number-up value %d." = "Bad number-up value %d."; "Bad option + choice on line %d." = "Bad option + choice on line %d."; "Bad page-ranges values %d-%d." = "Bad page-ranges values %d-%d."; "Bad port number in URI" = "Bad port number in URI"; -"Bad port-monitor \"%s\"." = "Bad port-monitor \"%s\"."; +"Bad port-monitor \"%s\"." = "Bad port-monitor “%s”."; "Bad printer-state value %d." = "Bad printer-state value %d."; "Bad printer-uri." = "Bad printer-uri."; "Bad request ID %d." = "Bad request ID %d."; @@ -740,7 +740,7 @@ "Bad/empty URI" = "Bad/empty URI"; "Banners" = "Banners"; "Bond Paper" = "Bond Paper"; -"Boolean expected for waiteof option \"%s\"." = "Boolean expected for waiteof option \"%s\"."; +"Boolean expected for waiteof option \"%s\"." = "Boolean expected for waiteof option “%s”."; "Buffer overflow detected, aborting." = "Buffer overflow detected, aborting."; "CMYK" = "CMYK"; "CPCL Label Printer" = "CPCL Label Printer"; @@ -750,7 +750,7 @@ "Cannot share a remote Kerberized printer." = "Cannot share a remote Kerberized printer."; "Cassette" = "Cassette"; "Change Settings" = "Change Settings"; -"Character set \"%s\" not supported." = "Character set \"%s\" not supported."; +"Character set \"%s\" not supported." = "Character set “%s” not supported."; "Classes" = "Classes"; "Clean Print Heads" = "Clean Print Heads"; "Close-Job doesn't support the job-uri attribute." = "Close-Job doesn't support the job-uri attribute."; @@ -776,14 +776,14 @@ "Delete Class" = "Delete Class"; "Delete Printer" = "Delete Printer"; "DeskJet Series" = "DeskJet Series"; -"Destination \"%s\" is not accepting jobs." = "Destination \"%s\" is not accepting jobs."; +"Destination \"%s\" is not accepting jobs." = "Destination “%s” is not accepting jobs."; "Device: uri = %s\n class = %s\n info = %s\n make-and-model = %s\n device-id = %s\n location = %s" = "Device: uri = %s\n class = %s\n info = %s\n make-and-model = %s\n device-id = %s\n location = %s"; "Direct Thermal Media" = "Direct Thermal Media"; -"Directory \"%s\" contains a relative path." = "Directory \"%s\" contains a relative path."; -"Directory \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)." = "Directory \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."; -"Directory \"%s\" is a file." = "Directory \"%s\" is a file."; -"Directory \"%s\" not available: %s" = "Directory \"%s\" not available: %s"; -"Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)." = "Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)."; +"Directory \"%s\" contains a relative path." = "Directory “%s” contains a relative path."; +"Directory \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)." = "Directory “%s” has insecure permissions (0%o/uid=%d/gid=%d)."; +"Directory \"%s\" is a file." = "Directory “%s” is a file."; +"Directory \"%s\" not available: %s" = "Directory “%s” not available: %s"; +"Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)." = "Directory “%s” permissions OK (0%o/uid=%d/gid=%d)."; "Disabled" = "Disabled"; "Document #%d does not exist in job #%d." = "Document #%d does not exist in job #%d."; "Duplexer" = "Duplexer"; @@ -855,7 +855,7 @@ "Error Policy" = "Error Policy"; "Error reading raster data." = "Error reading raster data."; "Error sending raster data." = "Error sending raster data."; -"Error: need hostname after \"-h\" option." = "Error: need hostname after \"-h\" option."; +"Error: need hostname after \"-h\" option." = "Error: need hostname after “-h” option."; "Every 10 Labels" = "Every 10 Labels"; "Every 2 Labels" = "Every 2 Labels"; "Every 3 Labels" = "Every 3 Labels"; @@ -874,13 +874,13 @@ "FanFold German" = "FanFold German"; "FanFold Legal German" = "FanFold Legal German"; "Fanfold US" = "Fanfold US"; -"File \"%s\" contains a relative path." = "File \"%s\" contains a relative path."; -"File \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)." = "File \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."; -"File \"%s\" is a directory." = "File \"%s\" is a directory."; -"File \"%s\" not available: %s" = "File \"%s\" not available: %s"; -"File \"%s\" permissions OK (0%o/uid=%d/gid=%d)." = "File \"%s\" permissions OK (0%o/uid=%d/gid=%d)."; +"File \"%s\" contains a relative path." = "File “%s” contains a relative path."; +"File \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)." = "File “%s” has insecure permissions (0%o/uid=%d/gid=%d)."; +"File \"%s\" is a directory." = "File “%s” is a directory."; +"File \"%s\" not available: %s" = "File “%s” not available: %s"; +"File \"%s\" permissions OK (0%o/uid=%d/gid=%d)." = "File “%s” permissions OK (0%o/uid=%d/gid=%d)."; "File Folder " = "File Folder "; -"File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cups-files.conf\"." = "File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cups-files.conf\"."; +"File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cups-files.conf\"." = "File device URIs have been disabled. To enable, see the FileDevice directive in “%s/cups-files.conf”."; "Finished page %d." = "Finished page %d."; "Folio" = "Folio"; "Forbidden" = "Forbidden"; @@ -933,7 +933,7 @@ "Internet Printing Protocol" = "Internet Printing Protocol"; "Invalid media name arguments." = "Invalid media name arguments."; "Invalid media size." = "Invalid media size."; -"Invalid printer command \"%s\"." = "Invalid printer command \"%s\"."; +"Invalid printer command \"%s\"." = "Invalid printer command “%s”."; "JCL" = "JCL"; "JIS B0" = "JIS B0"; "JIS B1" = "JIS B1"; @@ -970,7 +970,7 @@ "LPD/LPR Host or Printer" = "LPD/LPR Host or Printer"; "Label Printer" = "Label Printer"; "Label Top" = "Label Top"; -"Language \"%s\" not supported." = "Language \"%s\" not supported."; +"Language \"%s\" not supported." = "Language “%s” not supported."; "Large Address" = "Large Address"; "LaserJet Series PCL 4/5" = "LaserJet Series PCL 4/5"; "Letter Oversize" = "Letter Oversize"; @@ -980,7 +980,7 @@ "List Available Printers" = "List Available Printers"; "Load paper." = "Load paper."; "Long-Edge (Portrait)" = "Long-Edge (Portrait)"; -"Looking for printer." = "Looking for printer."; +"Looking for printer..." = "Looking for printer…"; "Manual Feed" = "Manual Feed"; "Media Size" = "Media Size"; "Media Source" = "Media Source"; @@ -1069,7 +1069,7 @@ "OpenGroup without a CloseGroup first" = "OpenGroup without a CloseGroup first"; "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first" = "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"; "Operation Policy" = "Operation Policy"; -"Option \"%s\" cannot be included via %%%%IncludeFeature." = "Option \"%s\" cannot be included via %%%%IncludeFeature."; +"Option \"%s\" cannot be included via %%%%IncludeFeature." = "Option “%s” cannot be included via %%%%IncludeFeature."; "Options Installed" = "Options Installed"; "Options:" = "Options:"; "Out of date PPD cache file." = "Out of date PPD cache file."; @@ -1184,12 +1184,12 @@ "Tear" = "Tear"; "Tear-Off" = "Tear-Off"; "Tear-Off Adjust Position" = "Tear-Off Adjust Position"; -"The \"%s\" attribute is required for print jobs." = "The \"%s\" attribute is required for print jobs."; +"The \"%s\" attribute is required for print jobs." = "The “%s” attribute is required for print jobs."; "The %s attribute cannot be provided with job-ids." = "The %s attribute cannot be provided with job-ids."; "The '%s' Job Status attribute cannot be supplied in a job creation request." = "The '%s' Job Status attribute cannot be supplied in a job creation request."; "The '%s' operation attribute cannot be supplied in a Create-Job request." = "The '%s' operation attribute cannot be supplied in a Create-Job request."; -"The PPD file \"%s\" could not be found." = "The PPD file \"%s\" could not be found."; -"The PPD file \"%s\" could not be opened: %s" = "The PPD file \"%s\" could not be opened: %s"; +"The PPD file \"%s\" could not be found." = "The PPD file “%s” could not be found."; +"The PPD file \"%s\" could not be opened: %s" = "The PPD file “%s” could not be opened: %s"; "The PPD file could not be opened." = "The PPD file could not be opened."; "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)." = "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."; "The developer unit needs to be replaced." = "The developer unit needs to be replaced."; @@ -1222,13 +1222,13 @@ "The printer's interlock is open." = "The printer's interlock is open."; "The printer's waste bin is almost full." = "The printer's waste bin is almost full."; "The printer's waste bin is full." = "The printer's waste bin is full."; -"The printer-uri \"%s\" contains invalid characters." = "The printer-uri \"%s\" contains invalid characters."; +"The printer-uri \"%s\" contains invalid characters." = "The printer-uri “%s” contains invalid characters."; "The printer-uri attribute is required." = "The printer-uri attribute is required."; -"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"." = "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."; -"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"." = "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."; +"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"." = "The printer-uri must be of the form “ipp://HOSTNAME/classes/CLASSNAME”."; +"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"." = "The printer-uri must be of the form “ipp://HOSTNAME/printers/PRINTERNAME”."; "The subscription name may not contain spaces, slashes (/), question marks (?), or the pound sign (#)." = "The subscription name may not contain spaces, slashes (/), question marks (?), or the pound sign (#)."; -"The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it." = "The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it."; -"The which-jobs value \"%s\" is not supported." = "The which-jobs value \"%s\" is not supported."; +"The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it." = "The web interface is currently disabled. Run “cupsctl WebInterface=yes” to enable it."; +"The which-jobs value \"%s\" is not supported." = "The which-jobs value “%s” is not supported."; "There are too many subscriptions." = "There are too many subscriptions."; "There was an unrecoverable USB error." = "There was an unrecoverable USB error."; "Thermal Transfer Media" = "Thermal Transfer Media"; @@ -1256,7 +1256,7 @@ "Unable to add RSS subscription" = "Unable to add RSS subscription"; "Unable to add class" = "Unable to add class"; "Unable to add document to print job." = "Unable to add document to print job."; -"Unable to add job for destination \"%s\"." = "Unable to add job for destination \"%s\"."; +"Unable to add job for destination \"%s\"." = "Unable to add job for destination “%s”."; "Unable to add printer" = "Unable to add printer"; "Unable to allocate memory for file types." = "Unable to allocate memory for file types."; "Unable to allocate memory for page info" = "Unable to allocate memory for page info"; @@ -1308,7 +1308,7 @@ "Unable to install Windows 2000 printer driver files (%d)." = "Unable to install Windows 2000 printer driver files (%d)."; "Unable to install Windows 9x printer driver files (%d)." = "Unable to install Windows 9x printer driver files (%d)."; "Unable to load help index." = "Unable to load help index."; -"Unable to locate printer \"%s\"." = "Unable to locate printer \"%s\"."; +"Unable to locate printer \"%s\"." = "Unable to locate printer “%s”."; "Unable to locate printer." = "Unable to locate printer."; "Unable to modify class" = "Unable to modify class"; "Unable to modify printer" = "Unable to modify printer"; @@ -1325,7 +1325,7 @@ "Unable to read print data." = "Unable to read print data."; "Unable to rename job document file." = "Unable to rename job document file."; "Unable to resolve printer-uri." = "Unable to resolve printer-uri."; -"Unable to run \"%s\": %s" = "Unable to run \"%s\": %s"; +"Unable to run \"%s\": %s" = "Unable to run “%s”: %s"; "Unable to see in file" = "Unable to see in file"; "Unable to send command to printer driver" = "Unable to send command to printer driver"; "Unable to send data to printer." = "Unable to send data to printer."; @@ -1340,29 +1340,29 @@ "Unauthorized" = "Unauthorized"; "Units" = "Units"; "Unknown" = "Unknown"; -"Unknown choice \"%s\" for option \"%s\"." = "Unknown choice \"%s\" for option \"%s\"."; -"Unknown encryption option value: \"%s\"." = "Unknown encryption option value: \"%s\"."; -"Unknown file order: \"%s\"." = "Unknown file order: \"%s\"."; -"Unknown format character: \"%c\"." = "Unknown format character: \"%c\"."; +"Unknown choice \"%s\" for option \"%s\"." = "Unknown choice “%s” for option “%s”."; +"Unknown encryption option value: \"%s\"." = "Unknown encryption option value: “%s”."; +"Unknown file order: \"%s\"." = "Unknown file order: “%s”."; +"Unknown format character: \"%c\"." = "Unknown format character: “%c”."; "Unknown media size name." = "Unknown media size name."; -"Unknown option \"%s\" with value \"%s\"." = "Unknown option \"%s\" with value \"%s\"."; -"Unknown option \"%s\"." = "Unknown option \"%s\"."; -"Unknown print mode: \"%s\"." = "Unknown print mode: \"%s\"."; -"Unknown printer-error-policy \"%s\"." = "Unknown printer-error-policy \"%s\"."; -"Unknown printer-op-policy \"%s\"." = "Unknown printer-op-policy \"%s\"."; +"Unknown option \"%s\" with value \"%s\"." = "Unknown option “%s” with value “%s”."; +"Unknown option \"%s\"." = "Unknown option “%s”."; +"Unknown print mode: \"%s\"." = "Unknown print mode: “%s”."; +"Unknown printer-error-policy \"%s\"." = "Unknown printer-error-policy “%s”."; +"Unknown printer-op-policy \"%s\"." = "Unknown printer-op-policy “%s”."; "Unknown request method." = "Unknown request method."; "Unknown request version." = "Unknown request version."; "Unknown scheme in URI" = "Unknown scheme in URI"; "Unknown service name." = "Unknown service name."; -"Unknown version option value: \"%s\"." = "Unknown version option value: \"%s\"."; -"Unsupported 'compression' value \"%s\"." = "Unsupported 'compression' value \"%s\"."; -"Unsupported 'document-format' value \"%s\"." = "Unsupported 'document-format' value \"%s\"."; +"Unknown version option value: \"%s\"." = "Unknown version option value: “%s”."; +"Unsupported 'compression' value \"%s\"." = "Unsupported 'compression' value “%s”."; +"Unsupported 'document-format' value \"%s\"." = "Unsupported 'document-format' value “%s”."; "Unsupported 'job-name' value." = "Unsupported 'job-name' value."; -"Unsupported character set \"%s\"." = "Unsupported character set \"%s\"."; -"Unsupported compression \"%s\"." = "Unsupported compression \"%s\"."; -"Unsupported document-format \"%s\"." = "Unsupported document-format \"%s\"."; -"Unsupported document-format \"%s/%s\"." = "Unsupported document-format \"%s/%s\"."; -"Unsupported format \"%s\"." = "Unsupported format \"%s\"."; +"Unsupported character set \"%s\"." = "Unsupported character set “%s”."; +"Unsupported compression \"%s\"." = "Unsupported compression “%s”."; +"Unsupported document-format \"%s\"." = "Unsupported document-format “%s”."; +"Unsupported document-format \"%s/%s\"." = "Unsupported document-format “%s/%s”."; +"Unsupported format \"%s\"." = "Unsupported format “%s”."; "Unsupported margins." = "Unsupported margins."; "Unsupported media value." = "Unsupported media value."; "Unsupported number-up value %d, using number-up=1." = "Unsupported number-up value %d, using number-up=1."; @@ -1373,23 +1373,23 @@ "Upgrade Required" = "Upgrade Required"; "Usage:\n\n lpadmin [-h server] -d destination\n lpadmin [-h server] -x destination\n lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n [-r remove-class] [-v device] [-D description]\n [-P ppd-file] [-o name=value]\n [-u allow:user,user] [-u deny:user,user]" = "Usage:\n\n lpadmin [-h server] -d destination\n lpadmin [-h server] -x destination\n lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n [-r remove-class] [-v device] [-D description]\n [-P ppd-file] [-o name=value]\n [-u allow:user,user] [-u deny:user,user]"; "Usage: %s job-id user title copies options [file]" = "Usage: %s job-id user title copies options [file]"; -"Usage: cupsaddsmb [options] printer1 ... printerN" = "Usage: cupsaddsmb [options] printer1 ... printerN"; -"Usage: cupsctl [options] [param=value ... paramN=valueN]" = "Usage: cupsctl [options] [param=value ... paramN=valueN]"; +"Usage: cupsaddsmb [options] printer1 ... printerN" = "Usage: cupsaddsmb [options] printer1 … printerN"; +"Usage: cupsctl [options] [param=value ... paramN=valueN]" = "Usage: cupsctl [options] [param=value … paramN=valueN]"; "Usage: cupsd [options]" = "Usage: cupsd [options]"; "Usage: cupsfilter [ options ] [ -- ] filename" = "Usage: cupsfilter [ options ] [ -- ] filename"; -"Usage: cupstestdsc [options] filename.ps [... filename.ps]" = "Usage: cupstestdsc [options] filename.ps [... filename.ps]"; -"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]" = "Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"; -"Usage: ippdiscover [options] -a\n ippdiscover [options] \"service name\"\n\nOptions:" = "Usage: ippdiscover [options] -a\n ippdiscover [options] \"service name\"\n\nOptions:"; -"Usage: ippfind [options] regtype[,subtype][.domain.] ... [expression]\n ippfind [options] name[.regtype[.domain.]] ... [expression]\n ippfind --help\n ippfind --version" = "Usage: ippfind [options] regtype[,subtype][.domain.] ... [expression]\n ippfind [options] name[.regtype[.domain.]] ... [expression]\n ippfind --help\n ippfind --version"; -"Usage: ipptool [options] URI filename [ ... filenameN ]" = "Usage: ipptool [options] URI filename [ ... filenameN ]"; +"Usage: cupstestdsc [options] filename.ps [... filename.ps]" = "Usage: cupstestdsc [options] filename.ps [… filename.ps]"; +"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]" = "Usage: cupstestppd [options] filename1.ppd[.gz] [… filenameN.ppd[.gz]]"; +"Usage: ippdiscover [options] -a\n ippdiscover [options] \"service name\"\n\nOptions:" = "Usage: ippdiscover [options] -a\n ippdiscover [options] “service name”\n\nOptions:"; +"Usage: ippfind [options] regtype[,subtype][.domain.] ... [expression]\n ippfind [options] name[.regtype[.domain.]] ... [expression]\n ippfind --help\n ippfind --version" = "Usage: ippfind [options] regtype[,subtype][.domain.] … [expression]\n ippfind [options] name[.regtype[.domain.]] … [expression]\n ippfind --help\n ippfind --version"; +"Usage: ipptool [options] URI filename [ ... filenameN ]" = "Usage: ipptool [options] URI filename [ … filenameN ]"; "Usage: lpmove job/src dest" = "Usage: lpmove job/src dest"; -"Usage: lpoptions [-h server] [-E] -d printer\n lpoptions [-h server] [-E] [-p printer] -l\n lpoptions [-h server] [-E] -p printer -o option[=value] ...\n lpoptions [-h server] [-E] -x printer" = "Usage: lpoptions [-h server] [-E] -d printer\n lpoptions [-h server] [-E] [-p printer] -l\n lpoptions [-h server] [-E] -p printer -o option[=value] ...\n lpoptions [-h server] [-E] -x printer"; +"Usage: lpoptions [-h server] [-E] -d printer\n lpoptions [-h server] [-E] [-p printer] -l\n lpoptions [-h server] [-E] -p printer -o option[=value] ...\n lpoptions [-h server] [-E] -x printer" = "Usage: lpoptions [-h server] [-E] -d printer\n lpoptions [-h server] [-E] [-p printer] -l\n lpoptions [-h server] [-E] -p printer -o option[=value] …\n lpoptions [-h server] [-E] -x printer"; "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]" = "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]"; -"Usage: ppdc [options] filename.drv [ ... filenameN.drv ]" = "Usage: ppdc [options] filename.drv [ ... filenameN.drv ]"; +"Usage: ppdc [options] filename.drv [ ... filenameN.drv ]" = "Usage: ppdc [options] filename.drv [ … filenameN.drv ]"; "Usage: ppdhtml [options] filename.drv >filename.html" = "Usage: ppdhtml [options] filename.drv >filename.html"; -"Usage: ppdi [options] filename.ppd [ ... filenameN.ppd ]" = "Usage: ppdi [options] filename.ppd [ ... filenameN.ppd ]"; -"Usage: ppdmerge [options] filename.ppd [ ... filenameN.ppd ]" = "Usage: ppdmerge [options] filename.ppd [ ... filenameN.ppd ]"; -"Usage: ppdpo [options] -o filename.po filename.drv [ ... filenameN.drv ]" = "Usage: ppdpo [options] -o filename.po filename.drv [ ... filenameN.drv ]"; +"Usage: ppdi [options] filename.ppd [ ... filenameN.ppd ]" = "Usage: ppdi [options] filename.ppd [ … filenameN.ppd ]"; +"Usage: ppdmerge [options] filename.ppd [ ... filenameN.ppd ]" = "Usage: ppdmerge [options] filename.ppd [ … filenameN.ppd ]"; +"Usage: ppdpo [options] -o filename.po filename.drv [ ... filenameN.drv ]" = "Usage: ppdpo [options] -o filename.po filename.drv [ … filenameN.drv ]"; "Usage: snmp [host-or-ip-address]" = "Usage: snmp [host-or-ip-address]"; "Value uses indefinite length" = "Value uses indefinite length"; "VarBind uses indefinite length" = "VarBind uses indefinite length"; @@ -1408,19 +1408,19 @@ "completed" = "completed"; "cups-deviced failed to execute." = "cups-deviced failed to execute."; "cups-driverd failed to execute." = "cups-driverd failed to execute."; -"cupsaddsmb: No PPD file for printer \"%s\" - %s" = "cupsaddsmb: No PPD file for printer \"%s\" - %s"; +"cupsaddsmb: No PPD file for printer \"%s\" - %s" = "cupsaddsmb: No PPD file for printer “%s” - %s"; "cupsctl: Cannot set Listen or Port directly." = "cupsctl: Cannot set Listen or Port directly."; "cupsctl: Unable to connect to server: %s" = "cupsctl: Unable to connect to server: %s"; -"cupsctl: Unknown option \"%s\"" = "cupsctl: Unknown option \"%s\""; -"cupsctl: Unknown option \"-%c\"" = "cupsctl: Unknown option \"-%c\""; -"cupsd: Expected config filename after \"-c\" option." = "cupsd: Expected config filename after \"-c\" option."; -"cupsd: Expected cups-files.conf filename after \"-s\" option." = "cupsd: Expected cups-files.conf filename after \"-s\" option."; +"cupsctl: Unknown option \"%s\"" = "cupsctl: Unknown option “%s”"; +"cupsctl: Unknown option \"-%c\"" = "cupsctl: Unknown option “-%c”"; +"cupsd: Expected config filename after \"-c\" option." = "cupsd: Expected config filename after “-c” option."; +"cupsd: Expected cups-files.conf filename after \"-s\" option." = "cupsd: Expected cups-files.conf filename after “-s” option."; "cupsd: On-demand support not compiled in, running in normal mode." = "cupsd: On-demand support not compiled in, running in normal mode."; "cupsd: Relative cups-files.conf filename not allowed." = "cupsd: Relative cups-files.conf filename not allowed."; "cupsd: Unable to get current directory." = "cupsd: Unable to get current directory."; "cupsd: Unable to get path to cups-files.conf file." = "cupsd: Unable to get path to cups-files.conf file."; -"cupsd: Unknown argument \"%s\" - aborting." = "cupsd: Unknown argument \"%s\" - aborting."; -"cupsd: Unknown option \"%c\" - aborting." = "cupsd: Unknown option \"%c\" - aborting."; +"cupsd: Unknown argument \"%s\" - aborting." = "cupsd: Unknown argument “%s” - aborting."; +"cupsd: Unknown option \"%c\" - aborting." = "cupsd: Unknown option “%c” - aborting."; "cupsfilter: Invalid document number %d." = "cupsfilter: Invalid document number %d."; "cupsfilter: Invalid job ID %d." = "cupsfilter: Invalid job ID %d."; "cupsfilter: Only one filename can be specified." = "cupsfilter: Only one filename can be specified."; @@ -1442,8 +1442,8 @@ "ippfind: Expected semi-colon after %s." = "ippfind: Expected semi-colon after %s."; "ippfind: Missing close brace in substitution." = "ippfind: Missing close brace in substitution."; "ippfind: Missing close parenthesis." = "ippfind: Missing close parenthesis."; -"ippfind: Missing expression before \"--and\"." = "ippfind: Missing expression before \"--and\"."; -"ippfind: Missing expression before \"--or\"." = "ippfind: Missing expression before \"--or\"."; +"ippfind: Missing expression before \"--and\"." = "ippfind: Missing expression before “--and”."; +"ippfind: Missing expression before \"--or\"." = "ippfind: Missing expression before “--or”."; "ippfind: Missing key name after %s." = "ippfind: Missing key name after %s."; "ippfind: Missing open parenthesis." = "ippfind: Missing open parenthesis."; "ippfind: Missing program after %s." = "ippfind: Missing program after %s."; @@ -1452,37 +1452,37 @@ "ippfind: Out of memory." = "ippfind: Out of memory."; "ippfind: Too many parenthesis." = "ippfind: Too many parenthesis."; "ippfind: Unable to browse or resolve: %s" = "ippfind: Unable to browse or resolve: %s"; -"ippfind: Unable to execute \"%s\": %s" = "ippfind: Unable to execute \"%s\": %s"; +"ippfind: Unable to execute \"%s\": %s" = "ippfind: Unable to execute “%s”: %s"; "ippfind: Unable to use Bonjour: %s" = "ippfind: Unable to use Bonjour: %s"; -"ippfind: Unknown variable \"{%s}\"." = "ippfind: Unknown variable \"{%s}\"."; -"ipptool: \"-i\" and \"-n\" are incompatible with \"-P\" and \"-X\"." = "ipptool: \"-i\" and \"-n\" are incompatible with \"-P\" and \"-X\"."; +"ippfind: Unknown variable \"{%s}\"." = "ippfind: Unknown variable “{%s}”."; +"ipptool: \"-i\" and \"-n\" are incompatible with \"-P\" and \"-X\"." = "ipptool: “-i” and “-n” are incompatible with “-P” and “-X”."; "ipptool: Bad URI - %s." = "ipptool: Bad URI - %s."; -"ipptool: Invalid seconds for \"-i\"." = "ipptool: Invalid seconds for \"-i\"."; +"ipptool: Invalid seconds for \"-i\"." = "ipptool: Invalid seconds for “-i”."; "ipptool: May only specify a single URI." = "ipptool: May only specify a single URI."; -"ipptool: Missing count for \"-n\"." = "ipptool: Missing count for \"-n\"."; -"ipptool: Missing filename for \"-f\"." = "ipptool: Missing filename for \"-f\"."; -"ipptool: Missing name=value for \"-d\"." = "ipptool: Missing name=value for \"-d\"."; -"ipptool: Missing seconds for \"-i\"." = "ipptool: Missing seconds for \"-i\"."; +"ipptool: Missing count for \"-n\"." = "ipptool: Missing count for “-n”."; +"ipptool: Missing filename for \"-f\"." = "ipptool: Missing filename for “-f”."; +"ipptool: Missing name=value for \"-d\"." = "ipptool: Missing name=value for “-d”."; +"ipptool: Missing seconds for \"-i\"." = "ipptool: Missing seconds for “-i”."; "ipptool: URI required before test file." = "ipptool: URI required before test file."; -"ipptool: Unknown option \"-%c\"." = "ipptool: Unknown option \"-%c\"."; +"ipptool: Unknown option \"-%c\"." = "ipptool: Unknown option “-%c”."; "job-printer-uri attribute missing." = "job-printer-uri attribute missing."; "lpadmin: Class name can only contain printable characters." = "lpadmin: Class name can only contain printable characters."; -"lpadmin: Expected PPD after \"-P\" option." = "lpadmin: Expected PPD after \"-P\" option."; -"lpadmin: Expected allow/deny:userlist after \"-u\" option." = "lpadmin: Expected allow/deny:userlist after \"-u\" option."; -"lpadmin: Expected class after \"-r\" option." = "lpadmin: Expected class after \"-r\" option."; -"lpadmin: Expected class name after \"-c\" option." = "lpadmin: Expected class name after \"-c\" option."; -"lpadmin: Expected description after \"-D\" option." = "lpadmin: Expected description after \"-D\" option."; -"lpadmin: Expected device URI after \"-v\" option." = "lpadmin: Expected device URI after \"-v\" option."; -"lpadmin: Expected file type(s) after \"-I\" option." = "lpadmin: Expected file type(s) after \"-I\" option."; -"lpadmin: Expected hostname after \"-h\" option." = "lpadmin: Expected hostname after \"-h\" option."; -"lpadmin: Expected interface after \"-i\" option." = "lpadmin: Expected interface after \"-i\" option."; -"lpadmin: Expected location after \"-L\" option." = "lpadmin: Expected location after \"-L\" option."; -"lpadmin: Expected model after \"-m\" option." = "lpadmin: Expected model after \"-m\" option."; -"lpadmin: Expected name after \"-R\" option." = "lpadmin: Expected name after \"-R\" option."; -"lpadmin: Expected name=value after \"-o\" option." = "lpadmin: Expected name=value after \"-o\" option."; -"lpadmin: Expected printer after \"-p\" option." = "lpadmin: Expected printer after \"-p\" option."; -"lpadmin: Expected printer name after \"-d\" option." = "lpadmin: Expected printer name after \"-d\" option."; -"lpadmin: Expected printer or class after \"-x\" option." = "lpadmin: Expected printer or class after \"-x\" option."; +"lpadmin: Expected PPD after \"-P\" option." = "lpadmin: Expected PPD after “-P” option."; +"lpadmin: Expected allow/deny:userlist after \"-u\" option." = "lpadmin: Expected allow/deny:userlist after “-u” option."; +"lpadmin: Expected class after \"-r\" option." = "lpadmin: Expected class after “-r” option."; +"lpadmin: Expected class name after \"-c\" option." = "lpadmin: Expected class name after “-c” option."; +"lpadmin: Expected description after \"-D\" option." = "lpadmin: Expected description after “-D” option."; +"lpadmin: Expected device URI after \"-v\" option." = "lpadmin: Expected device URI after “-v” option."; +"lpadmin: Expected file type(s) after \"-I\" option." = "lpadmin: Expected file type(s) after “-I” option."; +"lpadmin: Expected hostname after \"-h\" option." = "lpadmin: Expected hostname after “-h” option."; +"lpadmin: Expected interface after \"-i\" option." = "lpadmin: Expected interface after “-i” option."; +"lpadmin: Expected location after \"-L\" option." = "lpadmin: Expected location after “-L” option."; +"lpadmin: Expected model after \"-m\" option." = "lpadmin: Expected model after “-m” option."; +"lpadmin: Expected name after \"-R\" option." = "lpadmin: Expected name after “-R” option."; +"lpadmin: Expected name=value after \"-o\" option." = "lpadmin: Expected name=value after “-o” option."; +"lpadmin: Expected printer after \"-p\" option." = "lpadmin: Expected printer after “-p” option."; +"lpadmin: Expected printer name after \"-d\" option." = "lpadmin: Expected printer name after “-d” option."; +"lpadmin: Expected printer or class after \"-x\" option." = "lpadmin: Expected printer or class after “-x” option."; "lpadmin: No member names were seen." = "lpadmin: No member names were seen."; "lpadmin: Printer %s is already a member of class %s." = "lpadmin: Printer %s is already a member of class %s."; "lpadmin: Printer %s is not a member of class %s." = "lpadmin: Printer %s is not a member of class %s."; @@ -1491,46 +1491,46 @@ "lpadmin: Unable to connect to server: %s" = "lpadmin: Unable to connect to server: %s"; "lpadmin: Unable to create temporary file" = "lpadmin: Unable to create temporary file"; "lpadmin: Unable to delete option:\n You must specify a printer name first." = "lpadmin: Unable to delete option:\n You must specify a printer name first."; -"lpadmin: Unable to open PPD \"%s\": %s on line %d." = "lpadmin: Unable to open PPD \"%s\": %s on line %d."; -"lpadmin: Unable to open PPD file \"%s\" - %s" = "lpadmin: Unable to open PPD file \"%s\" - %s"; +"lpadmin: Unable to open PPD \"%s\": %s on line %d." = "lpadmin: Unable to open PPD “%s”: %s on line %d."; +"lpadmin: Unable to open PPD file \"%s\" - %s" = "lpadmin: Unable to open PPD file “%s” - %s"; "lpadmin: Unable to remove a printer from the class:\n You must specify a printer name first." = "lpadmin: Unable to remove a printer from the class:\n You must specify a printer name first."; "lpadmin: Unable to set the printer options:\n You must specify a printer name first." = "lpadmin: Unable to set the printer options:\n You must specify a printer name first."; -"lpadmin: Unknown allow/deny option \"%s\"." = "lpadmin: Unknown allow/deny option \"%s\"."; -"lpadmin: Unknown argument \"%s\"." = "lpadmin: Unknown argument \"%s\"."; -"lpadmin: Unknown option \"%c\"." = "lpadmin: Unknown option \"%c\"."; +"lpadmin: Unknown allow/deny option \"%s\"." = "lpadmin: Unknown allow/deny option “%s”."; +"lpadmin: Unknown argument \"%s\"." = "lpadmin: Unknown argument “%s”."; +"lpadmin: Unknown option \"%c\"." = "lpadmin: Unknown option “%c”."; "lpadmin: Warning - content type list ignored." = "lpadmin: Warning - content type list ignored."; "lpc> " = "lpc> "; -"lpinfo: Expected 1284 device ID string after \"--device-id\"." = "lpinfo: Expected 1284 device ID string after \"--device-id\"."; -"lpinfo: Expected language after \"--language\"." = "lpinfo: Expected language after \"--language\"."; -"lpinfo: Expected make and model after \"--make-and-model\"." = "lpinfo: Expected make and model after \"--make-and-model\"."; -"lpinfo: Expected product string after \"--product\"." = "lpinfo: Expected product string after \"--product\"."; -"lpinfo: Expected scheme list after \"--exclude-schemes\"." = "lpinfo: Expected scheme list after \"--exclude-schemes\"."; -"lpinfo: Expected scheme list after \"--include-schemes\"." = "lpinfo: Expected scheme list after \"--include-schemes\"."; -"lpinfo: Expected timeout after \"--timeout\"." = "lpinfo: Expected timeout after \"--timeout\"."; -"lpinfo: Unknown argument \"%s\"." = "lpinfo: Unknown argument \"%s\"."; -"lpinfo: Unknown option \"%c\"." = "lpinfo: Unknown option \"%c\"."; -"lpinfo: Unknown option \"%s\"." = "lpinfo: Unknown option \"%s\"."; +"lpinfo: Expected 1284 device ID string after \"--device-id\"." = "lpinfo: Expected 1284 device ID string after “--device-id”."; +"lpinfo: Expected language after \"--language\"." = "lpinfo: Expected language after “--language”."; +"lpinfo: Expected make and model after \"--make-and-model\"." = "lpinfo: Expected make and model after “--make-and-model”."; +"lpinfo: Expected product string after \"--product\"." = "lpinfo: Expected product string after “--product”."; +"lpinfo: Expected scheme list after \"--exclude-schemes\"." = "lpinfo: Expected scheme list after “--exclude-schemes”."; +"lpinfo: Expected scheme list after \"--include-schemes\"." = "lpinfo: Expected scheme list after “--include-schemes”."; +"lpinfo: Expected timeout after \"--timeout\"." = "lpinfo: Expected timeout after “--timeout”."; +"lpinfo: Unknown argument \"%s\"." = "lpinfo: Unknown argument “%s”."; +"lpinfo: Unknown option \"%c\"." = "lpinfo: Unknown option “%c”."; +"lpinfo: Unknown option \"%s\"." = "lpinfo: Unknown option “%s”."; "lpmove: Unable to connect to server: %s" = "lpmove: Unable to connect to server: %s"; -"lpmove: Unknown argument \"%s\"." = "lpmove: Unknown argument \"%s\"."; -"lpmove: Unknown option \"%c\"." = "lpmove: Unknown option \"%c\"."; +"lpmove: Unknown argument \"%s\"." = "lpmove: Unknown argument “%s”."; +"lpmove: Unknown option \"%c\"." = "lpmove: Unknown option “%c”."; "lpoptions: No printers." = "lpoptions: No printers."; "lpoptions: Unable to add printer or instance: %s" = "lpoptions: Unable to add printer or instance: %s"; "lpoptions: Unable to get PPD file for %s: %s" = "lpoptions: Unable to get PPD file for %s: %s"; "lpoptions: Unable to open PPD file for %s." = "lpoptions: Unable to open PPD file for %s."; "lpoptions: Unknown printer or class." = "lpoptions: Unknown printer or class."; -"lpstat: error - %s environment variable names non-existent destination \"%s\"." = "lpstat: error - %s environment variable names non-existent destination \"%s\"."; +"lpstat: error - %s environment variable names non-existent destination \"%s\"." = "lpstat: error - %s environment variable names non-existent destination “%s”."; "members of class %s:" = "members of class %s:"; "no entries" = "no entries"; "no system default destination" = "no system default destination"; "notify-events not specified." = "notify-events not specified."; -"notify-recipient-uri URI \"%s\" is already used." = "notify-recipient-uri URI \"%s\" is already used."; -"notify-recipient-uri URI \"%s\" uses unknown scheme." = "notify-recipient-uri URI \"%s\" uses unknown scheme."; +"notify-recipient-uri URI \"%s\" is already used." = "notify-recipient-uri URI “%s” is already used."; +"notify-recipient-uri URI \"%s\" uses unknown scheme." = "notify-recipient-uri URI “%s” uses unknown scheme."; "pending" = "pending"; -"ppdc: Adding include directory \"%s\"." = "ppdc: Adding include directory \"%s\"."; +"ppdc: Adding include directory \"%s\"." = "ppdc: Adding include directory “%s”."; "ppdc: Adding/updating UI text from %s." = "ppdc: Adding/updating UI text from %s."; "ppdc: Bad boolean value (%s) on line %d of %s." = "ppdc: Bad boolean value (%s) on line %d of %s."; "ppdc: Bad font attribute: %s" = "ppdc: Bad font attribute: %s"; -"ppdc: Bad resolution name \"%s\" on line %d of %s." = "ppdc: Bad resolution name \"%s\" on line %d of %s."; +"ppdc: Bad resolution name \"%s\" on line %d of %s." = "ppdc: Bad resolution name “%s” on line %d of %s."; "ppdc: Bad status keyword %s on line %d of %s." = "ppdc: Bad status keyword %s on line %d of %s."; "ppdc: Bad variable substitution ($%c) on line %d of %s." = "ppdc: Bad variable substitution ($%c) on line %d of %s."; "ppdc: Choice found on line %d of %s with no Option." = "ppdc: Choice found on line %d of %s with no Option."; @@ -1579,16 +1579,16 @@ "ppdc: Expected two option names on line %d of %s." = "ppdc: Expected two option names on line %d of %s."; "ppdc: Expected value after %s on line %d of %s." = "ppdc: Expected value after %s on line %d of %s."; "ppdc: Expected version after Font on line %d of %s." = "ppdc: Expected version after Font on line %d of %s."; -"ppdc: Invalid #include/#po filename \"%s\"." = "ppdc: Invalid #include/#po filename \"%s\"."; +"ppdc: Invalid #include/#po filename \"%s\"." = "ppdc: Invalid #include/#po filename “%s”."; "ppdc: Invalid cost for filter on line %d of %s." = "ppdc: Invalid cost for filter on line %d of %s."; "ppdc: Invalid empty MIME type for filter on line %d of %s." = "ppdc: Invalid empty MIME type for filter on line %d of %s."; "ppdc: Invalid empty program name for filter on line %d of %s." = "ppdc: Invalid empty program name for filter on line %d of %s."; -"ppdc: Invalid option section \"%s\" on line %d of %s." = "ppdc: Invalid option section \"%s\" on line %d of %s."; -"ppdc: Invalid option type \"%s\" on line %d of %s." = "ppdc: Invalid option type \"%s\" on line %d of %s."; -"ppdc: Loading driver information file \"%s\"." = "ppdc: Loading driver information file \"%s\"."; -"ppdc: Loading messages for locale \"%s\"." = "ppdc: Loading messages for locale \"%s\"."; -"ppdc: Loading messages from \"%s\"." = "ppdc: Loading messages from \"%s\"."; -"ppdc: Missing #endif at end of \"%s\"." = "ppdc: Missing #endif at end of \"%s\"."; +"ppdc: Invalid option section \"%s\" on line %d of %s." = "ppdc: Invalid option section “%s” on line %d of %s."; +"ppdc: Invalid option type \"%s\" on line %d of %s." = "ppdc: Invalid option type “%s” on line %d of %s."; +"ppdc: Loading driver information file \"%s\"." = "ppdc: Loading driver information file “%s”."; +"ppdc: Loading messages for locale \"%s\"." = "ppdc: Loading messages for locale “%s”."; +"ppdc: Loading messages from \"%s\"." = "ppdc: Loading messages from “%s”."; +"ppdc: Missing #endif at end of \"%s\"." = "ppdc: Missing #endif at end of “%s”."; "ppdc: Missing #if on line %d of %s." = "ppdc: Missing #if on line %d of %s."; "ppdc: Need a msgid line before any translation strings on line %d of %s." = "ppdc: Need a msgid line before any translation strings on line %d of %s."; "ppdc: No message catalog provided for locale %s." = "ppdc: No message catalog provided for locale %s."; @@ -1596,28 +1596,28 @@ "ppdc: Option %s redefined with a different type on line %d of %s." = "ppdc: Option %s redefined with a different type on line %d of %s."; "ppdc: Option constraint must *name on line %d of %s." = "ppdc: Option constraint must *name on line %d of %s."; "ppdc: Too many nested #if's on line %d of %s." = "ppdc: Too many nested #if's on line %d of %s."; -"ppdc: Unable to create PPD file \"%s\" - %s." = "ppdc: Unable to create PPD file \"%s\" - %s."; +"ppdc: Unable to create PPD file \"%s\" - %s." = "ppdc: Unable to create PPD file “%s” - %s."; "ppdc: Unable to create output directory %s: %s" = "ppdc: Unable to create output directory %s: %s"; "ppdc: Unable to create output pipes: %s" = "ppdc: Unable to create output pipes: %s"; "ppdc: Unable to execute cupstestppd: %s" = "ppdc: Unable to execute cupstestppd: %s"; "ppdc: Unable to find #po file %s on line %d of %s." = "ppdc: Unable to find #po file %s on line %d of %s."; -"ppdc: Unable to find include file \"%s\" on line %d of %s." = "ppdc: Unable to find include file \"%s\" on line %d of %s."; -"ppdc: Unable to find localization for \"%s\" - %s" = "ppdc: Unable to find localization for \"%s\" - %s"; -"ppdc: Unable to load localization file \"%s\" - %s" = "ppdc: Unable to load localization file \"%s\" - %s"; +"ppdc: Unable to find include file \"%s\" on line %d of %s." = "ppdc: Unable to find include file “%s” on line %d of %s."; +"ppdc: Unable to find localization for \"%s\" - %s" = "ppdc: Unable to find localization for “%s” - %s"; +"ppdc: Unable to load localization file \"%s\" - %s" = "ppdc: Unable to load localization file “%s” - %s"; "ppdc: Unable to open %s: %s" = "ppdc: Unable to open %s: %s"; "ppdc: Undefined variable (%s) on line %d of %s." = "ppdc: Undefined variable (%s) on line %d of %s."; "ppdc: Unexpected text on line %d of %s." = "ppdc: Unexpected text on line %d of %s."; "ppdc: Unknown driver type %s on line %d of %s." = "ppdc: Unknown driver type %s on line %d of %s."; -"ppdc: Unknown duplex type \"%s\" on line %d of %s." = "ppdc: Unknown duplex type \"%s\" on line %d of %s."; -"ppdc: Unknown media size \"%s\" on line %d of %s." = "ppdc: Unknown media size \"%s\" on line %d of %s."; -"ppdc: Unknown message catalog format for \"%s\"." = "ppdc: Unknown message catalog format for \"%s\"."; -"ppdc: Unknown token \"%s\" seen on line %d of %s." = "ppdc: Unknown token \"%s\" seen on line %d of %s."; -"ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s." = "ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s."; +"ppdc: Unknown duplex type \"%s\" on line %d of %s." = "ppdc: Unknown duplex type “%s” on line %d of %s."; +"ppdc: Unknown media size \"%s\" on line %d of %s." = "ppdc: Unknown media size “%s” on line %d of %s."; +"ppdc: Unknown message catalog format for \"%s\"." = "ppdc: Unknown message catalog format for “%s”."; +"ppdc: Unknown token \"%s\" seen on line %d of %s." = "ppdc: Unknown token “%s” seen on line %d of %s."; +"ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s." = "ppdc: Unknown trailing characters in real number “%s” on line %d of %s."; "ppdc: Unterminated string starting with %c on line %d of %s." = "ppdc: Unterminated string starting with %c on line %d of %s."; -"ppdc: Warning - overlapping filename \"%s\"." = "ppdc: Warning - overlapping filename \"%s\"."; +"ppdc: Warning - overlapping filename \"%s\"." = "ppdc: Warning - overlapping filename “%s”."; "ppdc: Writing %s." = "ppdc: Writing %s."; -"ppdc: Writing PPD files to directory \"%s\"." = "ppdc: Writing PPD files to directory \"%s\"."; -"ppdmerge: Bad LanguageVersion \"%s\" in %s." = "ppdmerge: Bad LanguageVersion \"%s\" in %s."; +"ppdc: Writing PPD files to directory \"%s\"." = "ppdc: Writing PPD files to directory “%s”."; +"ppdmerge: Bad LanguageVersion \"%s\" in %s." = "ppdmerge: Bad LanguageVersion “%s” in %s."; "ppdmerge: Ignoring PPD file %s." = "ppdmerge: Ignoring PPD file %s."; "ppdmerge: Unable to backup %s to %s - %s" = "ppdmerge: Unable to backup %s to %s - %s"; "printer %s disabled since %s -" = "printer %s disabled since %s -"; diff --git a/locale/cups_ca.po b/locale/cups_ca.po index c0a27b8c0e..143412d1b7 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: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: 2012-09-29 11:21+0200\n" "Last-Translator: Àngel Mompó \n" "Language-Team: Catalan \n" @@ -3647,8 +3647,8 @@ msgstr "" msgid "Long-Edge (Portrait)" msgstr "Costat-llarg (vertical)" -msgid "Looking for printer." -msgstr "S'està buscant la impressora." +msgid "Looking for printer..." +msgstr "" msgid "Manual Feed" msgstr "Alimentació manual" @@ -6152,6 +6152,9 @@ msgstr "La variable-bindings fa servir una longitud indefinida" #~ msgid "Large Address - 1 4/10 x 3 1/2\"" #~ msgstr "Adreça gran - 1 4/10 x 3 1/2\"" +#~ msgid "Looking for printer." +#~ msgstr "S'està buscant la impressora." + #~ msgid "New Stylus Color Series" #~ msgstr "Sèrie New Stylus Color" diff --git a/locale/cups_cs.po b/locale/cups_cs.po index 94c752d886..8e03517635 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: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: 2012-09-14 10:26+0100\n" "Last-Translator: Jan Bartos \n" "Language-Team: Czech\n" @@ -3441,7 +3441,7 @@ msgstr "" msgid "Long-Edge (Portrait)" msgstr "Delší okraj (na výšku)" -msgid "Looking for printer." +msgid "Looking for printer..." msgstr "" msgid "Manual Feed" diff --git a/locale/cups_de.po b/locale/cups_de.po index 93dff404e5..089ca04095 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: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: 2015-05-09 22:25+0100\n" "Last-Translator: Joachim Schwender \n" "Language-Team: LANGUAGE \n" @@ -3464,8 +3464,8 @@ msgstr "Lade Papier." msgid "Long-Edge (Portrait)" msgstr "Lange Kante (Hochformat)" -msgid "Looking for printer." -msgstr "Suche nach Drucker." +msgid "Looking for printer..." +msgstr "" msgid "Manual Feed" msgstr "Manuelle Papierzufuhr" @@ -5755,6 +5755,9 @@ msgstr "variable-bindings hat unbestimmte Länge" #~ msgid "Enter password:" #~ msgstr "Neues Passwort eingeben :" +#~ msgid "Looking for printer." +#~ msgstr "Suche nach Drucker." + #~ msgid "New Stylus Color Series" #~ msgstr "Neue Stylus Color Serie" diff --git a/locale/cups_es.po b/locale/cups_es.po index 966b07fff9..fcef34c9ad 100644 --- a/locale/cups_es.po +++ b/locale/cups_es.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.6\n" "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: 2014-09-23 23:45+0100\n" "Last-Translator: Juan Pablo González Riopedre \n" "Language-Team: Spanish\n" @@ -3726,8 +3726,8 @@ msgstr "Cargar papel." msgid "Long-Edge (Portrait)" msgstr "Lado largo (retrato)" -msgid "Looking for printer." -msgstr "Buscando impresora." +msgid "Looking for printer..." +msgstr "" msgid "Manual Feed" msgstr "Alimentación manual" @@ -6120,6 +6120,9 @@ msgstr "sin título" msgid "variable-bindings uses indefinite length" msgstr "variable-bindings usa una longitud indefinida" +#~ msgid "Looking for printer." +#~ msgstr "Buscando impresora." + #~ msgid "" #~ "The '%s' Job Description attribute cannot be supplied in a job creation " #~ "request." diff --git a/locale/cups_fr.po b/locale/cups_fr.po index df2be2a0b1..385fe0ef67 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: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: 2012-12-12 11:12+0100\n" "Last-Translator: denis meramdjougoma \n" "Language-Team: LANGUAGE \n" @@ -3438,7 +3438,7 @@ msgstr "" msgid "Long-Edge (Portrait)" msgstr "Bord le plus long (Portrait)" -msgid "Looking for printer." +msgid "Looking for printer..." msgstr "" msgid "Manual Feed" diff --git a/locale/cups_it.po b/locale/cups_it.po index 7526aeef8c..1a2ae3f7fd 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: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: 2013-07-14 12:00+0200\n" "Last-Translator: Giovanni Scafora \n" "Language-Team: Arch Linux Italian Team \n" @@ -3721,8 +3721,8 @@ msgstr "" msgid "Long-Edge (Portrait)" msgstr "Long-Edge (Portrait)" -msgid "Looking for printer." -msgstr "Cerca una stampante." +msgid "Looking for printer..." +msgstr "" msgid "Manual Feed" msgstr "Alimentazione manuale" @@ -6111,6 +6111,9 @@ msgstr "variable-bindings utilizza una lunghezza indefinita" #~ msgid "Enter password:" #~ msgstr "Digitare la password:" +#~ msgid "Looking for printer." +#~ msgstr "Cerca una stampante." + #~ msgid "New Stylus Color Series" #~ msgstr "Nuova Stylus Color Series" diff --git a/locale/cups_ja.po b/locale/cups_ja.po index a81d595bbf..39bd73589a 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: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: 2014-11-15 19:27+0900\n" "Last-Translator: OPFC TRANSCUPS \n" "Language-Team: OPFC TRANSCUPS \n" @@ -3685,8 +3685,8 @@ msgstr "用紙を補給してください。" msgid "Long-Edge (Portrait)" msgstr "長辺給紙 (縦向き)" -msgid "Looking for printer." -msgstr "プリンターを探しています。" +msgid "Looking for printer..." +msgstr "" msgid "Manual Feed" msgstr "手差し" @@ -6105,6 +6105,9 @@ msgstr "variable-bindings の長さが不定" #~ msgid "Enter password:" #~ msgstr "パスワードを入力:" +#~ msgid "Looking for printer." +#~ msgstr "プリンターを探しています。" + #~ msgid "New Stylus Color Series" #~ msgstr "New Stylus Color シリーズ" diff --git a/locale/cups_ru.po b/locale/cups_ru.po index 83dae08627..88a618c582 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: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2015-06-08 17:14-0400\n" +"POT-Creation-Date: 2015-07-20 14:24-0400\n" "PO-Revision-Date: 2015-01-28 12:00-0800\n" "Last-Translator: Aleksandr Proklov\n" "Language-Team: PuppyRus Linux Team\n" @@ -3647,8 +3647,8 @@ msgstr "Загрузка бумаги." msgid "Long-Edge (Portrait)" msgstr "По длинной стороне (книжная)" -msgid "Looking for printer." -msgstr "Поиск принтера." +msgid "Looking for printer..." +msgstr "" msgid "Manual Feed" msgstr "Ручная подача" @@ -6002,6 +6002,9 @@ msgstr "Для variable-bindings длина не установлена" #~ " Комментарий %%EndComments отсутствует.\n" #~ " REF: Стр. 41, %%EndComments" +#~ msgid "Looking for printer." +#~ msgstr "Поиск принтера." + #~ msgid "" #~ "The '%s' Job Description attribute cannot be supplied in a job creation " #~ "request." diff --git a/locale/po2strings.c b/locale/po2strings.c index bb8da28262..0bedd970df 100644 --- a/locale/po2strings.c +++ b/locale/po2strings.c @@ -1,9 +1,9 @@ /* - * "$Id: po2strings.c 11558 2014-02-06 18:33:34Z msweet $" + * "$Id: po2strings.c 12794 2015-07-20 18:26:20Z msweet $" * * Convert a GNU gettext .po file to an Apple .strings file. * - * Copyright 2007-2014 by Apple Inc. + * Copyright 2007-2015 by Apple Inc. * * These coded instructions, statements, and computer programs are the * property of Apple Inc. and are protected by Federal copyright @@ -49,6 +49,9 @@ * characters like newline and the double quote character. */ +static char *normalize_string(const char *idstr, char *buffer, size_t bufsize); + + /* * main() - Convert .po file to .strings. */ @@ -66,7 +69,8 @@ main(int argc, /* I - Number of command-line args */ *ptr, /* Pointer into buffer */ *temp, /* New string */ *msgid, /* msgid string */ - *msgstr; /* msgstr string */ + *msgstr, /* msgstr string */ + normalized[8192];/* Normalized msgid string */ size_t length; /* Length of combined strings */ int use_msgid; /* Use msgid strings for msgstr? */ @@ -190,8 +194,7 @@ main(int argc, /* I - Number of command-line args */ if (msgid && msgstr) { if (*msgid) - cupsFilePrintf(strings, "\"%s\" = \"%s\";\n", msgid, - (use_msgid || !*msgstr) ? msgid : msgstr); + cupsFilePrintf(strings, "\"%s\" = \"%s\";\n", msgid, normalize_string((use_msgid || !*msgstr) ? msgid : msgstr, normalized, sizeof(normalized))); } if (msgid) @@ -270,8 +273,7 @@ main(int argc, /* I - Number of command-line args */ if (msgid && msgstr) { if (*msgid) - cupsFilePrintf(strings, "\"%s\" = \"%s\";\n", msgid, - (use_msgid || !*msgstr) ? msgid : msgstr); + cupsFilePrintf(strings, "\"%s\" = \"%s\";\n", msgid, normalize_string((use_msgid || !*msgstr) ? msgid : msgstr, normalized, sizeof(normalized))); } if (msgid) @@ -288,5 +290,79 @@ main(int argc, /* I - Number of command-line args */ /* - * End of "$Id: po2strings.c 11558 2014-02-06 18:33:34Z msweet $". + * 'normalize_string()' - Normalize a msgid string. + * + * This function converts ASCII ellipsis and double quotes to their Unicode + * counterparts. + */ + +static char * /* O - Normalized string */ +normalize_string(const char *idstr, /* I - msgid string */ + char *buffer, /* I - Normalized string buffer */ + size_t bufsize) /* I - Size of string buffer */ +{ + char *bufptr = buffer, /* Pointer into buffer */ + *bufend = buffer + bufsize - 3; /* End of buffer */ + int quote = 0, /* Quote direction */ + html = 0; /* HTML text */ + + + while (*idstr && bufptr < bufend) + { + if (!strncmp(idstr, "') + html = 0; + + if (*idstr == '.' && idstr[1] == '.' && idstr[2] == '.') + { + /* + * Convert ... to Unicode ellipsis... + */ + + *bufptr++ = (char)0xE2; + *bufptr++ = (char)0x80; + *bufptr++ = (char)0xA6; + idstr += 2; + } + else if (!html && *idstr == '\\' && idstr[1] == '\"' && (quote || strchr(idstr + 2, '\"') != NULL)) + { + if (quote) + { + /* + * Convert \" to Unicode right (curley) double quote. + */ + + *bufptr++ = (char)0xE2; + *bufptr++ = (char)0x80; + *bufptr++ = (char)0x9D; + } + else + { + /* + * Convert \" to Unicode left (curley) double quote. + */ + + *bufptr++ = (char)0xE2; + *bufptr++ = (char)0x80; + *bufptr++ = (char)0x9C; + } + + quote = !quote; + idstr ++; + } + else + *bufptr++ = *idstr; + + idstr ++; + } + + *bufptr = '\0'; + + return (buffer); +} + + +/* + * End of "$Id: po2strings.c 12794 2015-07-20 18:26:20Z msweet $". */ diff --git a/man/Makefile b/man/Makefile index dc1a8c0a4f..e01cf58ff0 100644 --- a/man/Makefile +++ b/man/Makefile @@ -1,9 +1,9 @@ # -# "$Id: Makefile 11919 2014-06-11 15:38:28Z msweet $" +# "$Id: Makefile 12814 2015-07-30 15:03:33Z msweet $" # # Man page makefile for CUPS. # -# Copyright 2007-2014 by Apple Inc. +# Copyright 2007-2015 by Apple Inc. # Copyright 1993-2006 by Easy Software Products. # # These coded instructions, statements, and computer programs are the @@ -43,6 +43,7 @@ MAN5 = classes.conf.$(MAN5EXT) \ cups-files.conf.$(MAN5EXT) \ cups-snmp.conf.$(MAN5EXT) \ cupsd.conf.$(MAN5EXT) \ + cupsd-logs.$(MAN5EXT) \ ipptoolfile.$(MAN5EXT) \ mailto.conf.$(MAN5EXT) \ mime.convs.$(MAN5EXT) \ @@ -61,7 +62,6 @@ MAN8 = cupsaccept.$(MAN8EXT) \ cups-snmp.$(MAN8EXT) \ cupsd.$(MAN8EXT) \ cupsd-helper.$(MAN8EXT) \ - cupsd-logs.$(MAN8EXT) \ cupsenable.$(MAN8EXT) \ lpadmin.$(MAN8EXT) \ lpinfo.$(MAN8EXT) \ @@ -228,5 +228,5 @@ mantohtml: mantohtml.o ../cups/$(LIBCUPSSTATIC) # -# End of "$Id: Makefile 11919 2014-06-11 15:38:28Z msweet $". +# End of "$Id: Makefile 12814 2015-07-30 15:03:33Z msweet $". # diff --git a/man/cupsd.conf.man.in b/man/cupsd.conf.man.in index 13de126940..9d38954aa4 100644 --- a/man/cupsd.conf.man.in +++ b/man/cupsd.conf.man.in @@ -1,9 +1,9 @@ .\" -.\" "$Id: cupsd.conf.man.in 12362 2014-12-12 19:50:49Z msweet $" +.\" "$Id: cupsd.conf.man.in 12767 2015-06-30 15:57:39Z msweet $" .\" .\" cupsd.conf man page for CUPS. .\" -.\" Copyright 2007-2014 by Apple Inc. +.\" Copyright 2007-2015 by Apple Inc. .\" Copyright 1997-2006 by Easy Software Products. .\" .\" These coded instructions, statements, and computer programs are the @@ -12,7 +12,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 cupsd.conf 5 "CUPS" "20 October 2014" "Apple Inc." +.TH cupsd.conf 5 "CUPS" "30 June 2015" "Apple Inc." .SH NAME cupsd.conf \- server configuration file for cups .SH DESCRIPTION @@ -369,7 +369,8 @@ The following percent sequences are recognized: "%u" inserts the username. .fi -The default is "%p %u %j %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}". +The default is the empty string, which disables page logging. +The string "%p %u %j %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}" creates a page log with the standard items. .\"#PassEnv .TP 5 \fBPassEnv \fIvariable \fR[ ... \fIvariable \fR] @@ -869,7 +870,7 @@ Require authentication for accesses from outside the 10. network: .BR subscriptions.conf (5), CUPS Online Help (http://localhost:631/help) .SH COPYRIGHT -Copyright \[co] 2007-2014 by Apple Inc. +Copyright \[co] 2007-2015 by Apple Inc. .\" -.\" End of "$Id: cupsd.conf.man.in 12362 2014-12-12 19:50:49Z msweet $". +.\" End of "$Id: cupsd.conf.man.in 12767 2015-06-30 15:57:39Z msweet $". .\" diff --git a/packaging/cups.spec b/packaging/cups.spec index befa117030..0b8ecda64b 100644 --- a/packaging/cups.spec +++ b/packaging/cups.spec @@ -44,12 +44,12 @@ Summary: CUPS Name: cups -Version: 2.1b1 +Version: 2.1rc1 Release: 1 Epoch: 1 License: GPL Group: System Environment/Daemons -Source: http://www.cups.org/software/2.1b1/cups-2.1b1-source.tar.bz2 +Source: http://www.cups.org/software/2.1rc1/cups-2.1rc1-source.tar.bz2 Url: http://www.cups.org Packager: Anonymous Vendor: Apple Inc. diff --git a/ppdc/sample.drv b/ppdc/sample.drv index fe1e55536b..854e3340c1 100644 --- a/ppdc/sample.drv +++ b/ppdc/sample.drv @@ -1,5 +1,5 @@ // -// "$Id: sample.drv 12201 2014-10-15 19:11:12Z msweet $" +// "$Id: sample.drv 12789 2015-07-20 14:51:28Z msweet $" // // Driver info file for CUPS-supplied PPDs. // @@ -130,7 +130,7 @@ Copyright "file is missing or damaged, see the license at \"http://www.cups.org/ Font * -Version "2.0" +Version "2.1" // Dymo Label Printer { @@ -1168,5 +1168,5 @@ Version "2.0" } // -// End of "$Id: sample.drv 12201 2014-10-15 19:11:12Z msweet $". +// End of "$Id: sample.drv 12789 2015-07-20 14:51:28Z msweet $". // diff --git a/scheduler/client.c b/scheduler/client.c index 22cad512bf..70ed94aa67 100644 --- a/scheduler/client.c +++ b/scheduler/client.c @@ -1,5 +1,5 @@ /* - * "$Id: client.c 12700 2015-06-08 18:32:35Z msweet $" + * "$Id: client.c 12751 2015-06-24 18:22:32Z msweet $" * * Client routines for the CUPS scheduler. * @@ -2159,6 +2159,9 @@ cupsdSendError(cupsd_client_t *con, /* I - Connection */ http_status_t code, /* I - Error code */ int auth_type)/* I - Authentication type */ { + char location[HTTP_MAX_VALUE]; /* Location field */ + + cupsdLogClient(con, CUPSD_LOG_DEBUG2, "cupsdSendError code=%d, auth_type=%d", code, auth_type); @@ -2191,8 +2194,12 @@ cupsdSendError(cupsd_client_t *con, /* I - Connection */ * never disable it in that case. */ + strlcpy(location, httpGetField(con->http, HTTP_FIELD_LOCATION), sizeof(location)); + httpClearFields(con->http); + httpSetField(con->http, HTTP_FIELD_LOCATION, location); + if (code >= HTTP_STATUS_BAD_REQUEST && con->type != CUPSD_AUTH_NEGOTIATE) httpSetKeepAlive(con->http, HTTP_KEEPALIVE_OFF); @@ -4065,5 +4072,5 @@ write_pipe(cupsd_client_t *con) /* I - Client connection */ /* - * End of "$Id: client.c 12700 2015-06-08 18:32:35Z msweet $". + * End of "$Id: client.c 12751 2015-06-24 18:22:32Z msweet $". */ diff --git a/scheduler/conf.c b/scheduler/conf.c index cbd1b7ce36..f3e6514b28 100644 --- a/scheduler/conf.c +++ b/scheduler/conf.c @@ -1,5 +1,5 @@ /* - * "$Id: conf.c 12689 2015-06-03 19:49:54Z msweet $" + * "$Id: conf.c 12819 2015-07-31 13:52:00Z msweet $" * * Configuration routines for the CUPS scheduler. * @@ -4104,121 +4104,106 @@ set_policy_defaults(cupsd_policy_t *pol)/* I - Policy */ * Verify that we have an explicit policy for Validate-Job, Cancel-Jobs, * Cancel-My-Jobs, Close-Job, and CUPS-Get-Document, which ensures that * upgrades do not introduce new security issues... + * + * CUPS STR #4659: Allow a lone policy. */ - if ((op = cupsdFindPolicyOp(pol, IPP_VALIDATE_JOB)) == NULL || - op->op == IPP_ANY_OPERATION) + if (cupsArrayCount(pol->ops) > 1) { - if ((op = cupsdFindPolicyOp(pol, IPP_PRINT_JOB)) != NULL && - op->op != IPP_ANY_OPERATION) + if ((op = cupsdFindPolicyOp(pol, IPP_VALIDATE_JOB)) == NULL || + op->op == IPP_ANY_OPERATION) { - /* - * Add a new limit for Validate-Job using the Print-Job limit as a - * template... - */ + if ((op = cupsdFindPolicyOp(pol, IPP_PRINT_JOB)) != NULL && + op->op != IPP_ANY_OPERATION) + { + /* + * Add a new limit for Validate-Job using the Print-Job limit as a + * template... + */ - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for Validate-Job defined in policy %s " - "- using Print-Job's policy.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for Validate-Job defined in policy %s - using Print-Job's policy.", pol->name); - cupsdAddPolicyOp(pol, op, IPP_VALIDATE_JOB); + cupsdAddPolicyOp(pol, op, IPP_VALIDATE_JOB); + } + else + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for Validate-Job defined in policy %s and no suitable template found.", pol->name); } - else - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for Validate-Job defined in policy %s " - "and no suitable template found.", pol->name); - } - if ((op = cupsdFindPolicyOp(pol, IPP_CANCEL_JOBS)) == NULL || - op->op == IPP_ANY_OPERATION) - { - if ((op = cupsdFindPolicyOp(pol, IPP_PAUSE_PRINTER)) != NULL && - op->op != IPP_ANY_OPERATION) + if ((op = cupsdFindPolicyOp(pol, IPP_CANCEL_JOBS)) == NULL || + op->op == IPP_ANY_OPERATION) { - /* - * Add a new limit for Cancel-Jobs using the Pause-Printer limit as a - * template... - */ + if ((op = cupsdFindPolicyOp(pol, IPP_PAUSE_PRINTER)) != NULL && + op->op != IPP_ANY_OPERATION) + { + /* + * Add a new limit for Cancel-Jobs using the Pause-Printer limit as a + * template... + */ - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for Cancel-Jobs defined in policy %s " - "- using Pause-Printer's policy.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for Cancel-Jobs defined in policy %s - using Pause-Printer's policy.", pol->name); - cupsdAddPolicyOp(pol, op, IPP_CANCEL_JOBS); + cupsdAddPolicyOp(pol, op, IPP_CANCEL_JOBS); + } + else + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for Cancel-Jobs defined in policy %s and no suitable template found.", pol->name); } - else - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for Cancel-Jobs defined in policy %s " - "and no suitable template found.", pol->name); - } - if ((op = cupsdFindPolicyOp(pol, IPP_CANCEL_MY_JOBS)) == NULL || - op->op == IPP_ANY_OPERATION) - { - if ((op = cupsdFindPolicyOp(pol, IPP_SEND_DOCUMENT)) != NULL && - op->op != IPP_ANY_OPERATION) + if ((op = cupsdFindPolicyOp(pol, IPP_CANCEL_MY_JOBS)) == NULL || + op->op == IPP_ANY_OPERATION) { - /* - * Add a new limit for Cancel-My-Jobs using the Send-Document limit as - * a template... - */ + if ((op = cupsdFindPolicyOp(pol, IPP_SEND_DOCUMENT)) != NULL && + op->op != IPP_ANY_OPERATION) + { + /* + * Add a new limit for Cancel-My-Jobs using the Send-Document limit as + * a template... + */ - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for Cancel-My-Jobs defined in policy %s " - "- using Send-Document's policy.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for Cancel-My-Jobs defined in policy %s - using Send-Document's policy.", pol->name); - cupsdAddPolicyOp(pol, op, IPP_CANCEL_MY_JOBS); + cupsdAddPolicyOp(pol, op, IPP_CANCEL_MY_JOBS); + } + else + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for Cancel-My-Jobs defined in policy %s and no suitable template found.", pol->name); } - else - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for Cancel-My-Jobs defined in policy %s " - "and no suitable template found.", pol->name); - } - if ((op = cupsdFindPolicyOp(pol, IPP_CLOSE_JOB)) == NULL || - op->op == IPP_ANY_OPERATION) - { - if ((op = cupsdFindPolicyOp(pol, IPP_SEND_DOCUMENT)) != NULL && - op->op != IPP_ANY_OPERATION) + if ((op = cupsdFindPolicyOp(pol, IPP_CLOSE_JOB)) == NULL || + op->op == IPP_ANY_OPERATION) { - /* - * Add a new limit for Close-Job using the Send-Document limit as a - * template... - */ + if ((op = cupsdFindPolicyOp(pol, IPP_SEND_DOCUMENT)) != NULL && + op->op != IPP_ANY_OPERATION) + { + /* + * Add a new limit for Close-Job using the Send-Document limit as a + * template... + */ - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for Close-Job defined in policy %s " - "- using Send-Document's policy.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for Close-Job defined in policy %s - using Send-Document's policy.", pol->name); - cupsdAddPolicyOp(pol, op, IPP_CLOSE_JOB); + cupsdAddPolicyOp(pol, op, IPP_CLOSE_JOB); + } + else + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for Close-Job defined in policy %s and no suitable template found.", pol->name); } - else - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for Close-Job defined in policy %s " - "and no suitable template found.", pol->name); - } - if ((op = cupsdFindPolicyOp(pol, CUPS_GET_DOCUMENT)) == NULL || - op->op == IPP_ANY_OPERATION) - { - if ((op = cupsdFindPolicyOp(pol, IPP_SEND_DOCUMENT)) != NULL && - op->op != IPP_ANY_OPERATION) + if ((op = cupsdFindPolicyOp(pol, CUPS_GET_DOCUMENT)) == NULL || + op->op == IPP_ANY_OPERATION) { - /* - * Add a new limit for CUPS-Get-Document using the Send-Document - * limit as a template... - */ + if ((op = cupsdFindPolicyOp(pol, IPP_SEND_DOCUMENT)) != NULL && + op->op != IPP_ANY_OPERATION) + { + /* + * Add a new limit for CUPS-Get-Document using the Send-Document + * limit as a template... + */ - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for CUPS-Get-Document defined in policy %s " - "- using Send-Document's policy.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for CUPS-Get-Document defined in policy %s - using Send-Document's policy.", pol->name); - cupsdAddPolicyOp(pol, op, CUPS_GET_DOCUMENT); + cupsdAddPolicyOp(pol, op, CUPS_GET_DOCUMENT); + } + else + cupsdLogMessage(CUPSD_LOG_WARN, "No limit for CUPS-Get-Document defined in policy %s and no suitable template found.", pol->name); } - else - cupsdLogMessage(CUPSD_LOG_WARN, - "No limit for CUPS-Get-Document defined in policy %s " - "and no suitable template found.", pol->name); } /* @@ -4228,18 +4213,14 @@ set_policy_defaults(cupsd_policy_t *pol)/* I - Policy */ if (!pol->job_access) { - cupsdLogMessage(CUPSD_LOG_WARN, - "No JobPrivateAccess defined in policy %s " - "- using defaults.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No JobPrivateAccess defined in policy %s - using defaults.", pol->name); cupsdAddString(&(pol->job_access), "@OWNER"); cupsdAddString(&(pol->job_access), "@SYSTEM"); } if (!pol->job_attrs) { - cupsdLogMessage(CUPSD_LOG_WARN, - "No JobPrivateValues defined in policy %s " - "- using defaults.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No JobPrivateValues defined in policy %s - using defaults.", pol->name); cupsdAddString(&(pol->job_attrs), "job-name"); cupsdAddString(&(pol->job_attrs), "job-originating-host-name"); cupsdAddString(&(pol->job_attrs), "job-originating-user-name"); @@ -4248,18 +4229,14 @@ set_policy_defaults(cupsd_policy_t *pol)/* I - Policy */ if (!pol->sub_access) { - cupsdLogMessage(CUPSD_LOG_WARN, - "No SubscriptionPrivateAccess defined in policy %s " - "- using defaults.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No SubscriptionPrivateAccess defined in policy %s - using defaults.", pol->name); cupsdAddString(&(pol->sub_access), "@OWNER"); cupsdAddString(&(pol->sub_access), "@SYSTEM"); } if (!pol->sub_attrs) { - cupsdLogMessage(CUPSD_LOG_WARN, - "No SubscriptionPrivateValues defined in policy %s " - "- using defaults.", pol->name); + cupsdLogMessage(CUPSD_LOG_WARN, "No SubscriptionPrivateValues defined in policy %s - using defaults.", pol->name); cupsdAddString(&(pol->sub_attrs), "notify-events"); cupsdAddString(&(pol->sub_attrs), "notify-pull-method"); cupsdAddString(&(pol->sub_attrs), "notify-recipient-uri"); @@ -4270,5 +4247,5 @@ set_policy_defaults(cupsd_policy_t *pol)/* I - Policy */ /* - * End of "$Id: conf.c 12689 2015-06-03 19:49:54Z msweet $". + * End of "$Id: conf.c 12819 2015-07-31 13:52:00Z msweet $". */ diff --git a/scheduler/cups-driverd.cxx b/scheduler/cups-driverd.cxx index 8b279025e8..7da6572384 100644 --- a/scheduler/cups-driverd.cxx +++ b/scheduler/cups-driverd.cxx @@ -1,5 +1,5 @@ /* - * "$Id: cups-driverd.cxx 12722 2015-06-08 22:00:19Z msweet $" + * "$Id: cups-driverd.cxx 12733 2015-06-12 01:21:05Z msweet $" * * PPD/driver support for CUPS. * @@ -33,7 +33,7 @@ * Constants... */ -#define PPD_SYNC 0x50504437 /* Sync word for ppds.dat (PPD7) */ +#define PPD_SYNC 0x50504438 /* Sync word for ppds.dat (PPD8) */ #define PPD_MAX_LANG 32 /* Maximum languages */ #define PPD_MAX_PROD 32 /* Maximum products */ #define PPD_MAX_VERS 32 /* Maximum versions */ @@ -42,9 +42,12 @@ #define PPD_TYPE_PDF 1 /* PDF PPD */ #define PPD_TYPE_RASTER 2 /* CUPS raster PPD */ #define PPD_TYPE_FAX 3 /* Facsimile/MFD PPD */ -#define PPD_TYPE_UNKNOWN 4 /* Other/hybrid PPD */ -#define PPD_TYPE_DRV 5 /* Driver info file */ -#define PPD_TYPE_ARCHIVE 6 /* Archive file */ +#define PPD_TYPE_OBJECT_ANY 4 /* 3D (AMF/STL/g-code) PPD */ +#define PPD_TYPE_OBJECT_DIRECT 5 /* 3D (AMF/STL/g-code) PPD over any connection */ +#define PPD_TYPE_OBJECT_STORAGE 6 /* 3D (AMF/STL/g-code) PPD for storage to SD card, etc. */ +#define PPD_TYPE_UNKNOWN 7 /* Other/hybrid PPD */ +#define PPD_TYPE_DRV 8 /* Driver info file */ +#define PPD_TYPE_ARCHIVE 9 /* Archive file */ #define TAR_BLOCK 512 /* Number of bytes in a block */ #define TAR_BLOCKS 10 /* Blocking factor */ @@ -135,6 +138,9 @@ static const char * const PPDTypes[] = /* ppd-type values */ "pdf", "raster", "fax", + "object", + "object-direct", + "object-storage", "unknown", "drv", "archive" @@ -1172,11 +1178,11 @@ list_ppds(int request_id, /* I - Request ID */ load_drivers(include, exclude); /* - * Add the raw and IPP Everywhere drivers... + * Add the raw driver... */ - add_ppd("", "everywhere", "en", "Generic", "IPP Everywhere", "", "", "", 0, 0, 0, PPD_TYPE_UNKNOWN, "everywhere"); - add_ppd("", "raw", "en", "Raw", "Raw Queue", "", "", "", 0, 0, 0, PPD_TYPE_UNKNOWN, "raw"); + add_ppd("", "raw", "en", "Raw", "Raw Queue", "", "", "", 0, 0, 0, + PPD_TYPE_UNKNOWN, "raw"); /* * Send IPP attributes... @@ -2095,12 +2101,28 @@ load_ppd(const char *filename, /* I - Real filename */ if (!_cups_strncasecmp(ptr, "true", 4)) type = PPD_TYPE_FAX; } - else if (!strncmp(line, "*cupsFilter:", 12) && type == PPD_TYPE_POSTSCRIPT) + else if ((!strncmp(line, "*cupsFilter:", 12) || !strncmp(line, "*cupsFilter2:", 13)) && type == PPD_TYPE_POSTSCRIPT) { if (strstr(line + 12, "application/vnd.cups-raster")) type = PPD_TYPE_RASTER; else if (strstr(line + 12, "application/vnd.cups-pdf")) type = PPD_TYPE_PDF; + else if (strstr(line + 12, "application/amf") || + strstr(line + 12, "application/g-code") || + strstr(line + 12, "application/sla")) + type = PPD_TYPE_OBJECT_ANY; + } + else if (!strncmp(line, "*cups3DWorkflows:", 17)) + { + int is_direct = strstr(line + 17, "direct") != NULL; + int is_storage = strstr(line + 17, "storage") != NULL; + + if (is_direct && !is_storage) + type = PPD_TYPE_OBJECT_DIRECT; + if (!is_direct && is_storage) + type = PPD_TYPE_OBJECT_STORAGE; + else + type = PPD_TYPE_OBJECT_ANY; } else if (!strncmp(line, "*cupsModelNumber:", 17)) sscanf(line, "*cupsModelNumber:%d", &model_number); @@ -2903,5 +2925,5 @@ regex_string(const char *s) /* I - String to compare */ /* - * End of "$Id: cups-driverd.cxx 12722 2015-06-08 22:00:19Z msweet $". + * End of "$Id: cups-driverd.cxx 12733 2015-06-12 01:21:05Z msweet $". */ diff --git a/scheduler/ipp.c b/scheduler/ipp.c index defccb16ed..5c50f9bed8 100644 --- a/scheduler/ipp.c +++ b/scheduler/ipp.c @@ -1,5 +1,5 @@ /* - * "$Id: ipp.c 12700 2015-06-08 18:32:35Z msweet $" + * "$Id: ipp.c 12777 2015-07-07 17:24:06Z msweet $" * * IPP routines for the CUPS scheduler. * @@ -3312,6 +3312,8 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */ } con->response->request.status.status_code = IPP_OK; + + cupsdCheckJobs(); } @@ -11148,5 +11150,5 @@ validate_user(cupsd_job_t *job, /* I - Job */ /* - * End of "$Id: ipp.c 12700 2015-06-08 18:32:35Z msweet $". + * End of "$Id: ipp.c 12777 2015-07-07 17:24:06Z msweet $". */ diff --git a/scheduler/job.c b/scheduler/job.c index d572a64336..e6b86b7b76 100644 --- a/scheduler/job.c +++ b/scheduler/job.c @@ -1,5 +1,5 @@ /* - * "$Id: job.c 12700 2015-06-08 18:32:35Z msweet $" + * "$Id: job.c 12777 2015-07-07 17:24:06Z msweet $" * * Job management routines for the CUPS scheduler. * @@ -213,8 +213,6 @@ cupsdCancelJobs(const char *dest, /* I - Destination to cancel */ "Job canceled by user."); } } - - cupsdCheckJobs(); } @@ -392,7 +390,9 @@ cupsdCheckJobs(void) * Start the job... */ + cupsArraySave(ActiveJobs); start_job(job, printer); + cupsArrayRestore(ActiveJobs); } } } @@ -3524,13 +3524,6 @@ finalize_job(cupsd_job_t *job, /* I - Job */ job->printer->job = NULL; job->printer = NULL; - - /* - * Try printing another job... - */ - - if (printer_state != IPP_PRINTER_STOPPED) - cupsdCheckJobs(); } @@ -4847,6 +4840,8 @@ update_job(cupsd_job_t *job) /* I - Job to check */ *ptr; /* Pointer update... */ int loglevel, /* Log level for message */ event = 0; /* Events? */ + cupsd_printer_t *printer = job->printer; + /* Printer */ static const char * const levels[] = /* Log levels */ { "NONE", @@ -5220,10 +5215,11 @@ update_job(cupsd_job_t *job) /* I - Job to check */ finalize_job(job, 1); /* - * Check for new jobs... + * Try printing another job... */ - cupsdCheckJobs(); + if (printer->state != IPP_PRINTER_STOPPED) + cupsdCheckJobs(); } } @@ -5343,5 +5339,5 @@ update_job_attrs(cupsd_job_t *job, /* I - Job to update */ /* - * End of "$Id: job.c 12700 2015-06-08 18:32:35Z msweet $". + * End of "$Id: job.c 12777 2015-07-07 17:24:06Z msweet $". */ diff --git a/scheduler/log.c b/scheduler/log.c index 85202d3e37..a5a69e0823 100644 --- a/scheduler/log.c +++ b/scheduler/log.c @@ -1,5 +1,5 @@ /* - * "$Id: log.c 12691 2015-06-04 18:00:31Z msweet $" + * "$Id: log.c 12816 2015-07-30 15:38:57Z msweet $" * * Log file routines for the CUPS scheduler. * @@ -595,6 +595,7 @@ cupsdLogJob(cupsd_job_t *job, /* I - Job */ asl_object_t m; /* Log message */ char job_id[32], /* job-id string */ completed[32]; /* job-impressions-completed string */ + 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", @@ -606,19 +607,23 @@ cupsdLogJob(cupsd_job_t *job, /* I - Job */ "Completed" }; - snprintf(job_id, sizeof(job_id), "%d", job->id); - m = asl_new(ASL_TYPE_MSG); asl_set(m, ASL_KEY_FACILITY, "org.cups.cupsd"); - asl_set(m, PWG_Event, "JobStateChanged"); - asl_set(m, PWG_ServiceURI, job->printer->uri); - asl_set(m, PWG_JobID, job_id); - asl_set(m, PWG_JobState, job_states[job->state_value - IPP_JSTATE_PENDING]); - - if (job->impressions) + if (printer) + asl_set(m, PWG_ServiceURI, printer->uri); + if (job) { - snprintf(completed, sizeof(completed), "%d", ippGetInteger(job->impressions, 0)); - asl_set(m, PWG_JobImpressionsCompleted, completed); + snprintf(job_id, sizeof(job_id), "%d", job->id); + + asl_set(m, PWG_Event, "JobStateChanged"); + asl_set(m, PWG_JobID, job_id); + asl_set(m, PWG_JobState, job_states[job->state_value - IPP_JSTATE_PENDING]); + + if (job->impressions) + { + snprintf(completed, sizeof(completed), "%d", ippGetInteger(job->impressions, 0)); + asl_set(m, PWG_JobImpressionsCompleted, completed); + } } va_start(ap, message); @@ -632,6 +637,7 @@ cupsdLogJob(cupsd_job_t *job, /* I - Job */ #elif defined(HAVE_SYSTEMD_SD_JOURNAL_H) if (!strcmp(ErrorLog, "syslog")) { + cupsd_printer_t *printer = job->printer ? job->printer : job->dest ? cupsdFindDest(job->dest) : NULL; static const char * const job_states[] = { /* job-state strings */ "Pending", @@ -655,17 +661,22 @@ cupsdLogJob(cupsd_job_t *job, /* I - Job */ va_end(ap); - sd_journal_send("MESSAGE=%s", log_line, - "PRIORITY=%i", log_levels[level], - PWG_Event"=JobStateChanged", - PWG_ServiceURI"=%s", job->printer->uri, - PWG_JobID"=%d", job->id, - PWG_JobState"=%s", job_states[job->state_value - IPP_JSTATE_PENDING], - PWG_JobImpressionsCompleted"=%d", ippGetInteger(job->impressions, 0), - NULL); + 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_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_ASL_H */ /* @@ -812,7 +823,9 @@ cupsdLogMessage(int level, /* I - Log level */ #elif defined(HAVE_SYSTEMD_SD_JOURNAL_H) if (!strcmp(ErrorLog, "syslog")) { + va_start(ap, message); sd_journal_printv(log_levels[level], message, ap); + va_end(ap); return (1); } #endif /* HAVE_ASL_H */ @@ -885,7 +898,7 @@ cupsdLogPage(cupsd_job_t *job, /* I - Job being printed */ break; case 'p' : /* Printer name */ - strlcpy(bufptr, job->printer->name, sizeof(buffer) - (size_t)(bufptr - buffer)); + strlcpy(bufptr, job->dest, sizeof(buffer) - (size_t)(bufptr - buffer)); bufptr += strlen(bufptr); break; @@ -1497,5 +1510,5 @@ format_log_line(const char *message, /* I - Printf-style format string */ /* - * End of "$Id: log.c 12691 2015-06-04 18:00:31Z msweet $". + * End of "$Id: log.c 12816 2015-07-30 15:38:57Z msweet $". */ diff --git a/scheduler/printers.c b/scheduler/printers.c index feb44689f1..61956b74d1 100644 --- a/scheduler/printers.c +++ b/scheduler/printers.c @@ -1,5 +1,5 @@ /* - * "$Id: printers.c 12722 2015-06-08 22:00:19Z msweet $" + * "$Id: printers.c 12733 2015-06-12 01:21:05Z msweet $" * * Printer routines for the CUPS scheduler. * @@ -3990,10 +3990,10 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */ if (ppd->num_sizes == 0 || !p->pc) { - if (!ppdFindAttr(ppd, "APScannerOnly", NULL)) + if (!ppdFindAttr(ppd, "APScannerOnly", NULL) && !ppdFindAttr(ppd, "cups3D", NULL)) cupsdLogMessage(CUPSD_LOG_CRIT, "The PPD file for printer %s contains no media " - "options and is therefore invalid!", p->name); + "options and is therefore invalid.", p->name); ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD, "media-default", NULL, "unknown"); @@ -4682,6 +4682,13 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */ "printer-commands", NULL, "none"); } + /* + * 3D printer support... + */ + + if (ppdFindAttr(ppd, "cups3D", NULL)) + p->type |= CUPS_PRINTER_3D; + /* * Show current and available port monitors for this printer... */ @@ -5071,5 +5078,5 @@ write_xml_string(cups_file_t *fp, /* I - File to write to */ /* - * End of "$Id: printers.c 12722 2015-06-08 22:00:19Z msweet $". + * End of "$Id: printers.c 12733 2015-06-12 01:21:05Z msweet $". */ diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh index 88560dac1b..6bf7c0a845 100755 --- a/test/run-stp-tests.sh +++ b/test/run-stp-tests.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# "$Id: run-stp-tests.sh 12696 2015-06-08 15:05:11Z msweet $" +# "$Id: run-stp-tests.sh 12820 2015-07-31 14:12:25Z msweet $" # # Perform the complete set of IPP compliance tests specified in the # CUPS Software Test Plan. @@ -996,7 +996,7 @@ fi # Warning log messages count=`$GREP '^W ' $BASE/log/error_log | $GREP -v CreateProfile | wc -l | awk '{print $1}'` -if test $count != 18; then +if test $count != 8; then echo "FAIL: $count warning messages, expected 18." $GREP '^W ' $BASE/log/error_log echo "

FAIL: $count warning messages, expected 18.

" >>$strfile @@ -1113,5 +1113,5 @@ if test $fail != 0; then fi # -# End of "$Id: run-stp-tests.sh 12696 2015-06-08 15:05:11Z msweet $" +# End of "$Id: run-stp-tests.sh 12820 2015-07-31 14:12:25Z msweet $" # diff --git a/vcnet/config.h b/vcnet/config.h index 156c42d80b..81cbb8a090 100644 --- a/vcnet/config.h +++ b/vcnet/config.h @@ -1,5 +1,5 @@ /* - * "$Id: config.h 12269 2014-11-20 15:37:29Z msweet $" + * "$Id: config.h 12763 2015-06-24 20:12:22Z msweet $" * * Configuration file for CUPS on Windows. * @@ -96,8 +96,8 @@ typedef unsigned long useconds_t; * Version of software... */ -#define CUPS_SVERSION "CUPS v2.1svn" -#define CUPS_MINIMAL "CUPS/2.1svn" +#define CUPS_SVERSION "CUPS v2.1b2" +#define CUPS_MINIMAL "CUPS/2.1b2" /* @@ -799,5 +799,5 @@ static __inline int _cups_abs(int i) { return (i < 0 ? -i : i); } #endif /* !_CUPS_CONFIG_H_ */ /* - * End of "$Id: config.h 12269 2014-11-20 15:37:29Z msweet $". + * End of "$Id: config.h 12763 2015-06-24 20:12:22Z msweet $". */ diff --git a/xcode/CUPS.xcodeproj/project.pbxproj b/xcode/CUPS.xcodeproj/project.pbxproj index 37c0a31101..6f85ea9152 100644 --- a/xcode/CUPS.xcodeproj/project.pbxproj +++ b/xcode/CUPS.xcodeproj/project.pbxproj @@ -1396,6 +1396,7 @@ 278C58E8136B64B000836530 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = /System/Library/Frameworks/SystemConfiguration.framework; sourceTree = ""; }; 27A0347B1A8BDB1300650675 /* lpadmin */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = lpadmin; sourceTree = BUILT_PRODUCTS_DIR; }; 27D3037D134148CB00F022B1 /* libcups2.def */ = {isa = PBXFileReference; lastKnownFileType = text; name = libcups2.def; path = ../cups/libcups2.def; sourceTree = ""; }; + 27F89DA21B3AC43B00E5A4B7 /* testraster.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testraster.c; path = ../filter/testraster.c; sourceTree = ""; }; 720DD6C21358FD5F0064AA82 /* snmp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = snmp; sourceTree = BUILT_PRODUCTS_DIR; }; 720DD6D21358FDDE0064AA82 /* snmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = snmp.c; path = ../backend/snmp.c; sourceTree = ""; }; 72220EAE1333047D00FCA411 /* libcups.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libcups.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -2063,6 +2064,7 @@ 727EF049192E3544001EF690 /* testoptions.c */, 727EF04A192E3544001EF690 /* testppd.c */, 727EF04B192E3544001EF690 /* testpwg.c */, + 27F89DA21B3AC43B00E5A4B7 /* testraster.c */, 727EF04C192E3544001EF690 /* testsnmp.c */, 727EF04E192E3602001EF690 /* testspeed.c */, 727EF04F192E3602001EF690 /* testsub.c */, diff --git a/xcode/config.h b/xcode/config.h index abe5107c68..e145efc305 100644 --- a/xcode/config.h +++ b/xcode/config.h @@ -1,5 +1,5 @@ /* - * "$Id: config.h 12687 2015-06-03 17:19:04Z msweet $" + * "$Id: config.h 12763 2015-06-24 20:12:22Z msweet $" * * Configuration file for CUPS and Xcode. * @@ -22,8 +22,8 @@ * Version of software... */ -#define CUPS_SVERSION "CUPS v2.1svn" -#define CUPS_MINIMAL "CUPS/2.1svn" +#define CUPS_SVERSION "CUPS v2.1b2" +#define CUPS_MINIMAL "CUPS/2.1b2" /* @@ -738,5 +738,5 @@ static __inline int _cups_abs(int i) { return (i < 0 ? -i : i); } #endif /* !_CUPS_CONFIG_H_ */ /* - * End of "$Id: config.h 12687 2015-06-03 17:19:04Z msweet $". + * End of "$Id: config.h 12763 2015-06-24 20:12:22Z msweet $". */